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入门教程
Feb 08 Python
Python扫描IP段查看指定端口是否开放的方法
Jun 09 Python
python转换字符串为摩尔斯电码的方法
Jul 06 Python
Python 的内置字符串方法小结
Mar 15 Python
Python实现FTP上传文件或文件夹实例(递归)
Jan 16 Python
python使用opencv按一定间隔截取视频帧
Mar 06 Python
python2.7无法使用pip的解决方法(安装easy_install)
Apr 03 Python
django 发送邮件和缓存的实现代码
Jul 18 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 Python
python中提高pip install速度
Feb 14 Python
Cpython解释器中的GIL全局解释器锁
Nov 09 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 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初学者头疼十四条问题大总结
2008/11/12 PHP
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
PHP面向对象精要总结
2014/11/07 PHP
phplot生成图片类用法详解
2015/01/06 PHP
php计算整个mysql数据库大小的方法
2015/06/19 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
Nodejs使用mysql模块之获得更新和删除影响的行数的方法
2014/03/18 NodeJs
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
微信中一些常用的js方法汇总
2015/03/12 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
jquery+ajax实现注册实时验证实例详解
2015/12/08 Javascript
BootStrap制作导航条实例代码
2016/05/06 Javascript
Angularjs中UI Router的使用方法
2016/05/14 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
NodeJs模拟登陆正方教务
2017/04/28 NodeJs
Vue Router中应用中间件的方法
2020/08/06 Javascript
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
解决Spyder中图片显示太小的问题
2018/04/27 Python
如何在Django配置文件里配置session链接
2019/08/06 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
后勤工作职责
2013/12/22 职场文书
党员教师工作决心书
2014/03/13 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
秋季运动会演讲稿
2014/09/16 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
合同纠纷调解书
2015/05/20 职场文书
亮剑观后感600字
2015/06/05 职场文书
单位接收证明格式
2015/06/18 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android