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中使用第三方库xlrd来读取Excel示例
Apr 05 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
Python3中在Anaconda环境下安装basemap包
Oct 21 Python
pandas 空的dataframe 插入列名的示例
Oct 30 Python
pandas 使用均值填充缺失值列的小技巧分享
Jul 04 Python
python实现桌面托盘气泡提示
Jul 29 Python
利用python实现短信和电话提醒功能的例子
Aug 08 Python
解决python 找不到module的问题
Feb 12 Python
新手入门学习python Numpy基础操作
Mar 02 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
May 26 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 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 include的妙用,实现路径加密
2008/07/29 PHP
php表单提交实例讲解
2015/11/12 PHP
让复选框只能选择一项的方法
2013/10/08 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
Jquery简单分页实现方法
2015/07/24 Javascript
Vue.js报错Failed to resolve filter问题的解决方法
2016/05/25 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
Angular4如何自定义首屏的加载动画详解
2017/07/26 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
Python中IPYTHON入门实例
2015/05/11 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
python opencv之SIFT算法示例
2018/02/24 Python
Python单元测试实例详解
2018/05/25 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
python中实现控制小数点位数的方法
2019/01/24 Python
python实现将中文日期转换为数字日期
2020/07/14 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
CSS3 RGBA色彩模式使用实例讲解
2016/04/26 HTML / CSS
美国班级戒指、帽子和礼服、毕业产品、年鉴:Balfour
2018/11/01 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
建筑施工员岗位职责
2013/11/26 职场文书
初中优秀班集体申报材料
2014/05/01 职场文书
家长学校工作方案
2014/05/07 职场文书
井冈山红色之旅心得体会
2014/10/07 职场文书
党员评议自我评价
2015/03/03 职场文书
军训个人总结
2015/03/03 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
用python批量解压带密码的压缩包
2021/05/31 Python
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
redis不能访问本机真实ip地址的解决方案
2021/07/07 Redis
nginx刷新页面出现404解决方案(亲测有效)
2022/03/18 Servers
MySql数据库 查询时间序列间隔
2022/05/11 MySQL