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 相关文章推荐
tensorflow 使用flags定义命令行参数的方法
Apr 23 Python
Python 3.8新特征之asyncio REPL
May 28 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
Tensorflow 实现释放内存
Feb 03 Python
Python socket连接中的粘包、精确传输问题实例分析
Mar 24 Python
用 Python 制作地球仪的方法
Apr 24 Python
Python 在局部变量域中执行代码
Aug 07 Python
python 实现压缩和解压缩的示例
Sep 22 Python
python 元组和列表的区别
Dec 30 Python
关于探究python中sys.argv时遇到的问题详解
Feb 23 Python
基于Python实现nc批量转tif格式
Aug 14 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
《被神捡到的男人》动画化计划进行中!
2020/03/06 日漫
php print EOF实现方法
2009/05/21 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
PHP计算2点经纬度之间的距离代码
2013/08/12 PHP
PHP变量赋值、代入给JavaScript中的变量
2015/06/29 PHP
php实现Session存储到Redis
2015/11/11 PHP
PHP如何根据文件头检测文件类型实例代码
2018/10/14 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
jquery ajax 登录验证实现代码
2009/09/23 Javascript
Jquery中dialog属性小记
2010/09/03 Javascript
修改好的jquery滚动字幕效果实现代码
2011/06/22 Javascript
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
微信小程序之GET请求的实例详解
2017/09/29 Javascript
jquery中有哪些api jQuery主要API
2017/11/20 jQuery
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
[39:11]DOTA2上海特级锦标赛C组资格赛#2 LGD VS Newbee第二局
2016/02/28 DOTA
Python Grid使用和布局详解
2018/06/30 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
python高级特性简介
2020/08/13 Python
python RSA加密的示例
2020/12/09 Python
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
乌克兰在线电子产品商店:MTA
2019/11/14 全球购物
授权委托书怎么写
2014/09/25 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
2015年技术工作总结范文
2015/04/20 职场文书
解除合同协议书范本
2016/03/21 职场文书
Pytorch中expand()的使用(扩展某个维度)
2022/07/15 Python