1. 使用面向对象思想开发一个人机对战的猜拳游戏(石头剪刀布)

import random

class Role:
def init(self, name=None, score=0):
self.name = name
self.score = score

def chooseRole(self):roleOptions = ('王铁柱', '牛小花', '李二壮')while True:choice = input('请选择角色:1. 王铁柱 2. 牛小花 3. 李二壮').strip()if choice in '123' and len(choice) == 1:self.name = roleOptions[int(choice) - 1]print('您选择的角色是{0}。'.format(self.name))returnelse:print('输入错误,请重新选择。')def showFist(self):fistOptions = ('剪刀', '石头', '布')while True:yourstake = input('请出拳:1. 剪刀 2. 石头 3. 布').strip()if yourstake in '123' and len(yourstake) == 1:print('{0}出“{1}”'.format(self.name, fistOptions[int(yourstake) - 1]))return fistOptions[int(yourstake) - 1]else:print('输入错误,请重新输入。')def __str__(self):return '角色名称:{}'.format(self.name)

class Computer:
def init(self, name=‘电脑’, score=0):
self.name = name
self.score = score

def showFist(self):rdom = random.choice(['剪刀', '石头', '布'])print('{0}出“{1}”'.format(self.name, rdom))return rdom

class Game:
noWin = 0
role = Role()
computer = Computer()

def startGame(self):print(' 人机猜拳 '.center(100, '-'))self.role.chooseRole()while True:roleFist = self.role.showFist()computerFist = self.computer.showFist()self.judgeWinner(roleFist, computerFist)gameOver = input('是否结束游戏?任意键继续,按“y”退出。').strip()if gameOver.lower() == 'y':breakself.showResult()print('对战结束')def judgeWinner(self, rFist, cFist):fistComp = ('剪刀', '石头', '布')if rFist == cFist:print('平局')self.noWin += 1elif fistComp.index(rFist) + 1 == fistComp.index(cFist) or fistComp.index(rFist) - 2 == fistComp.index(cFist):print('{0}赢'.format(self.computer.name))self.computer.score += 1else:print('{0}赢'.format(self.role.name))self.role.score += 1def showResult(self):print(' {0} VS {1} '.center(100, '-').format(self.role.name, self.computer.name))print('{0}赢 {1} 局。'.format(self.role.name, self.role.score))print('{0}赢 {1} 局。'.format(self.computer.name, self.computer.score))print('平局 {0} 次。'.format(self.noWin))if self.role.score > self.computer.score:print('{0}赢了!'.format(self.role.name))elif self.role.score == self.computer.score:print('双方打平!')else:print('{0}赢了!'.format(self.computer.name))

game = Game()
game.startGame()
详细代码见链接,共同学习,加油,文末有知识点分析

文章所使用的知识点if lese语句:

if  条件1 : print(‘条件为1’)
elif 条件2 :print(‘条件为2’)
elif 条件3:print(‘条件为3’)
else:print(‘除了条件1,2,3外的结果’)

具体代码可以查看https://mp.weixin.qq.com/s/qpf_bunWOlc3X_-59K6SkA
别忘了点个关注哦!

