这个游戏是我初学python时写的,个人觉得例子非常好,现在分享给大家。

每一行代码不懂得直接评论吧我都会详细解释~,希望能有助于各位的学习。


游戏如下:

在单词库中给出一系列单词,如果猜错火柴人会一步步形成:

如果猜对,则会显示单词,并恭喜您答对单词~

附上源码:

import random
# 构建图像
HANGMAN_PICS = ['''
#  +---+
#      |
#      |
#      |
#     ===''','''
#  +---+
#  0   |
#      |
#      |
#     ===   ''','''
#  +---+
#  0   |
#  |   |
#      |
#     ===   ''','''
#  +---+
#  0   |
# /|   |
#      |
#     ===   ''','''
#  +---+
#  0   |
# /|\  |
#      |
#     ===   ''','''
#  +---+
#  0   |
# /|\  |
# /    |
#     ===   ''','''
#  +---+
#  0   |
# /|\  |
# / \  |
#     ===   ''']
# 定义单词库
words = 'fantasy salute tike pisces raven zara stussy'.split()
# 定义选择的单词方法
# wordList为单词列表
def getRandomWord(wordList):wordIndex = random.randint(0,len(wordList) - 1)return wordList[wordIndex]# 定义显示板
# missedLetters correctLetters secretWord 玩家猜过不在神秘单词里面,玩家猜过在神秘单词,神秘单词
def displayBoard(missedLetters,correctLetters,secretWord):# HANGMAN_PICS为全局变量,即整个火柴的全部内容print(HANGMAN_PICS[len(missedLetters)])print()# 打印出错误的字母,用for 循环在打印出每个字母print('Missed letters:',end='')for letter in missedLetters:print(letter,end='')print()# 对__的长度进变化blank='_'*len(secretWord)# 对blank中的东西进行替换for i in range(len(secretWord)):if secretWord[i] in correctLetters:# --[:2]=>0,1 [2:]=>2到最后 含头不含尾blank = blank[:i]+secretWord[i]+blank[i+1:]for letter in blank:print(letter,end='')print()# 玩家猜测的数据
def getGuess(alreadyGuessed):while True:print('Guess a letter.')guess = input()guess = guess.lower()if len(guess)!=1:print("please enter a single letter")elif guess in alreadyGuessed:print("猜对了,请继续")else:return guess
# 判断玩家是否还想在玩一次
def playAgian():print("你还想再玩么 (yes or no)")return input().lower().startswith('y')# 程序开始执行并循环
print('H A N G M A N ')
missedLetters = ''
correctLetters = ''
secretWord = getRandomWord(words)
gameisDone = False
while True:displayBoard(missedLetters,correctLetters,secretWord)guess = getGuess(missedLetters + correctLetters)if guess in secretWord:correctLetters =correctLetters+ guessfoundAllLetters = Truefor i in range(len(secretWord)):if secretWord[i] not in correctLetters:foundAllLetters = Falsebreakif foundAllLetters:print('yes! the secretWord is " '+ secretWord +'"! you have won ')gameisDoneelse:missedLetters = missedLetters +guess if len(missedLetters)== len(HANGMAN_PICS) -1:displayBoard(missedLetters,correctLetters,secretWord)print('you have run out of guesses! \n After '+ str(len(missedLetters)) + 'missed guesses and ' +str(len(correctLetters)) + 'correct guessed,the word was "' + secretWord + '" ')gameisDone = Trueif gameisDone:if playAgian():missedLetters=''correctLetters=''gameisDone=FalsesecretWord = getRandomWord(words)else:break

输入win+R=》cmd打开终端,再将文档拖入终端内,即可执行(或者直接用python运行)

