python实现简单飞行棋

作者:htnigel 时间:2021-07-24 23:02:14 

本人刚开始学习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("")

来源:https://blog.csdn.net/u010186366/article/details/100142908

标签:python,飞行棋
0
投稿

猜你喜欢

  • 详解PHP中数组函数的知识点

    2023-05-29 10:59:11
  • python实现图像高斯金字塔的示例代码

    2023-05-06 02:02:32
  • 归纳万恶IE6的HACK方法

    2010-02-04 17:17:00
  • 深入浅析Python中join 和 split详解(推荐)

    2022-09-19 17:43:38
  • Python学习之字典和集合的使用详解

    2022-11-01 19:54:21
  • 一文学会利用python解决文章付费限制问题

    2021-04-09 08:23:51
  • python 矢量数据转栅格数据代码实例

    2022-06-12 03:40:14
  • python中使用百度音乐搜索的api下载指定歌曲的lrc歌词

    2023-06-14 06:23:07
  • Python实现的求解最小公倍数算法示例

    2022-12-11 04:50:03
  • Python OpenCV 针对图像细节的不同操作技巧

    2021-08-13 01:29:22
  • 浅谈anaconda python 版本对应关系

    2023-12-06 01:02:35
  • Python实现简单的文本相似度分析操作详解

    2023-07-18 11:16:12
  • 提高asp程序访问速度的方法

    2008-10-23 16:37:00
  • 如何判断JavaScript变量的类型

    2009-02-25 12:28:00
  • Google谷歌的CSS前景图片合并技术

    2009-07-13 12:21:00
  • Python实现京东抢秒杀功能

    2021-12-06 04:50:17
  • oracle数据库下统计专营店的男女数量的语句

    2012-07-11 16:01:17
  • Python基础入门之seed()方法的使用

    2021-11-17 04:10:19
  • PHP变量作用域(全局变量&局部变量)&global&static关键字用法实例分析

    2023-11-23 11:42:05
  • 如何使用Iframe实现本页提交?

    2010-06-05 12:36:00
  • asp之家 网络编程 m.aspxhome.com