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的web框架中编写创建日志的程序的教程
Apr 30 Python
python中循环语句while用法实例
May 16 Python
Python提取网页中超链接的方法
Sep 18 Python
Python实现识别手写数字大纲
Jan 29 Python
pandas or sql计算前后两行数据间的增值方法
Apr 20 Python
基于Django框架利用Ajax实现点赞功能实例代码
Aug 19 Python
便捷提取python导入包的属性方法
Oct 15 Python
python 快速把超大txt文件转存为csv的实例
Oct 26 Python
对python 命令的-u参数详解
Dec 03 Python
Python正则表达式学习小例子
Mar 03 Python
python从Oracle读取数据生成图表
Oct 14 Python
python实现启动一个外部程序,并且不阻塞当前进程
Dec 05 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
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
php编程每天必学之验证码
2016/03/03 PHP
Zend Framework自定义Helper类相关注意事项总结
2016/03/14 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
js验证表单第二部分
2006/11/25 Javascript
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
jscript之Read an Excel Spreadsheet
2007/06/13 Javascript
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
基于jquery的图片的切换(以数字的形式)
2011/02/14 Javascript
jquery基础教程之数组使用详解
2014/03/10 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
jQuery对JSON数据进行排序输出的方法
2015/06/24 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
js验证身份证号有效性并提示对应信息
2015/10/19 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
Javascript中引用类型传递的知识点小结
2017/03/06 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
原生js实现文件上传、下载、封装等实例方法
2020/01/05 Javascript
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
不要用强制方法杀掉python线程
2017/02/26 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
2018/12/19 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
企业委托书范本
2014/09/13 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
邀请函的格式
2015/01/30 职场文书
简历自我评价:教师师德表现自我评价
2019/04/24 职场文书