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 相关文章推荐
wxPython窗口的继承机制实例分析
Sep 28 Python
Python进程通信之匿名管道实例讲解
Apr 11 Python
浅谈python 线程池threadpool之实现
Nov 17 Python
Python单元测试实例详解
May 25 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
详解windows python3.7安装numpy问题的解决方法
Aug 13 Python
python实现单链表中删除倒数第K个节点的方法
Sep 28 Python
Python中Numpy ndarray的使用详解
May 24 Python
详解python中的time和datetime的常用方法
Jul 08 Python
python禁用键鼠与提权代码实例
Aug 16 Python
python读取Kafka实例
Dec 23 Python
tensorflow实现对张量数据的切片操作方式
Jan 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 引用是个坏习惯
2010/03/12 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
Yii的CDbCriteria查询条件用法实例
2014/12/04 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
PHP 生成微信红包代码简单
2016/03/25 PHP
PHP针对字符串开头和结尾的判断方法
2016/07/11 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
延时重复执行函数 lLoopRun.js
2007/05/08 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
javascript中创建对象的几种方法总结
2013/11/01 Javascript
jQuery中die()方法用法实例
2015/01/19 Javascript
JavaScript DOM进阶方法
2015/04/13 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
2017/10/24 Javascript
vue+iview写个弹框的示例代码
2017/12/05 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
js判断复选框是否选中的方法示例【基于jQuery】
2019/10/10 jQuery
JavaScript代理模式原理与用法实例详解
2020/03/10 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
Python基于回溯法子集树模板解决找零问题示例
2017/09/11 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
python dict 相同key 合并value的实例
2019/01/21 Python
python3实现mysql导出excel的方法
2019/07/31 Python
python有序查找算法 二分法实例解析
2020/02/18 Python
Python实现RabbitMQ6种消息模型的示例代码
2020/03/30 Python
有模特经验的简历自我评价
2013/09/19 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
2014年销售工作总结范文
2014/12/01 职场文书
收银员岗位职责
2015/02/03 职场文书
Python标准库pathlib操作目录和文件
2021/11/20 Python