python实现简单飞行棋


Posted in Python onFebruary 06, 2020

本人刚开始学习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("")

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python self,cls,decorator的理解
Jul 13 Python
python字典多条件排序方法实例
Jun 30 Python
python实现颜色rgb和hex相互转换的函数
Mar 19 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
用Python一键搭建Http服务器的方法
Jun 01 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
Python IDLE清空窗口的实例
Jun 25 Python
python异步存储数据详解
Mar 19 Python
了解不常见但是实用的Python技巧
May 23 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
Python字符串hashlib加密模块使用案例
Mar 10 Python
在python中使用pyspark读写Hive数据操作
Jun 06 Python
python实现飞行棋游戏
Feb 05 #Python
以SQLite和PySqlite为例来学习Python DB API
Feb 05 #Python
Python操作Sqlite正确实现方法解析
Feb 05 #Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 #Python
Tensorflow累加的实现案例
Feb 05 #Python
详谈tensorflow gfile文件的用法
Feb 05 #Python
TensorFlow实现从txt文件读取数据
Feb 05 #Python
You might like
vBulletin HACK----关于排版的两个HACK
2006/10/09 PHP
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
php 破解防盗链图片函数
2008/12/09 PHP
PHP 根据IP地址控制访问的代码
2010/04/22 PHP
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
javascript 原型模式实现OOP的再研究
2009/04/09 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
JSONP原理及应用实例详解
2018/09/13 Javascript
在vue中解决提示警告 for循环报错的方法
2018/09/28 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
python实现给字典添加条目的方法
2014/09/25 Python
详解详解Python中writelines()方法的使用
2015/05/25 Python
Python使用微信SDK实现的微信支付功能示例
2017/06/30 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
关于python字符串方法分类详解
2019/08/20 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
巴塞罗那观光通票:Barcelona Pass
2019/10/30 全球购物
英文版区域经理求职信
2013/10/23 职场文书
电气技术员岗位职责
2013/11/19 职场文书
绩效专员岗位职责
2013/12/02 职场文书
十八届三中全会感言
2014/03/10 职场文书
2014年新生军训方案
2014/05/01 职场文书
活动倡议书范文
2014/05/13 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
python 字典和列表嵌套用法详解
2021/06/29 Python
Golang流模式之grpc的四种数据流
2022/04/13 Golang