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 相关文章推荐
使用Protocol Buffers的C语言拓展提速Python程序的示例
Apr 16 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
python 多维切片之冒号和三个点的用法介绍
Apr 19 Python
numpy使用fromstring创建矩阵的实例
Jun 15 Python
对python中类的继承与方法重写介绍
Jan 20 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
python3实现单目标粒子群算法
Nov 14 Python
opencv设置采集视频分辨率方式
Dec 10 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
Apr 23 Python
python中可以声明变量类型吗
Jun 18 Python
Python2.6版本pip安装步骤解析
Aug 17 Python
Python基于内置函数type创建新类型
Oct 22 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递归获取目录内文件(包含子目录)封装类分享
2013/12/25 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
JSON用法之将PHP数组转JS数组,JS如何接收PHP数组
2015/10/08 PHP
详解php用static方法的原因
2018/09/12 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
Javascript学习笔记一 之 数据类型
2010/12/15 Javascript
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
浅谈jQuery中setInterval()方法
2015/07/07 Javascript
JavaScript实现弹出模态窗体并接受传值的方法
2016/02/12 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
AngularJS通过$location获取及改变当前页面的URL
2016/09/23 Javascript
简单的vuex 的使用案例笔记
2018/04/13 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
Python实现图像几何变换
2015/07/06 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
python SVM 线性分类模型的实现
2019/07/19 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
Python利用逻辑回归模型解决MNIST手写数字识别问题详解
2020/01/14 Python
python3让print输出不换行的方法
2020/08/24 Python
python编写实现抽奖器
2020/09/10 Python
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
什么是会话Bean
2015/05/14 面试题
管理失职检讨书
2014/02/12 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
初中三好学生自我鉴定
2014/04/07 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
给老婆的检讨书1000字
2015/01/01 职场文书
检讨书范文1000字
2015/01/28 职场文书
企业工会工作总结2015
2015/05/13 职场文书
2016秋季运动会前导词
2015/11/25 职场文书