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 添加用户设置密码并发邮件给root用户
Jul 25 Python
Python 列表(List) 的三种遍历方法实例 详解
Apr 15 Python
Python网络爬虫中的同步与异步示例详解
Feb 03 Python
磁盘垃圾文件清理器python代码实现
Aug 24 Python
python+splinter自动刷新抢票功能
Sep 25 Python
python中树与树的表示知识点总结
Sep 14 Python
TensorFlow 读取CSV数据的实例
Feb 05 Python
pytorch实现从本地加载 .pth 格式模型
Feb 14 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
django模型类中,null=True,blank=True用法说明
Jul 09 Python
Scrapy中如何向Spider传入参数的方法实现
Sep 28 Python
calendar在python3时间中常用函数举例详解
Nov 18 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
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
PHP+Apache环境中如何隐藏Apache版本
2017/11/24 PHP
Phpstorm+Xdebug断点调试PHP的方法
2018/05/14 PHP
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
Bootstrap Chart组件使用教程
2016/04/28 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
webpack多页面开发实践
2017/12/18 Javascript
vue axios数据请求get、post方法及实例详解
2018/09/11 Javascript
Nodejs模块的调用操作实例分析
2018/12/25 NodeJs
JS中的函数与对象的创建方式
2019/05/12 Javascript
vue中npm包全局安装和局部安装过程
2019/09/03 Javascript
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
python实现图片中文字分割效果
2019/07/22 Python
python标识符命名规范原理解析
2020/01/10 Python
Django models filter筛选条件详解
2020/03/16 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
女性时尚网购:Chic Me
2019/07/30 全球购物
毕业生物理教师求职信
2013/10/17 职场文书
学生就业推荐信
2013/11/13 职场文书
经贸日语专业个人求职信范文
2013/12/28 职场文书
校园奶茶店创业计划书
2014/01/23 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
2014年教师德育工作总结
2014/11/10 职场文书
新郎婚礼答谢词
2015/01/04 职场文书
学生检讨书范文
2015/01/27 职场文书
2015年化验室工作总结
2015/04/23 职场文书
摘录式读书笔记
2015/07/01 职场文书
员工规章制度范本
2015/08/07 职场文书
Java实现带图形界面的聊天程序
2022/06/10 Java/Android