python实现猜拳游戏项目


Posted in Python onNovember 30, 2020

本文实例为大家分享了python实现猜拳游戏的具体代码,供大家参考,具体内容如下

项目功能:

1.系统生成随机的石头剪刀布,玩家输入石头剪刀布
2.因为玩家可能会输入shitou st这样的输入,需要格式化成合理输入
3.进行石头剪刀布的游戏,输出游戏结果,假设每次可以玩5局
4.将游戏结果写入到excel中,包括系统出拳,玩家出拳,游戏结果,目前得分
5.游戏有欢迎信息(欢迎来到游戏)和用户交互(游戏剩余次数)
6.如果游戏的得分达到0分,游戏也会结束
7.在开始游戏的时候要求用户输入玩家姓名,会创建于玩家姓名同名的sheet页
8.如果玩家已经存在,则输出欢迎回来,您目前的积分为:xx分
9.如果玩家不存在,则输出欢迎来到游戏,您目前有5个积分
10.当是老玩家,游戏积分为0分,则提示用户充值,充值1元2积分

代码如下:

import openpyxl
import random
class excel:
 def __init__(self,filename,sheetname):#读某个单元格的值
  self.file = openpyxl.load_workbook(filename)
  self.sheet = self.file[sheetname]
  self.name=filename

 def write(self, sheet, data,num):#将数据以列表形式写入
  sheet = self.file[sheet]
  for i in range(1, len(data) + 1):
   sheet.cell(num,i).value = data[i-1]
  self.file.save(self.name)

def formatx(indata):
 if indata=='shitou' or indata=='shi tou' or indata=='st':
  indata = '石头'
 elif indata=='bu' or indata=='b u':
  indata = '布'
 elif indata=='jiandao' or indata=='jd':
  indata='剪刀'
 elif indata=='石头' or indata=='布' or indata=='剪刀':
  pass
 return indata

def getscore(name):
 wb = openpyxl.load_workbook('first.xlsx')
 sheet = wb[name]
 maxrow = sheet.max_row
 maxcol = sheet.max_column
 score = sheet.cell(maxrow, maxcol).value
 if score=='积分':
  score = 5
  print("欢迎来到游戏")
 else:print("欢迎回来游戏")
 return score

def login(name):
 wb = openpyxl.load_workbook('first.xlsx')
 names = wb.sheetnames
 if name not in names:
  wb.create_sheet(name)
  sheet = wb[name]
  sheet.cell(1,1).value='电脑'
  sheet.cell(1, 2).value = '玩家'
  sheet.cell(1, 3).value = '结果'
  sheet.cell(1, 4).value = '积分'
  wb.save('first.xlsx')

if __name__=="__main__":
 name = input('请输入您的名字:')
 login(name)
 score = getscore(name)
 print("积分{}".format(score))
 if score<=0:
  print('请充值:')
  money = int(input('请输入充值金额'))
  score += money*2
 opt = excel('first.xlsx', name)
 for num in range(1,6):
  compute = random.choice(['石头','剪刀','布'])
  player = input('请输入猜拳的内容:')
  player=formatx(player)
  if player==compute:
   result = [compute,player,'平局',score]
   print('电脑出拳:{},玩家出拳:{},游戏结果:{}'.format(compute,player,result[2],score))
   opt.write(name, result,num+1)
  elif (player=='石头' and compute=='剪刀') or (player=='剪刀' and compute=='布') or player=='布' and compute=='石头':
   score+=1
   result = [compute, player, '玩家胜利',score]
   print('电脑出拳:{},玩家出拳:{},游戏结果:{}'.format(compute, player, result[2],score))
   opt.write(name, result,num+1)
  else:
   score-=1
   result = [compute, player, '玩家失败',score]
   print('电脑出拳:{},玩家出拳:{},游戏结果:{}'.format(compute, player, result[2],score))
   opt.write(name, result,num+1)
  if score<=0:
   break
  print('游戏剩余次数:{}'.format(5-num))
 print("游戏结束")

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

Python 相关文章推荐
Python实现动态图解析、合成与倒放
Jan 18 Python
对python中的iter()函数与next()函数详解
Oct 18 Python
利用Django模版生成树状结构实例代码
May 19 Python
Python for循环与getitem的关系详解
Jan 02 Python
python logging 日志的级别调整方式
Feb 21 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
PyCharm Anaconda配置PyQt5开发环境及创建项目的教程详解
Mar 24 Python
Python判断字符串是否为空和null方法实例
Apr 26 Python
什么是python类属性
Jun 10 Python
Django model重写save方法及update踩坑详解
Jul 27 Python
序列化Python对象的方法
Aug 01 Python
python 标准库原理与用法详解之os.path篇
Oct 24 Python
Python解析微信dat文件的方法
Nov 30 #Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 #Python
使用python将微信image下.dat文件解密为.png的方法
Nov 30 #Python
Python 微信公众号文章爬取的示例代码
Nov 30 #Python
python爬虫工具例举说明
Nov 30 #Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
Nov 29 #Python
运行python提示no module named sklearn的解决方法
Nov 29 #Python
You might like
php获取远程文件内容的函数
2015/11/02 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
jquery1.4后 jqDrag 拖动 不可用
2010/02/06 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
随窗体滑动的小插件sticky源码
2013/06/21 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
JQuery获取表格数据示例代码
2014/05/26 Javascript
JavaScript Math.ceil 方法(对数值向上取整)
2015/01/09 Javascript
jquery实现简单文字提示效果
2015/12/02 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
使用localStorage替代cookie做本地存储
2019/09/25 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
Vue中通过vue-router实现命名视图的问题
2020/04/23 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
python实现从web抓取文档的方法
2014/09/26 Python
python中利用await关键字如何等待Future对象完成详解
2017/09/07 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
python3使用print打印带颜色的字符串代码实例
2019/08/22 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
python 经典数字滤波实例
2019/12/16 Python
Python基于Dlib的人脸识别系统的实现
2020/02/26 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
阿拉伯书店:Jamalon
2019/07/24 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
人事部主管岗位职责
2013/12/26 职场文书
家长对孩子评语
2014/01/30 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
vue项目配置sass及引入外部scss文件
2022/04/14 Vue.js
Fluentd搭建日志收集服务
2022/09/23 Servers