python小游戏———猜单词

电脑根据单词列表随机生成一个单词,打印出这个单词长度个 ‘ _ ’ ,玩家随机输入一个这个单词可能包含的英文字母,如果玩家猜对了,电脑则会在正确的空格处填写这个字母,如果没有猜对,游戏次数就减一。如果玩家在游戏次数减为零前猜对这个单词的所有字母,则玩家获胜,否则玩家输掉比赛。

from random import*
words = 'tiger lion wolf elephant zebra ducksheep rabbit mouse'.split()

#得到要猜的神秘单词
def getWord(wordList):
    n = randint(0,len(wordList)-1)
    return wordList[n]

#游戏界面
def display(word,wrongLetters,rightLetters,chance):
    print('你还有{:n}次机会'.format(chance).center(40,'-'))
    print('已经猜错的字母:'+ wrongLetters)
    print()
    blanks = '_'*len(word)
    for i in range(len(word)):
        if word[i] in rightLetters:
            blanks = blanks[:i] + word[i] +blanks[i+1:]
    for i in blanks:
        print(i+' ',end='')
    print()
    print()
    
#从玩家的输入得到一个猜测的字母
def getLetter(alreadyGuessed):
    while True:
        print('请输入一个可能的字母:')
        guess = input()
        guess = guess.lower()
        if guess[0] in alreadyGuessed:
            print('你已经猜过这个字母了!')
        elif guess[0] not in 'qwertyuiopasdfghjklzxcvbnm':
            print('请输入一个英文字母!(a-z)')
        else:
            return guess[0]
        
#是否再玩一次
def playAgain():
    print('是否在玩一次?(y/n)')
    s = input()
    s = s.lower()
    if s[0] == 'y':
        return 1
    return 0

#游戏初始化
wrongLetters = ''
rightLetters = ''
word = getWord(words)
chance = 6  #初始为6次机会
done = False

while True:
    display(word,wrongLetters,rightLetters,chance)
    
    guess = getLetter(wrongLetters+rightLetters)

    if guess in word:
        rightLetters = rightLetters+ guess
        foundAll = True
        for i in range(len(word)):
            if word[i] not in rightLetters:
                foundAll = False
                break
        if foundAll:
            print('你真棒,这个单词就是'+ word +',你赢了!')
            done = True
    else:
         wrongLetters = wrongLetters + guess
         chance = chance - 1
         if chance == 0:
             display(word,wrongLetters,rightLetters,chance)
             print("你已经没有机会了!你一共猜错了"+str(len((wrongLetters))+"次,猜对了"+str(len(rightLetters))+"次,正确的单词是:"+ word)
             done = True
    if done:
        if playAgain():
            wrongLetters = ''
            rightletters = ''
            word = getWord(words)
            chance = 6  #初始为6次机会
            done = 0
        else:
            break


  • 10
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
当然可以!Python猜单词游戏是一个经典的编程练习项目,通常用于教学或娱乐。它基于随机选择一个单词,玩家需要猜测这个单词的所有字母。游戏流程一般包括以下几个步骤: 1. **字典选择**:从一个预先定义的单词列表中随机选取一个单词作为目标。 2. **隐藏单词**:用星号(*)表示目标单词中的每个字母,未猜中的字母隐藏起来。 3. **用户输入**:玩家输入他们猜测的字母,程序检查这个字母是否在目标单词中。 4. **更新隐藏单词**:如果玩家猜对了,将正确的字母显示出来;如果猜错了,提示字母是否存在于单词中。 5. **循环直到猜对**:当玩家猜出所有字母后,游戏结束并显示结果。 要实现这个游戏,你可以使用Python的内置模块如random和string,以及一些基本的控制结构(如循环和条件语句)。 下面是一个简单的Python猜单词游戏的概述代码框架: ```python import random # 准备单词列表 word_list = ["apple", "banana", "cherry", ...] # 选择随机单词 target_word = random.choice(word_list) hidden_word = '*' * len(target_word) # 游戏循环 while True: guess = input("Guess a letter: ").lower() if guess in target_word: hidden_word = hidden_word.replace('*', guess, 1) # 替换正确位置的 * else: print(f"{guess} is not in the word.") # 检查是否猜出全部单词 if '*' not in hidden_word: print(f"Congratulations! You guessed the word: {hidden_word}") break ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值