
python编写双人游戏
发布日期:2023-05-26 13:15:57
浏览次数:1
分类:技术文章
本文共 2068 字,大约阅读时间需要 6 分钟。
小编给大家准备了一个简单的双人游戏的示例代码,这个游戏叫做“石头剪刀布”。
游戏规则:
1. 玩家1和玩家2轮流出拳,可以选择石头、剪刀或布。
2. 石头胜剪刀,剪刀胜布,布胜石头。
3. 每轮游戏结束后,显示双方出拳和胜负结果。
4. 游戏结束后,显示双方的总胜利次数。
下面是代码实现:
import random# 定义游戏规则rules = {'rock': 'scissors', 'scissors': 'paper', 'paper': 'rock'}# 定义玩家类class Player: def __init__(self, name): self.name = name self.score = 0 def choose(self): # 玩家出拳 choice = input(f"{self.name}, please choose rock, scissors or paper: ") while choice not in rules: choice = input(f"{self.name}, please choose rock, scissors or paper: ") return choice def win(self): # 胜利时分数加1 self.score += 1 print(f"{self.name} wins!") def lose(self): print(f"{self.name} loses!") def draw(self): print("Draw!")# 定义游戏类class Game: def __init__(self): self.player1 = Player("Player 1") self.player2 = Player("Player 2") def play(self): # 游戏开始 print("Game start!") while True: # 玩家1出拳 p1_choice = self.player1.choose() # 玩家2出拳 p2_choice = self.player2.choose() # 判断胜负 if rules[p1_choice] == p2_choice: self.player1.win() self.player2.lose() elif rules[p2_choice] == p1_choice: self.player2.win() self.player1.lose() else: self.player1.draw() self.player2.draw() # 显示当前得分 print(f"Current score: {self.player1.name} {self.player1.score} : {self.player2.score} {self.player2.name}") # 判断是否结束游戏 if self.player1.score == 3 or self.player2.score == 3: break # 游戏结束 print("Game over!") if self.player1.score > self.player2.score: print(f"{self.player1.name} wins!") elif self.player2.score > self.player1.score: print(f"{self.player2.name} wins!") else: print("Draw!")# 开始游戏game = Game()game.play()
运行代码后,你可以看到游戏开始,然后玩家1和玩家2轮流出拳,直到有一方获得3次胜利为止,最后显示胜利者。
最后,希望大家多多支持!
注:转载请注明出处
转载地址:https://blog.csdn.net/m0_53697837/article/details/130471852 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2023年06月10日 12时03分45秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
最新文章
登录linux后台工具,linux后台进程管理工具-supervisor
2019-12-16 13:07:49
linux删除zlib无法远程,linux zlib默认装在哪里
2019-12-16 13:07:49
linux停止mysql后又自己启动,Linux上 mysql启动/停止/重启/开机启动/开机禁止启动...
2019-12-16 13:07:49
从qspi启动linux时间,Zynq-Linux移植学习笔记(二十三)——QSPI速度配置
2019-12-16 13:07:49
linux 管道非阻塞,在Linux中管道上的非阻塞读取
2019-12-16 13:07:50
C语言随机字母生成,C++ 随机数字以及随机数字加字母生成的案例
2019-12-16 13:07:50
linux关机告诉用户,在Linux服务器关机前向用户显示一条自定义消息
2019-12-16 13:07:47
linux文件每行长度,linux – 根据第一列/行中的字符长度对文件进行排序
2019-12-16 13:07:48
linux使用世界时间,linux世界里的时间
2019-12-16 13:07:48
linux分区通俗讲解,linux硬盘分区基础及设备号的解释
2019-12-16 13:07:48
linux nat 端口,linux – iptables nat只是端口25?
2019-12-16 13:07:48
linux查询重复数据库,Linux如何使用locate命令查找数据搜索数据库
2019-12-16 13:07:48
linux高性能网络编程,Linux高性能网络编程的介绍
2019-12-16 13:07:49
oracle 跑旧的文件,移动datafile以后,旧的datafile是否还被Oracle使用
2019-12-16 13:07:46
oracle分页的使用,oracle中分页的实现方式.rownum的使用
2019-12-16 13:07:46
oracle hot patch david,Oracle EBS使用adpatch工具打patch过程(hotpatch mode)
2019-12-16 13:07:46
如何在空硬盘Linux系统,Linux系统如何新增一块硬盘
2019-12-16 13:07:46
Linux系统的快照是什么,linux – 文件系统快照与简单复制文件有何不同?
2019-12-16 13:07:47
debian linux忘记密码,debian ubuntu linux 忘记root密码的重置方法
2019-12-16 13:07:47
linux内核路由反向检查,Linux非对称路由
2019-12-16 13:07:47