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网络编程之读取网站根目录实例
Sep 30 Python
老生常谈Python进阶之装饰器
May 11 Python
Python实现的密码强度检测器示例
Aug 23 Python
Django如何实现内容缓存示例详解
Sep 24 Python
python中requests库session对象的妙用详解
Oct 30 Python
Python实现常见的回文字符串算法
Nov 14 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
详解python selenium 爬取网易云音乐歌单名
Mar 28 Python
通过python3实现投票功能代码实例
Sep 26 Python
python super函数使用方法详解
Feb 14 Python
python实点云分割k-means(sklearn)详解
May 28 Python
python中plt.imshow与cv2.imshow显示颜色问题
Jul 16 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读取IMAP邮件
2006/10/09 PHP
php str_pad 函数用法简介
2009/07/11 PHP
php中的一些数组排序方法分享
2012/07/20 PHP
JS在textarea光标处插入文本的小例子
2013/03/22 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
2013/12/10 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
使用js实现的简单拖拽效果
2015/03/18 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
jstree的简单实例
2016/12/01 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
如何在JavaScript中谨慎使用代码注释
2019/06/21 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
JavaScript快速调试的两个技巧
2020/11/04 Javascript
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
python探索之BaseHTTPServer-实现Web服务器介绍
2017/10/28 Python
python逆序打印各位数字的方法
2018/06/25 Python
利用django+wechat-python-sdk 创建微信服务器接入的方法
2019/02/20 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
政府个人对照检查材料
2014/08/28 职场文书
项目合作协议书
2014/09/23 职场文书
个人对照检查材料思想汇报(四风问题)
2014/09/25 职场文书
总经理司机岗位职责
2015/04/10 职场文书
法律进社区活动总结
2015/05/07 职场文书
电影复兴之路观后感
2015/06/02 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