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爬虫框架Scrapy安装使用步骤
Apr 01 Python
python实现随机密码字典生成器示例
Apr 09 Python
Python获取央视节目单的实现代码
Jul 25 Python
python 不以科学计数法输出的方法
Jul 16 Python
python 对给定可迭代集合统计出现频率,并排序的方法
Oct 18 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
python3反转字符串的3种方法(小结)
Nov 07 Python
Python标准库itertools的使用方法
Jan 17 Python
python实现密码强度校验
Mar 18 Python
python能自学吗
Jun 18 Python
python跨文件使用全局变量的实现
Nov 17 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实现图片简单上传
2006/10/09 PHP
一篇有意思的技术文章php介绍篇
2010/10/26 PHP
一个PHP的ZIP压缩类分享
2014/05/04 PHP
PHP简单创建压缩图的方法
2016/08/24 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
JavaScript 更严格的相等 [译]
2012/09/20 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
React Native实现地址挑选器功能
2017/10/24 Javascript
详解node child_process模块学习笔记
2018/01/24 Javascript
Vue.js 点击按钮显示/隐藏内容的实例代码
2018/02/08 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
JS Web Flex弹性盒子模型代码实例
2020/03/10 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
python实现csv格式文件转为asc格式文件的方法
2018/03/23 Python
python 列表降维的实例讲解
2018/06/28 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
python 获取url中的参数列表实例
2018/12/18 Python
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
介绍一下.net和Java的特点和区别
2012/09/26 面试题
金融专业应届生求职信
2013/11/02 职场文书
什么样的创业计划书可行性高?
2014/02/01 职场文书
创建市级文明单位实施方案
2014/03/01 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
社区灵活就业证明
2014/11/03 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP
MySQL索引失效十种场景与优化方案
2023/05/08 MySQL