예제 #1
0
파일: main.py 프로젝트: lonkaars/galgje
def game(word):
    moves = len(character.character)
    guessed = set(
    )  # hier gebruik ik een set zodat ik zelf geen rekening hoef te houden met dubbele gokken
    print(
        f"Ik heb een woord in gedachten van {color.stylize(len(word), [color.magenta, color.bold])} letters",
        end="\n" * 2)

    while moves > 0:
        if checkIfWon(word, guessed):
            endSequence(word, True)
            break  # spring uit de while loop

        print(
            f"\t{formatWord(word, guessed)}\nJe kunt nog {color.stylize(moves, [color.green, color.bold])} keer raden"
        )
        if len(guessed) > 0:
            print(
                f"De dingen die je al geraden hebt zijn: {', '.join(guessed)}"
            )  # print alleen je geraden letters als je meer dan 0 letters geraden hebt
        print(color.stylize(
            character.character[::-1][moves - 1],
            [color.bold]))  # print het juiste poppetje uit character.py
        guess = input(
            color.stylize(
                messages.randomMessage("GUESS_PROMPT") + " ",
                [color.green, color.bold])).lower()
        print("\n" * 2)  # witregels
        moves += guessHandler(guess, word, moves, guessed)
        if len(guess) > 0: guessed.add(guess)
    if not checkIfWon(word, guessed):
        endSequence(word, False)
예제 #2
0
파일: main.py 프로젝트: lonkaars/galgje
def guessChar(guess, word, guessed):
    if guess in guessed:
        print(
            color.stylize(f"De letter {guess} heb je al geraden",
                          [color.yellow]))
        return 0
    else:
        print(
            color.stylize(
                f"De letter {guess} zit{' niet' if not guess in word else ''} in mijn woord",
                [color.green if guess in word else color.red]))
        return int(guess in word) - 1
예제 #3
0
파일: main.py 프로젝트: lonkaars/galgje
def guessHandler(guess, word, moves, guessed):
    if len(guess) > 1:
        return guessWord(guess, word, moves)
    elif len(guess) == 1:
        return guessChar(guess, word, guessed)
    else:
        print(
            color.stylize(messages.randomMessage("ERR_NO_WORD_GUESSED"),
                          [color.yellow]))
        return 0
예제 #4
0
파일: main.py 프로젝트: lonkaars/galgje
def guessWord(guess, word, moves):
    filteredWord = wordFilter(guess)
    if filteredWord != True or len(word) != len(guess):
        # Deze code zet de foutmeldingen van wordFilter() om naar strings die uitleggen wat je fout hebt gedaan
        error = filteredWord
        errorMessages = {
            "word_too_short":
            messages.randomMessage("ERR_WORD_TOO_SHORT"),
            "word_too_long":
            messages.randomMessage("ERR_WORD_TOO_LONG"),
            "word_contains_invalid_characters":
            messages.randomMessage("ERR_WORD_INVALID")
        }
        if len(guess) < len(word) and error == True: error = "word_too_short"
        elif len(guess) > len(word) and error == True: error = "word_too_long"

        print(color.stylize(errorMessages.get(error), [color.yellow]))
        return 0
    if word == guess:
        endSequence(word, True)
        return len(moves) * -1  # trek alle beurten af
    else:
        print(color.stylize("Dat is niet mijn woord!", [color.red]))
        return -1
예제 #5
0
파일: main.py 프로젝트: lonkaars/galgje
def main():
    args = parseArgs()
    if args.word: clear()
    color.setColorEnabled(
        args.color if args.color != None else
        sys.platform != "win32")  # zet kleuren automatisch uit op Windows
    print(color.stylize(messages.randomMessage("GAME_START"), [color.magenta]))
    if sys.platform == "win32":
        print(
            "Dit programma gebruikt ANSI codes om gekleurde tekst te laten zien, gebruik de --color true vlag om ze aan te forceren op een terminal die ze ondersteunt"
        )
    allWords = list()
    if not args.word:
        allWords = createWordList(
        )  # laad alleen de woordenlijst als er geen aangepast woord is gegeven
    word = args.word or random.choice(
        allWords
    )  # or zorgt er hier voor dat word niet overschreven wordt door random.choice als args.word geen lege string is
    word = word.lower()  # zorg dat het woord geen hoofdletters bevat
    game(word)