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 基础知识之字符串处理
Jan 06 Python
Python生成密码库功能示例
May 23 Python
python定向爬取淘宝商品价格
Feb 27 Python
python线程池threadpool实现篇
Apr 27 Python
python爬虫之模拟登陆csdn的实例代码
May 18 Python
Python3.6日志Logging模块简单用法示例
Jun 14 Python
对python sklearn one-hot编码详解
Jul 10 Python
python实现windows壁纸定期更换功能
Jan 21 Python
Python实现的删除重复文件或图片功能示例【去重】
Apr 23 Python
python实现两张图片拼接为一张图片并保存
Jul 16 Python
详解Django 时间与时区设置问题
Jul 23 Python
深入分析python 排序
Aug 24 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删除xml文档内容的方法
2015/01/23 PHP
PHP简单实现遍历目录下特定文件的方法小结
2017/05/22 PHP
js cookies 常见网页木马挂马代码 24小时只加载一次
2009/04/13 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
js控制网页前进和后退的方法
2015/06/08 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
JavaScript实现数值自动增加动画
2017/12/28 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
jQuery模仿ToDoList实现简单的待办事项列表
2019/12/30 jQuery
vue在线动态切换主题色方案
2020/03/26 Javascript
Vue $emit()不能触发父组件方法的原因及解决
2020/07/28 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
python3读取MySQL-Front的MYSQL密码
2017/05/03 Python
python分割列表(list)的方法示例
2017/05/07 Python
python实现分页效果
2017/10/25 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
Python3+Requests+Excel完整接口自动化测试框架的实现
2019/10/11 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
2020/02/11 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
Python如何对齐字符串
2020/07/30 Python
英国袜子店:Sock Shop
2017/01/11 全球购物
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
历史专业个人求职信分享
2013/12/20 职场文书
计划生育证明格式范本
2014/09/12 职场文书
2014年房产经纪人工作总结
2014/12/08 职场文书
2015年档案室工作总结
2015/05/23 职场文书
感谢信
2019/04/11 职场文书