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用字典统计单词或汉字词个数示例
Apr 22 Python
Python的垃圾回收机制深入分析
Jul 16 Python
python中self原理实例分析
Apr 30 Python
Python基于smtplib实现异步发送邮件服务
May 28 Python
Python聚类算法之DBSACN实例分析
Nov 20 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
你应该知道的python列表去重方法
Jan 17 Python
python实现批量图片格式转换
Jun 16 Python
Python Selenium参数配置方法解析
Jan 19 Python
python序列类型种类详解
Feb 26 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
Feb 28 Python
python实现简单的三子棋游戏
Apr 28 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 编写大型网站问题集
2010/05/07 PHP
php快速排序原理与实现方法分析
2016/05/26 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
PHP二维数组去重算法
2016/12/17 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
2017/08/28 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
2019/10/21 PHP
PHP7新增函数
2021/03/09 PHP
网页常用特效代码整理
2006/06/23 Javascript
js身份证验证超强脚本
2008/10/26 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
Vue cli+mui 区域滚动的实例代码
2018/01/25 Javascript
详解react关于事件绑定this的四种方式
2018/03/09 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
python中ConfigParse模块的用法
2014/09/29 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
简单了解python中对象的取反运算符
2019/07/01 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
使用keras实现BiLSTM+CNN+CRF文字标记NER
2020/06/29 Python
详解python爬取弹幕与数据分析
2020/11/14 Python
会计电算化个人求职信范文
2014/01/24 职场文书
《王二小》教学反思
2014/02/27 职场文书
出纳员岗位职责
2014/03/13 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
入党介绍人评语
2014/05/06 职场文书
关于读书的活动方案
2014/08/14 职场文书
党员干部公开承诺书范文
2015/04/27 职场文书
MIME类型中application/xml与text/xml的区别介绍
2022/01/18 HTML / CSS
Centos系统通过Docker安装并搭建MongoDB数据库
2022/04/12 MongoDB