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中用startswith()函数判断字符串开头的教程
Apr 07 Python
Linux下将Python的Django项目部署到Apache服务器
Dec 24 Python
Python for Informatics 第11章之正则表达式(四)
Apr 21 Python
Python实现简单的四则运算计算器
Nov 02 Python
pandas 使用apply同时处理两列数据的方法
Apr 20 Python
深入分析python中整型不会溢出问题
Jun 18 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
Jun 25 Python
使用python3实现操作串口详解
Jan 01 Python
Python for循环与range函数的使用详解
Mar 23 Python
pytorch多GPU并行运算的实现
Sep 27 Python
浅谈OpenCV中的新函数connectedComponentsWithStats用法
Jul 05 Python
详解基于Scrapy的IP代理池搭建
Sep 29 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 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
Zend Framework基本页面布局分析
2016/03/19 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
由Javascript实现的页面日历
2011/11/04 Javascript
js实现上传图片之上传前预览图片
2013/03/25 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
2014/11/03 Javascript
对Js OOP编程 创建对象的一些全面理解
2016/07/26 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
angular中实现li或者某个元素点击变色的两种方法
2017/07/27 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
JS 5种遍历对象的方式
2020/06/16 Javascript
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
python线程、进程和协程详解
2016/07/19 Python
windows下安装python的C扩展编译环境(解决Unable to find vcvarsall.bat)
2018/02/21 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
Python如何获取文件路径/目录
2020/09/22 Python
如何写你的创业计划书
2014/01/07 职场文书
《陶罐和铁罐》教学反思
2014/02/19 职场文书
酒店行政人事部经理职务说明书
2014/02/26 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
大一工商管理职业生涯规划:有梦最美,行动相随
2014/09/18 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
太空授课观后感
2015/06/17 职场文书
班委竞选稿范文
2015/11/21 职场文书