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制作websocket服务器实例分享
Nov 20 Python
使用python实现tcp自动重连
Jul 02 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
python如何生成网页验证码
Jul 28 Python
python 美化输出信息的实例
Oct 15 Python
代码详解django中数据库设置
Jan 28 Python
Python 互换字典的键值对实例
Feb 12 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
Django上使用数据可视化利器Bokeh解析
Jul 31 Python
Python 仅获取响应头, 不获取实体的实例
Aug 21 Python
Python虚拟环境venv用法详解
May 25 Python
Keras预训练的ImageNet模型实现分类操作
Jul 07 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
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
PHP循环遍历数组的3种方法list()、each()和while总结
2014/11/19 PHP
微信支付PHP SDK ―― 公众号支付代码详解
2016/09/13 PHP
用javascript实现在小方框中浏览大图的代码
2007/08/14 Javascript
JavaScript获取页面上某个元素的代码
2011/03/13 Javascript
js 完美图片新闻轮转效果,腾讯大粤网首页图片轮转改造而来
2011/11/21 Javascript
node.js中的http.response.writeHead方法使用说明
2014/12/14 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
AngularJS教程之简单应用程序示例
2016/08/16 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
2017/03/13 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
Layui 带多选框表格监听事件以及按钮自动点击写法实例
2019/09/02 Javascript
js实现可爱的气泡特效
2020/09/05 Javascript
vue实现广告栏上下滚动效果
2020/11/26 Vue.js
vue.js实现点击图标放大离开时缩小的代码
2021/01/27 Vue.js
[49:21]2018DOTA2亚洲邀请赛3月30日 小组赛B组 Effect VS iG
2018/03/31 DOTA
详细解读Python的web.py框架下的application.py模块
2015/05/02 Python
不可错过的十本Python好书
2017/07/06 Python
Python探索之pLSA实现代码
2017/10/25 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
Python接口测试get请求过程详解
2020/02/28 Python
Python Opencv轮廓常用操作代码实例解析
2020/09/01 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
Python日志打印里logging.getLogger源码分析详解
2021/01/17 Python
初级Java程序员面试题
2016/03/03 面试题
家长会演讲稿范文
2014/01/10 职场文书
个人委托书怎么写
2014/04/04 职场文书
荆州古城导游词
2015/02/06 职场文书
2015年调度员工作总结
2015/04/30 职场文书
社区艾滋病宣传活动总结
2015/05/07 职场文书