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 算法 排序实现快速排序
Jun 05 Python
用python登录Dr.com思路以及代码分享
Jun 25 Python
跟老齐学Python之有容乃大的list(1)
Sep 14 Python
python将图片文件转换成base64编码的方法
Mar 14 Python
python 删除非空文件夹的实例
Apr 26 Python
详解Django中六个常用的自定义装饰器
Jul 04 Python
tensorflow实现简单逻辑回归
Sep 07 Python
pandas DataFrame创建方法的方式
Aug 02 Python
Python3直接爬取图片URL并保存示例
Dec 18 Python
pandas-resample按时间聚合实例
Dec 27 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
教你怎么用Python处理excel实现自动化办公
Apr 30 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/08/09 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
php中使用sftp教程
2015/03/30 PHP
xml 封装与解析(javascript和C#中)
2009/07/26 Javascript
20款超赞的jQuery插件 Web开发人员必备
2011/02/26 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
如何用js控制frame的隐藏或显示的解决办法
2013/03/20 Javascript
将字符串转换成gb2312或者utf-8编码的参数(js版)
2013/04/10 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
jQuery圆形统计图开发实例
2015/01/04 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
简化版的vue-router实现思路详解
2018/10/19 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
实现vuex原理的示例
2020/10/21 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
Python使用MONGODB入门实例
2015/05/11 Python
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
python验证码识别的实例详解
2016/09/09 Python
Python正则简单实例分析
2017/03/21 Python
Python中的取模运算方法
2018/11/10 Python
详解Python Qt的窗体开发的基本操作
2019/07/14 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
详解用 python-docx 创建浮动图片
2021/01/24 Python
瑞典最好的运动鞋专卖店:Sneakersnstuff
2016/08/29 全球购物
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
教学个人的自我评价分享
2014/02/16 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
结婚纪念日感言
2015/08/01 职场文书
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技