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之关于循环的小伎俩
Oct 02 Python
Python中类型关系和继承关系实例详解
May 25 Python
Python在信息学竞赛中的运用及Python的基本用法(详解)
Aug 15 Python
解决安装pycharm后不能执行python脚本的问题
Jan 19 Python
详解python算法之冒泡排序
Mar 05 Python
NumPy 基本切片和索引的具体使用方法
Apr 24 Python
ZABBIX3.2使用python脚本实现监控报表的方法
Jul 02 Python
Django基础知识 web框架的本质详解
Jul 18 Python
详解python 中in 的 用法
Dec 12 Python
tensorflow自定义激活函数实例
Feb 04 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 Python
Sentry的安装、配置、使用教程(Sentry日志手机系统)
Jul 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源码之 ext/mysql扩展部分
2009/07/17 PHP
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
PHP多线程编程之管道通信实例分析
2015/03/07 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
深入认识JavaScript中的函数
2007/01/22 Javascript
javascript中的void运算符语法及使用介绍
2013/03/10 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
js 通用订单代码
2013/12/23 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
基于jQuery日历插件制作日历
2016/03/11 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
原生JS实现的跳一跳小游戏完整实例
2019/01/27 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
Python中常见的数据类型小结
2015/08/29 Python
python操作 hbase 数据的方法
2016/12/18 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
python增加图像对比度的方法
2019/07/12 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
pyinstaller打包成无控制台程序时运行出错(与popen冲突的解决方法)
2020/04/15 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
南威尔士家居商店:Leekes
2016/10/25 全球购物
Lookfantastic法国官网:英国知名美妆购物网站
2017/10/28 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
社团成立邀请函
2014/01/08 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
小班上学期个人总结
2015/02/12 职场文书
2015小学教师德育工作总结
2015/05/12 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
为什么在foreach循环中JAVA集合不能添加或删除元素
2021/06/11 Java/Android
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python