IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> python-HangMan(上吊的人)小游戏 中文版 -> 正文阅读

[游戏开发]python-HangMan(上吊的人)小游戏 中文版

游戏介绍

Hangman在西方是一个家喻户晓的猜词游戏。Hang的英文意思是“绞死”,而Man的英文意思是“人”。由于竞猜者在规定的猜词次数内没有猜中单词就认为被“绞死”,Hangman便由此而得名。该游戏可以训练竞猜者的反应能力,又可以测试其词汇量。西方在电视节目中经常利用该游戏进行有奖竞猜。

游戏规则

主持人暗中写出一个英语单词(有时也可以是短语或句子),不公布于众,只是告诉该词有多少个字母,并按字母的多少给出空格,然后让大家猜。竞猜者一次猜一个字母,每猜中一个字母主持人就把该字母按它在被猜词中的顺序填写到空格中。如果该词有两个(或两个以上)相同的字母,当该字母被猜中时,主持人就按字母在被猜单词中的顺序全部写出。为了限制猜词的次数,主持人画一个“绞刑架”,如果被猜的单词中没有竞猜者所猜的字母,则视为一次没猜中,主持人就在“绞刑架”下画出小人儿身体的一个部分,当小人儿被画完整的时候,竞猜者就被“绞死”了,即竞猜者就输了该次游戏。例如,主持人暗中写出school这个词,给出六个空格,并告诉竞猜者该词有六个字母。竞猜者首先可能猜有字母E,主持人告诉他,她所猜单词中没有E,并在“绞刑架”下面画一个小人儿的头;然后竞猜者继续猜有字母s,主持人就告诉他/她所猜的单词中有一个s,并按该字母在单词中的顺序填写空格,即.S- _ _ _ _ _;竞猜者再猜有字母A,由于所猜词中没有A,主持人便又在“绞刑架”下画一个小人儿的躯干;竞猜者继续猜有字母o,主持人告诉大家有两个o,并填写在空格上S- _ _ o o _,这时可能有竞赛者会猜中是school,那么他/她就赢了这次游戏。如果没猜中,就再在“绞刑架”下面画小人儿的腿、胳膊、手和脚。当画成整个小人儿的时候,竞猜者就输了游戏。

游戏代码

改编后代码还原


import random
HANGMAN_PICS = ['''
         +-----+
            |  |
               |
               |
               |
              ===''', '''
         +-----+
            |  |
            O  |
               |
               |
              ===''', '''
         +-----+
            |  |
            O  |
            |  |
               |
              ===''', '''
         +-----+
            |  |
            O  |
           /|  |
               |
              ===''', '''
         +-----+
            |  |
            O  |
           /|\ |
               |
              ===''', '''
         +-----+
            |  |
            O  |
           /|\ |
           /   |
             ===''', '''
         +-----+
            |  |
            O  |
           /|\ |
           / \ |
              ===''']
words = 'you are died '.split(' ')


def getRandomWord(wordList):
    wordIndex = random.randint(0, len(wordList) - 1)
    return wordList[wordIndex]


def displayBoard(missedLetters, correctLetters, secretword):
    print(HANGMAN_PICS[len(missedLetters)])
    print()

    print('密信:', end=' ')
    for letter in missedLetters:
        print(letter, end=' ')
    print()
    blanks = '*' * len(secretword)
    for i in range(len(secretword)):
        if secretword[i] in correctLetters:
            blanks = blanks[:i] + secretword[i] + blanks[i + 1:]
    for letter in blanks:
        print(letter, end=' ')
    print()


def getGuess(alreadyGuessed):
    while True:
        print('猜一封信(输入一个字母):')
        guess = input()
        guess=guess.lower()
        if len(guess) != 1:
            print('请输入一个字母:')
        elif guess in alreadyGuessed:
            print('你已经猜过那个单词了。再选择一次。')
        elif guess not in 'abcdefghijklmnopqrstuvwxyz':
            print('请输入一封信')
        else:
            return guess


def playAgain():
    print('你还想在玩一遍吗(yes or no)')
    return input().lower().startswith('y')


print('上吊的人')
missedLetters = ''
correctLetters = ''
secretWord = getRandomWord(words)
gameIsDone = False

while True:
    displayBoard(missedLetters, correctLetters, secretWord)
    guess = getGuess((missedLetters + correctLetters))
    if guess in secretWord:
        correctLetters = correctLetters + guess
        foundAllLetters = True
        for i in range(len(secretWord)):
            if secretWord[i] not in correctLetters:
                foundAllLetters = False
                break
        if foundAllLetters:
            print('恭喜你,这个神秘的密码是 ' + secretWord + '! 你已经赢了!')
            gameIsDone = True
    else:
        missedLetters = missedLetters + guess
        if len(missedLetters) == len(HANGMAN_PICS) - 1:
            displayBoard(missedLetters, correctLetters, secretWord)
            print('你已经猜不透了!\n接着 ' + str(len(missedLetters)) + ' 漏掉的猜测和 ' + str(
                len(correctLetters)) + ' 猜对了,这个词是 "' + secretWord + '"')
            gameIsDone = True
    if gameIsDone:
        if playAgain():
            missedLetters = ''
            correctLetters = ''
            gameIsDone = False
            secretWord = getRandomWord(words)
        else:
            break
print("you are died!")

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-08-05 17:40:59  更:2021-08-05 17:42:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 15:36:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码