python练习:简单火柴人游戏相关推荐

  1. 用python画简单火柴人代码-趣学Python编程

    Python是一种强大并通俗易懂的编程语言,而且它易学又好用!但是关于学习Python语言的书大多很枯燥无趣,读起来没什么乐趣.本书把你带入一个鲜活的Python编程世界.作者Jason R. Bri ...

  2. 用python实现简单的火柴人游戏

    用python实现简单的火柴人游戏 1.最终效果 2.准备工作 先画出游戏中各个部分的图像素材,其中包括背景,移动的火柴人,门,楼梯. 背景:500/500像素 火柴人:27/30像素 门:27/30 ...

  3. C/C++项目开发:《火柴人游戏》,500行源代码开发

    hello,各位学编程的小伙伴们!学习C语言C++已经这么久了,你们的语法知识已经学到哪里了来了呢?不会还只停留在完成学校老师布置的小作业这样的基础层次吧! 今天这篇文章主要就是带你突破目前的瓶颈,学 ...

  4. c语言奔跑的火柴人游戏源码(附完整源码)

    c语言奔跑的火柴人游戏源码 #include <iostream> #include <fstream> #include <graphics.h> #includ ...

  5. python火柴人游戏代码_Python小游戏 Hangman

    游戏规则: 玩家一想好一个单词,玩家二猜测这个单词所包含的字母,每次猜测一个,如果玩家二本次没有猜对,玩家一就画出火柴人的一部分,玩家二如果在玩家一画完全部的火柴人之前猜出所有的字母,玩家二获胜. 代 ...

  6. python实现火柴人游戏_火柴人发射爱心.py

    #!/usr/bin/env python # -*- coding:utf-8 -*- # @File: 火柴人发射爱心.py # Author: Chen jun # @Time: 2019/11 ...

  7. Python 玩出花了!一文教你用 Python 制作吃豆人游戏! | 附代码

    作者 | 李秋键 责编 | Carol 封图 | CSDN 下载自视觉中国 近几年来Python语言得到了快速发展,而Pygame作为Python开发应用和游戏必备的库更是展现了Python的优越性. ...

  8. c++奔跑的火柴人游戏

    C++是一种计算机高级程序设计语言,由C语言扩展升级而产生 ,最早于1979年由本贾尼▪斯特劳斯特卢普在 AT&T贝尔工作室研发. C++既可以进行C语言的过程化程序设计,又可以进行以抽象数据 ...

  9. 运用Easyx图形库实现火柴人游戏左右跑动

    所谓游戏动画,就是不断绘制更新绘制更新的一个连续过程,与上次我开发的经典游戏<Flappy Bird>相似,所以我们的主函数为一个循环体.然后游戏代码分为 定义.初始化.更新数据.操作判定 ...

最新文章

  1. python-桶排序
  2. java2期末考试试题及答案_《JAVA语言程序设计》期末考试试题及答案(2)
  3. (翻译).NET应用架构
  4. Objective-C学习笔记(一)–类
  5. 卢伟冰称天玑9000调校顺利 Redmi K50系列要来了
  6. 如何用matlab画圆的图像,matlab在图像上画圆
  7. java保存图片进度条_java 进度条常用方法
  8. MD4、MD5、SHA1、HMAC、HMAC_SHA1区别
  9. wamp mysql 密码_WAMP中的mysql设置密码
  10. linux命令中man使用不起,Linux中man命令起什么作用呢?
  11. Gradle下载慢解决方案
  12. firsthead学习笔记
  13. 培养出儿子清华女儿北大的家庭十条家规
  14. sulley对Modbus协议fuzz实验
  15. Java与es8实战之二:Springboot集成es8的Java Client
  16. R及R Studio下载及简单介绍(界面+R语言)
  17. 手机上网显示服务器连接异常,手机连监控连接服务器异常什么原因
  18. 团队中的八种角色及启示
  19. 【趣题分享】关于蒋干盗书你所需要知道的
  20. QQ出现大规模盗号,为什么会这样?就没有解决方法了吗?

热门文章

  1. 数据类型之列表与元组
  2. 无线网可拼服务器吗6,当WiFi 6遇到了WiFi 6+,我们的网速真的变快了吗?
  3. 诺基亚牌WP7手机——蛮期待的
  4. Qt5:报错error: ‘tr‘ was not declared in this scop
  5. (2022牛客多校五)H-Cutting Papers(签到)
  6. 杰理之高低速(HSB/LSB)时钟硬件模块【篇】
  7. If this is an unexpected issue and persists you can inspect it running `pod repo update --verbose`
  8. 男人应享有动听词汇的权利
  9. String的xml转map
  10. 利用Linux自带的logrotate管理日志