Python 三局两胜小游戏

1. 明确项目目标

今天且让我扮演一下产品经理的角色。我们此次要实现的需求是:人机PK小游戏。具体效果请参照下面的示意动图。

请添加图片描述

简单来说,这个游戏中,会随机生成玩家和敌人的属性,同时互相攻击,直至一方血量小于零。

另外,这样的战斗会持续三局,采取三局两胜制,最后输出战斗结果,公布获胜方。

请添加图片描述

2. 分析过程,拆解项目

请添加图片描述

一个人机PK游戏最基础的元素是什么,我们可以拿最经典的拳皇游戏来脑补一下。

请添加图片描述

3. 逐步执行 代码实现

条件判断:

请添加图片描述

if 判断条件

请添加图片描述

版本1:

import time,random

#存放玩家赢的局数,敌人赢的局数
player_victory = 0
enemy_victory = 0

for i in range(1,4):
    time.sleep(2)  # 让局与局之间有较明显的有时间间隔
    print(' \n——————现在是第'+str(i)+'局——————')  # 作为局的标记
 
    player_life = random.randint(100,150)
    player_attack = random.randint(30,50)
    enemy_life = random.randint(100,150)
    enemy_attack = random.randint
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,制作井字棋游戏程序可以分为以下几个步骤: 1. 定义游戏棋盘:使用列表或二维数组表示井字棋棋盘,初始时所有位置为空。 2. 定义游戏规则:判断游戏是否结束(利或平),以及每一步落子是否合法。 3. 定义游戏循环:循环执行游戏步骤,直到游戏结束。 4. 实现游戏步骤:根据玩家输入的坐标,在棋盘上落子,并判断游戏是否结束。 5. 实现利判断:判断落子后是否出现连成三个的情况,来判断游戏是否结束,以及哪一方获。 6. 实现平判断:当棋盘所有位置都落有棋子时,如果没有出现连成三个的情况,那么判定为平。 以下是一个简单的井字棋游戏程序,您可以参考一下: ```python def print_board(board): print(" 0 1 2") for i in range(3): print(i, end=" ") for j in range(3): print(board[i][j], end=" ") print() def check_win(board): # 横向连成三个 for i in range(3): if board[i][0] == board[i][1] == board[i][2] and board[i][0] != "-": return board[i][0] # 纵向连成三个 for j in range(3): if board[0][j] == board[1][j] == board[2][j] and board[0][j] != "-": return board[0][j] # 对角线连成三个 if board[0][0] == board[1][1] == board[2][2] and board[0][0] != "-": return board[0][0] if board[0][2] == board[1][1] == board[2][0] and board[0][2] != "-": return board[0][2] # 没有连成三个,判断平 for i in range(3): for j in range(3): if board[i][j] == "-": return None return "tie" def main(): board = [["-" for j in range(3)] for i in range(3)] print_board(board) turn = "X" while True: print("轮到 %s 落子" % turn) row = int(input("请输入行号(0-2): ")) col = int(input("请输入列号(0-2): ")) if board[row][col] != "-": print("该位置已经有棋子,请重新输入") continue board[row][col] = turn print_board(board) winner = check_win(board) if winner: print("%s 获!" % winner) break if turn == "X": turn = "O" else: turn = "X" print("游戏结束") # 运行游戏 win_count = {"X": 0, "O": 0} for i in range(3): print("第 %d 开始" % (i+1)) main() winner = input("是否有者?(X/O/tie) ") win_count[winner] += 1 if win_count["X"] == 2 or win_count["O"] == 2: print("比赛结束") break ``` 这个程序实现了三的要求,每游戏结束后会询问是否有者,并记录利次数,当某一方利两时,比赛结束。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小脆筒style

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值