python实现简单飞行棋
作者:htnigel 发布时间:2021-07-24 23:02:14
标签:python,飞行棋
本人刚开始学习python,看了一段时间视频教程之后,决定做一个小游戏来巩固一下知识点,就做了一个文字版飞行棋,暂不具备图形界面。把代码贴出来,给自己留个标记。
chess_main.py
import chess_tools
# 输入玩家信息
chess_tools.input_player()
while chess_tools.end_flag:
for player in chess_tools.player_list:
chess_tools.ironman(player)
input(player["name"]+",请按enter掷骰子")
chess_tools.throw(player)
if chess_tools.judge(player) == 1:
break
chess_tools.hit(player)
chess_tools.speedup(player)
print("")
chess_tools.py
from random import randint
player_list = []
end_flag = 1
def input_player():
num = input("数据玩家数量:")
i = 0
while i < int(num):
player_name = input("输入第" + str(i + 1) + "位玩家名字:")
play_info = {"name": player_name,
"score": 0}
player_list.append(play_info)
i = i + 1
def throw(player):
"""
玩家扔骰子,随机1-6点
:param player: 当前玩家
:return:
"""
points = randint(1,6)
# 首先判定是否起飞
if player["score"] == 0 and points == 6:
player["score"] = 1
print("%d 点,恭喜起飞!当前在第%d格" % (points, player["score"]))
elif player["score"] == 0 and points < 6:
print("%d 点,起飞失败!" % points)
return
# 分数大于100,要后退,多几分退几步
elif player["score"] + points > 100:
player["score"] = player["score"] - (player["score"]+ points) % 100 + 1
print("%d 点,飞过头了!回到%d格" % (points,player["score"]))
else:
player["score"] += points
print("%d 点!当前在第%d格" % (points, player["score"]))
def judge(player):
global end_flag
if player["score"] == 100:
end_flag = 0
print(player["name"]+"赢了")
return 1
def hit(player):
"""
判断当前玩家是否会将领先的玩家撞回起飞位置
:param player: 当前玩家名字
"""
for other_player in player_list:
if player["score"] == other_player["score"] \
and other_player["name"] != player["name"]:
other_player["score"] = 0
def speedup(player):
if player["score"] == 15 or \
player["score"] == 35 or \
player["score"] == 85:
player["score"] += 5
print("加速5格,当前在%d格" % player["score"])
def ironman(player):
"""
主角光环,名字中含有指定字符的人可以获得50分加成
:param player:当前玩家的名字
"""
master = player["name"].count("t")
if master > 0 and player["score"] == 0:
player["score"] = 50
print("- I am Iron Man!贾维斯,先给我加50分。")
print("- 好的,%s 。当前已走到第50格。" % player["name"])
print("")
来源:https://blog.csdn.net/u010186366/article/details/100142908


猜你喜欢
- match()函数的使用。以及从文本中提取数据的方法。在学习re模块的相关函数前应了解正则表达式的特殊字符准备一个要爬取的文本文档:直接从某
- 准备工作:首先,我们需要 import 几个工具包,一个是 python 标准库中的 wave 模块,用于音频处理操作,另外两个是 nump
- 前言网络上各大论坛,尤其是一些图片类型的网站上,在图片加载时均采用了一种名为懒加载的方式,具体表现为,当页面被请求时,只加载可视区域的图片,
- 一.使用DOM生成和读取XML文件 实例一: <?php //Creates XML string and XML document
- 在一些特殊的业务场景中,我们需要一次性提取一张图片中的色卡信息,并且需要使用十六进制的颜色表示方法进行展示。今天得空做了一个小工具,用来自定
- VUE-ElementUI 时间区间选择器官方文档中使用picker-options属性来限制可选择的日期一、单个输入框<el-dat
- 但Insus.NET想到的是,从下面的SQL语句,就可以查询到数据库大小。因此分享于此。 代码如下:SELECT DB_NAME
- JS如何从一个数组中随机取出一个元素或者几个元素。假如数组为var items = ['1','2',
- 客户的一台服务器出现Raid故障,经过我们的努力,数据基本恢复成功,但是其中的一个SQL Server日志文件(扩展名LDF)损坏严重,基本
- 使用方式:new downUpData({url:"http://192.168.1.103:8080/test/data.jso
- javascript中给数组加元素是一个非常简单的问题,javascript本身就提供了大量这类函数,我们可以使用js自带函数快速给数组增加
- 1、PHP加密解密PHP加密和解密函数可以用来加密一些有用的字符串存放在数据库里,并且通过可逆解密字符串,该函数使用了base64和MD5加
- insert into(列名) select 列名 from 表名 where 条件 --不创建表,只复制表数据 select 列名 int
- 本文实例讲述了python使用BeautifulSoup分析网页信息的方法。分享给大家供大家参考。具体如下:这段python代码查找网页上的
- 目录Python 数据化运营1、内容介绍2、一般应用场景3、聚类的常见方法4、Keans聚类实现5、聚类的评估指标6、聚类效果可视化7、数据
- 本文实例讲述了Python数据类型之List列表。分享给大家供大家参考,具体如下:list列表1.概述:通过之前的学习,我们知道变量可以存储
- 目录1.需求2.代码实现总结1.需求发现项目本地所有带别名的URL,组成一个有序字典,方便后续调用;定向排除部分URL,如Django自带的
- 1.按列取、按索引/行取、按特定行列取import numpy as npfrom pandas import DataFrameimpor
- 本文记录了RHEL7.5下mysql 8.0.11安装教程,具体内容如下首先去mysql官网下载mysql-8.0.11-el7-x86_6
- 前言本文主要介绍的是用yum安装MySQLdb模块的步骤,下面话不多说了,来看看详细的介绍吧。步骤如下MySQLdb依赖于mysql-dev