python实现简单飞行棋

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 用Python编写一个国际象棋AI程序

    最近我用Python做了一个国际象棋程序并把代码发布在Github上了.这个代码不到1000行,大概20%用来实现AI.在这篇文章中我会介绍这个AI如何工作,每一个部分做什么,它为什么能那样工作起来.你可以直接通读本文,或者去下载代码,边读边看代码.虽然去看看其他文件中有什么AI依赖的类也可能有帮助,但是AI部分全都在AI.py文件中. AI 部分总述 AI在做出决策前经过三个不同的步骤.首先,他找到所有规则允许的棋步(通常在开局时会有20-30种,随后会降低到几种).其次,它生成一个棋步树用来

  • python版本五子棋的实现代码

    正文之前 前阵子做了个<人工智能> 的课程作业,然后写了个人工智障...大概就是个可以跟你下五子棋的傻儿子...下面是代码和效果 正文 1. 摘要 机器博弈是人工智能领域的重要分支,它的研究对象多以复杂的棋牌类智力游戏为主,已经得到解决的棋类游戏,几乎全部都应归功于机器博弈近半个世纪的发展.计算机解决问题的优势在于能把不易解析的问题,借助于现代计算机的运算速度优势枚举出所有的合理情形而得解;然而,博弈问题的复杂程度决定了它不能过度依赖机器的计算能力.许多待解决的或已经解决的棋类,其状态空间复杂

  • python实现五子棋小游戏

    本文实例为大家分享了python实现五子棋小游戏的具体代码,供大家参考,具体内容如下 暑假学了十几天python,然后用pygame模块写了一个五子棋的小游戏,代码跟有缘人分享一下. import numpy as np import pygame import sys import traceback import copy from pygame.locals import * pygame.init() pygame.mixer.init() #颜色 background=(201,202

  • python实现井字棋游戏

    本文实例介绍了python实现井字棋游戏的方法,分享给大家,具体内容如下 windows7下python3.4.0编译运行通过.由于采用了cmd调用,所以与Linux不兼容,无法在Linux下运行. 游戏就是井字棋,小键盘上的数字位置对应棋盘位置. #本游戏python3.4.0下编写调试,只能在windows下运行. import random import subprocess import time #定义函数 def draw_board(the_board): subprocess.c

  • python实现简单五子棋游戏

    本文实例为大家分享了python实现简单五子棋游戏的具体代码,供大家参考,具体内容如下 from graphics import * from math import * import numpy as np def ai(): """ AI计算落子位置 """ maxmin(True, DEPTH, -99999999, 99999999) return next_point[0], next_point[1] def maxmin(is_ai

  • python实现五子棋游戏

    本文实例为大家分享了python实现五子棋游戏的具体代码,供大家参考,具体内容如下 话不多说,直接上代码: 全部工程文件,在GitHub:五子棋 效果预览: #!/usr/bin/env python3 #-*- coding:utf-8 -*- import pygame from pygame.locals import * from sys import exit import numpy background_image = 'qipan.png' white_image = 'whit

  • Python实现的井字棋(Tic Tac Toe)游戏示例

    本文实例讲述了Python实现的井字棋(Tic Tac Toe)游戏.分享给大家供大家参考,具体如下: 说明 用python实现了井字棋,整个框架是本人自己构思的,自认为比较满意.另外,90%+的代码也是本人逐字逐句敲的. minimax算法还没完全理解,所以参考了这里的代码,并作了修改. 特点 可以选择人人.人机.机人.机机四种对战模式之一 电脑玩家的AI使用了minimax算法,带apha-beta剪枝 电脑玩家在思考时,时时刻刻都有一个"假想敌".以便使得minimax算法运转起

  • 使用python实现简单五子棋游戏

    用python实现五子棋简单人机模式的练习过程,供大家参考,具体内容如下 第一次写博客,我尽力把它写好. 最近在初学python,今天就用自己的一些粗浅理解,来记录一下这几天的python简单人机五子棋游戏的练习,下面是实现过程的理解(是在cmd中运行的): 主要流程: *重点内容* - 首先是模块及类的划分 - 棋子类和棋盘类的方法 - 对策略类里的功能进行细分,调用棋子类和棋盘类 - 写出判断输赢的方法 - 用main函数进行整个游戏进度的控制 模块及类的划分 类的划分涉及到了面向对象的内容

  • python pygame实现五子棋小游戏

    今天学习了如何使用pygame来制作小游戏,下面是五子棋的代码,我的理解都写在注释里了 import pygame # 导入pygame模块 print(pygame.ver) # 检查pygame的版本,检查pygame有没有导入成功 EMPTY = 0 BLACK = 1 WHITE = 2 # 定义三个常量函数,用来表示白棋,黑棋,以及 空 black_color = [0, 0, 0] # 定义黑色(黑棋用,画棋盘) white_color = [255, 255, 255] # 定义白

  • python实现五子棋小程序

    本文实例为大家分享了python实现五子棋小程序的具体代码,供大家参考,具体内容如下 一.结合书上例子,分三段编写: wuziqi.py #coding:utf-8 from win_notwin import * from show_qipan import * maxx=10 #10行10列 maxy=10 qipan=[[0,0,0,0,1,0,0,2,0,0],[0,1,2,1,1,0,2,0,0,0],[0,0,0,0,1,1,0,2,0,0],[0,0,0,0,2,0,0,1,0,0

随机推荐