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中关键字global和nonlocal的区别详解
Sep 03 Python
Python定义函数功能与用法实例详解
Apr 08 Python
itchat-python搭建微信机器人(附示例)
Jun 11 Python
在PYQT5中QscrollArea(滚动条)的使用方法
Jun 14 Python
简单了解Django应用app及分布式路由
Jul 24 Python
python分布式编程实现过程解析
Nov 08 Python
PyCharm GUI界面开发和exe文件生成的实现
Mar 04 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 Python
Python发送邮件实现基础解析
Aug 14 Python
Python模拟键盘输入自动登录TGP
Nov 27 Python
python中的插入排序的简单用法
Jan 19 Python
Python数据可视化之Seaborn的安装及使用
Apr 19 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提交表单发送邮件的方法
2015/03/20 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
悬浮数字的实现案例
2014/02/19 Javascript
Javascript学习笔记之函数篇(六) : 作用域与命名空间
2014/11/23 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
EasyUI创建对话框的两种方式
2016/08/23 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
利用jquery给指定的table动态添加一行、删除一行的方法
2016/10/12 Javascript
使用vue-router设置每个页面的title方法
2018/02/11 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
Vue自定义弹窗指令的实现代码
2018/08/13 Javascript
详解Vue 匿名、具名和作用域插槽的使用方法
2019/04/22 Javascript
JavaScript实现捕获鼠标坐标
2020/04/12 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
Python实现括号匹配方法详解
2020/02/10 Python
python db类用法说明
2020/07/07 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
司机的工作范围及职责
2013/11/13 职场文书
检查接待方案
2014/02/27 职场文书
分层教学实施方案
2014/03/19 职场文书
倡议书格式模板
2014/05/13 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
2015教师见习期工作总结
2014/12/12 职场文书
不同意离婚上诉状
2015/05/23 职场文书
爱国主义电影观后感
2015/06/18 职场文书
python_tkinter弹出对话框创建
2022/03/20 Python