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实现的数据结构与算法之链表详解
Apr 22 Python
python不换行之end=与逗号的意思及用途
Nov 21 Python
python实现单向链表详解
Feb 08 Python
Pycharm取消py脚本中SQL识别的方法
Nov 29 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
python实现名片管理器的示例代码
Dec 17 Python
基于python实现操作git过程代码解析
Jul 27 Python
python 中的命名空间,你真的了解吗?
Aug 19 Python
Python配置pip国内镜像源的实现
Aug 20 Python
python palywright库基本使用
Jan 21 Python
教你怎么用python selenium实现自动化测试
May 27 Python
opencv用VS2013调试时用Image Watch插件查看图片
Jul 26 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
ThinkPHP应用模式扩展详解
2014/07/16 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
JavaScript使用cookie
2007/02/02 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
一个可以增加和删除行的table并可编辑表格中内容
2014/06/16 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
JS中使用FormData上传文件、图片的方法
2016/08/07 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
Vue v-model组件封装(类似弹窗组件)
2020/01/08 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
使用Vant完成DatetimePicker 日期的选择器操作
2020/11/12 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
浅析VUE防抖与节流
2020/11/24 Vue.js
Python之os操作方法(详解)
2017/06/15 Python
python3实现磁盘空间监控
2018/06/21 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
Python argparse模块使用方法解析
2020/02/20 Python
Python requests设置代理的方法步骤
2020/02/23 Python
python 写一个性能测试工具(一)
2020/10/24 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
canvas 绘图时位置偏离的问题解决
2020/09/16 HTML / CSS
Java语言的优势
2015/01/10 面试题
AssertionError 跟一下那个类是 “is – a”的关系
2012/02/21 面试题
函授毕业生的自我鉴定
2013/11/26 职场文书
2015年超市收银员工作总结
2015/04/25 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
只用50行Python代码爬取网络美女高清图片
2021/06/02 Python
Python绘画好看的星空图
2022/03/17 Python
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS