Python3.2中使用数组的Hangman

2024-07-04 04:54:30 发布

您现在位置:Python中文网/ 问答频道 /正文

import random

GameWords = ['COMPUTER', 'PYTHON', 'RUBY', 'DELPHI', 'LAPTOP', 'IDEALS', 'PERL']
#Program will pick a word to use
word = random.randint(0,6)
ChosenWord = GameWords[word]

ChosenWord = list(ChosenWord)   

#This will generate a playfield
playField = "_" * len(ChosenWord)
playField = list(playField) 

#Array for bad guesses
BadGuess = "_" * len(ChosenWord) * 2
BadGuess = list(BadGuess)
print(" Bad Guesses", BadGuess)
print("\n Hidden Word ", playField, end = "")

#Get the number of letters in the word
WordLength = len(ChosenWord)

#Give two times the number of letters in a word for guessing.

NumChances = WordLength * 2
print("")
print("\n Number of Chances", NumChances)
print("\n This is number of letters in word", WordLength, "\n")

#Need a loop for the guess

flag = True
GoodCounter = 0
b = 0

while flag == True:

    #Input a player's guess into two diffrent arrays
    #Array for bad guess one for good guess
    PlayerGuess = input("\n Guess a letter: ")
    PlayerGuess = PlayerGuess.upper()

    #Player cannot enter more than one letter
    if len(PlayerGuess) != 1:
        print("Please enter a single letter.")

    #If the player do not enter a letter
    elif PlayerGuess not in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
        print("Please enter a LETTER.")

    #If the player guess wrong
    # b is used for indexing    
    elif PlayerGuess not in ChosenWord:        
        for b in range(0):                    
            if ChosenWord[b] != PlayerGuess:
                BadGuess[b] = PlayerGuess
                b = b + 1
        print("this is b", b)        
        print("You have guessed wrong")
        print("Letters you have missed", BadGuess)

        NumChances = NumChances - 1
        print("You have", NumChances, "left!")

        if NumChances == 0:
            flag = False
            print("You have lost!")
        else:
            flag = True

    #If the player guess correctly
    # i is used for indexing

    elif PlayerGuess in ChosenWord:
        for i in range(WordLength):
            if ChosenWord[i] == PlayerGuess:
                playField[i] = PlayerGuess
        print("\n Letters you have HIT! ", playField, end = "")
        print("You have guessed correctly")       
        GoodCounter = GoodCounter + 1


        if GoodCounter >= WordLength:
            flag = False
            print("You have won!")
        else:
            flag = True

现在我有一个新的问题,我的坏猜测阵列不会在游戏场上显示字母。我试图使用相同的代码,我曾在操场阵列,但它没有工作。在

我需要做些什么才能将错误的猜测存储在BadGuess数组中并显示在比赛场地上?在


Tags: theinforifhavewordflagprint
1条回答
网友
1楼 · 发布于 2024-07-04 04:54:30

我不知道这是否是您所要求的,但是如果您希望所有错误的猜测都存储在数组中,那么您必须增加bad变量。在

如果你想替换空格,有很多种方法,但是我会创建一个循环来测试一个字母是否与单词中给定索引处的字母相同,如果相同,就在数组中替换它。在

比如:

for i in range(WordLength):
    if ChosenWord[i] == playerGuess:
        playField[i] = playerGuess

希望这有帮助。在

相关问题 更多 >

    热门问题