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实现探测socket和web服务示例
Mar 28 Python
Python 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
利用Python获取赶集网招聘信息前篇
Apr 18 Python
Python编程实现输入某年某月某日计算出这一天是该年第几天的方法
Apr 18 Python
python将ansible配置转为json格式实例代码
May 15 Python
python使用super()出现错误解决办法
Aug 14 Python
python实现多线程行情抓取工具的方法
Feb 28 Python
python删除文本中行数标签的方法
May 31 Python
python生成lmdb格式的文件实例
Nov 08 Python
详解用Python实现自动化监控远程服务器
May 18 Python
Python Gitlab Api 使用方法
Aug 28 Python
python实现高斯(Gauss)迭代法的例子
Nov 20 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转成EXE文件
2006/10/09 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
Javascript 写的简单进度条控件
2008/01/22 Javascript
JS 实现双色表格实现代码
2009/11/24 Javascript
url地址自动加#号问题说明
2010/08/21 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
实现微信小程序的wxml文件和wxss文件在webstrom的支持
2017/06/12 Javascript
关于jQuery.ajax()的jsonp碰上post详解
2017/07/02 jQuery
vue router导航守卫(router.beforeEach())的使用详解
2019/04/19 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
Python 实现淘宝秒杀的示例代码
2018/01/02 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
Python数据持久化shelve模块用法分析
2018/06/29 Python
python使用udp实现聊天器功能
2018/12/10 Python
对Python 除法负数取商的取整方式详解
2018/12/12 Python
详解用python写一个抽奖程序
2019/05/10 Python
Python 异常的捕获、异常的传递与主动抛出异常操作示例
2019/09/23 Python
如何利用Python 进行边缘检测
2020/10/14 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
意大利在线高尔夫商店:Online Golf
2021/03/09 全球购物
幼儿园教师国培感言
2014/02/02 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
村当支部个人对照检查材料思想汇报
2014/10/06 职场文书
少年犯观后感
2015/06/11 职场文书
增值税发票丢失证明
2015/06/19 职场文书
浅谈哪个Python库才最适合做数据可视化
2021/06/28 Python