Python实现小黑屋游戏的完整实例
作者:M.G~ 发布时间:2021-03-08 13:27:43
标签:python,小黑屋,游戏
大一上学期学习的内容之一,小黑屋比较好玩。
1.导入函数库
先导入random、time两个函数库的使用来达到随机生成人物、生成人物加载时间的目的。
import random
import time
2.创建列表
创建事件、资源、技能列表(可以自己思考然后加入你所认为需要的列表)。
event = ["遇到饥寒交迫的人"]#事件列表
source = ["木材","肉","布"]#资源列表
skill = ["潜水","爬山","跳跃"]#技能列表
3.创建函数
初始人物状态
def init():#初始人物
person = {"HP":100,"hungry":100,"EQ":50,"skill":"","木材":2,"fire":0}#人的初始状态
在这里后面可以加上time函数库,使生成人物需要加载时间来让游戏更加真实。
time.sleep(3)#停止运行3秒
print("人物生成中>>>>>>>>>50%")
time.sleep(2)#停止运行2秒
print("人物生成中>>>>>>>>>>>>>>>>>>>80%")
time.sleep(1)#停止运行1秒
print("人物生成中>>>>>>>>>>>>>>>>>>>>>>>>>>>100%")
showperson(person)
return person
火堆燃烧状态
def fire(person):
person["木材"] = person["木材"] - 1
person["hungry"] = person["hungry"] - 20
person["fire"] = 1
print("火堆燃起来了!")
return person
遇到事件的可能性和状态(因为前面事件列表只写了一个,所以我这里的事件就只是遇到饥寒交迫的人,你们可以自行修改)。
def Playgame(person):
#point = random.randint(0,1)
point = 0
if point == 0:
print("你遇到了饥寒交迫的人!")
choose = input("是否要给他木材:")
print("你的火堆熊熊燃烧中...")
if choose == "是":
person["木材"] = person["木材"] - 1
person["EQ"] = person["EQ"] + 10
if 80 < random.randint(0,100):
skill = random.choice("skill")
skill.remove(skill)
person["skill"] = person["skill"] + skill
person["HP"] = person["HP"] + 100
else:
person["HP"] = person["HP"] - 10
print("和他挑战你输了")
return person
人物现在的状态
def showperson(person):
print("你现在的状态是:",person)
调用函数
person = init()
person = fire(person)
person = Playgame(person)
showperson(person)
结果如下:
或者
要注意导入函数库,还有只创建需要使用的函数,以便于后面函数的调用。
总结
来源:https://blog.csdn.net/L_2376131723/article/details/112233823
0
投稿
猜你喜欢
- 在IE6中背景属性加 a 与 a:hover 两者的伪类结合,在正常逻辑下为何不起作用?测试这问题存在IE6及以下浏览器,这问题我经常遇到在
- Hi, 大家好~ 好久没有发有营养的东西,今天就扔一篇最近热点的Google Chrome 浏览器的试用心得吧。先说个比较搞的事情,Goog
- 我们提倡无论何时都尽可能地使用CSS,这样我们更容易取得成功.现在浏览器对CSS的支持已经非常好,肯定足以让你用来控制你的网页布局与排版.但
- 要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOS window”)并输入命令:C
- Symfony是一个强大的基于PHP的Web开发框架,在这里我们用十分钟的时间来做一个简单的增删改查的程序, 任何不熟悉Symfony的人都
- 一 概念1. 原理2. 好处不同项目可能用到的环境不同,运用虚拟环境能将不同环境分隔开二 virtualenvvirtual 虚拟的1. 安
- 前言字典是Python中最强大的数据类型之一,本文将给大家详细介绍关于Python合并两个字典(dict)的相关内容,分享出来供大家参考学习
- 又一个js加密工具:js混淆,完整源代码如下,有点长呵呵:<HTML><HEAD><TITLE>Cunf
- 我要实现的就是下图的这种样式,可参考下面这两个网站的留言板,他们的实现原理都是一样的畅言留言板样式:网易跟帖样式:原理需要在评论表添加两个主
- 自个儿闲的发疯画几个老鼠的表情,送女朋友。。HOHO。经常欺负人。哎。其实被欺负是一种幸福。工作以美国时间为主,所以白天睡到晚上。我不傻,真
- SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦。
- 在Web开发中,后端代码写起来其实是相当容易的。例如,我们编写一个REST API,用于创建一个Blog:@api@post('/a
- 记忆点:前序:VLR中序:LVR后序:LRV举例:一颗二叉树如下图所示:则它的前序、中序、后序遍历流程如下图所示:1.前序遍历class S
- 一些很实用且必用的js小脚本代码:脚本1:进入页面后自动播放音乐或其它声音文件<embed src="音乐地址&q
- 我们用下了asp代码简单统计了下载一个文件需要的时间:<%Function DownloadTime(intFileSize
- ff默认不让改 statusopera9 测试通过ie6 测试通过这东西是给统计部门用的,分析用户习惯以改良网站布局
- 一组常用的弹出窗口用法,以下代码集合常用的弹出窗口用法。1、最基本的弹出窗口代码<SCRIPT LANGUAGE="
- 之前,我介绍了学习安装并配置前端自动化工具Gulp,觉得gulp确实比grunt的配置简单很多,于是我决定再深入学习一下gulp,就去网上查
- 我们在日常开发中,我们经常会面对复杂的子系统,其中包含许多相互关联的类和接口。直接使用这些类和接口可能会导致代码的复杂性增加,使得系统难以维
- VBSCRIPT中的日期,时间,星期函数很丰富,给我们使用带来了很大的方便,我个人使用最多的就是用now()来获取服务器的当前日期和时间。但