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、xlwt操作excel表格详解
Jan 29 Python
常见的在Python中实现单例模式的三种方法
Apr 08 Python
Python语法快速入门指南
Oct 12 Python
Python的string模块中的Template类字符串模板用法
Jun 27 Python
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
Django 前后台的数据传递的方法
Aug 08 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
Sep 11 Python
Ubuntu下使用python读取doc和docx文档的内容方法
May 08 Python
Python Pandas对缺失值的处理方法
Sep 27 Python
win10从零安装配置pytorch全过程图文详解
May 08 Python
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
May 25 Python
Keras多线程机制与flask多线程冲突的解决方案
May 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/04/06 PHP
PHP中文件读、写、删的操作(PHP中对文件和目录操作)
2012/03/06 PHP
php输出xml必须header的解决方法
2014/10/17 PHP
一步一步教你写一个jQuery的插件教程(Plugin)
2009/09/03 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
JQuery与Ajax调用新浪API获取短网址的代码
2014/02/07 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
关于Vue.js 2.0的Vuex 2.0 你需要更新的知识库
2016/11/30 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
Django与Vue语法的冲突问题完美解决方法
2017/12/14 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
Python中property属性实例解析
2018/02/10 Python
Python 函数基础知识汇总
2018/03/09 Python
python如何派生内置不可变类型并修改实例化行为
2018/03/21 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
Python读取excel中的图片完美解决方法
2018/07/27 Python
详解Python的三种可变参数
2019/05/08 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
python实现截取屏幕保存文件,删除N天前截图的例子
2019/08/27 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
selenium与xpath之获取指定位置的元素的实现
2021/01/26 Python
Space NK美国站:英国高端美妆护肤商城
2017/05/22 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
文明风采获奖感言
2014/02/18 职场文书
汽车机修工岗位职责
2014/03/06 职场文书
爱国口号
2014/06/19 职场文书
电教室标语
2014/06/20 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
社区护士演讲稿
2014/08/27 职场文书
Oracle 触发器trigger使用案例
2022/02/24 Oracle
Nginx报错104:Connection reset by peer问题的解决及分析
2022/07/23 Servers