python使用面向对象思想开发一个人机对战的猜拳游戏(石头剪刀布)相关推荐

  1. Python使用面向对象思想开发一个人机对战的猜拳游戏(石头剪刀布)。

    [开发该软件的操作系统]:windows10 [软件开发环境/开发工具]:PyCharm [编程语言]:Python [开发目的]:这是老师布置的作业啦~ 供初学者参考学习 [开发者]:江西农业大学2 ...

  2. 人机对战的猜拳游戏,用户通过输 入(1.剪刀 2.石头 3.布),机器随机生成(1.剪刀 2.石头 3.布),胜者积分, n 局以后通过积分的多少判定胜负。

    看到题目后可以发现这题并不算太难,在思考解题方法之前就可以先把总体的框架写出来了,比如:进行游戏的次数,机器随机生成的范围已经用户所能输入的东西.如图所示: 这个时候我们就可以新建一个类,开始具体的操 ...

  3. python做客户端适合吗_太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端...

    原标题:太简单!只学十分钟,Python菜鸟也能开发一个区块链客户端 作者:Adil Moujahid 编译:kou.Eli 本文转自区块链大本营(ID:blockchai_camp),转载需授权 区 ...

  4. python(pygame)开发一个超简易版消灭病毒

    python(pygame)开发一个超简易版消灭病毒 消灭病毒游戏 以下是游戏代码:每个类都是一个py文件,需要导包 1.主程序代码 2.飞机类 3.子弹类 4.病毒类 消灭病毒游戏 消灭病毒是一个打 ...

  5. 使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关

    上篇"[物联网(IoT)开发]Arduino 入门 Hello World(LED闪烁)"只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断 ...

  6. 【物联网(IoT)开发】使用 Arduino 和 Python在 Bluemix 上开发一个 IoT 应用程序之控制LED灯开关

    上篇"[物联网(IoT)开发]Arduino 入门 Hello World(LED闪烁)"只是通过将一段程序烧录到Arduino开发板上控制LEC闪烁,没有任何连网动作,也就是说断 ...

  7. python 250行代码开发一个贪吃蛇

    python 250行代码开发一个贪吃蛇 1. 前提工作准备 2. 全局变量的定义与包的导入 3. 游戏开始界面初始化 4. 游戏界面的设置 4.1 游戏界面,使用一个Point类进行划分 4.2 预 ...

  8. python实现简单小游戏_用python开发一个有趣的猜数字小游戏(实现简单的GUI界面学习)...

    文章目录 用python开发一个有趣的猜数字小游戏 用于字符串的格式化,通过 {} 和 : 来代替以前的 % 1. python的GUI编程 1.1 pythonGUI常用库对比 Python 提供了 ...

  9. [python] 开发一个跟随角色移动的地图游戏demo

    用python开发一个2D角色游戏的地图Demo 如今很多大学生大学学习了编程语言,想做游戏却迟迟做不出一个游戏雏形来,接下来就和大家谈论下游戏中地图移动的简单原理并用python这一门非常火的语言进 ...

最新文章

  1. 学习计划2016//12/12
  2. 【Python】分享几个用Python给图片添加水印的方法,简单实用
  3. 1127: 第三章:再见,林静!
  4. pixhawk自学笔记之px4程序启动顺序
  5. mysql3308_mysql 多服务器范例
  6. matlab浪漫画图,Matlab技巧11:谁说数学人不懂浪漫——Matlab画隐函数曲面
  7. 关于模电与数电的基础知识
  8. 经济学人精读丨中国的电子商务
  9. init mysql db error_Python mysql curs错误
  10. dede分类名称_dede常用标签分类整理
  11. 更改设置并对计算机自定义,电脑别乱玩 禁用Win8.1自定义设置项
  12. 教你如何做出一份报表:流程分析之报表模板
  13. 计算机应用计术,计算机应用技术.ppt
  14. C语言三个整蛊程序,很强!!
  15. 51单片机实战教程(六 网线测试治具设计)
  16. java 输出大于n的质数_Java 计算并打印第n个质数
  17. SQL Server 2012 唯一约束(定义唯一约束、删除唯一约束)
  18. Python 3.12 目标:还可以更快!
  19. C语言——逆序乘积式
  20. 【C#8.0 and .NET Core 3.0 高级编程学习笔记】

热门文章

  1. 藻红蛋白/牛血清蛋白/β2-微球蛋白修饰二氧化硅微球偶联免疫球蛋白(IgG)的制备
  2. 有选择读取word表格中的数据并写入excel文件中
  3. 等比数列求和python_python等差数列求和公式前 100 项的和实例
  4. flock(锁定文件或解除锁定)
  5. 游戏《纪念碑谷》介绍
  6. 无人机应用实景模型动画录屏-显示模式切换
  7. 苹果默认字体是什么?
  8. 百度抢先翻开春节红包大战B面
  9. matlab plot点线的一些参数设置
  10. SAP连接电脑串口读数(电子称,磅等数据读取)