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 相关文章推荐
简介Django框架中可使用的各类缓存
Jul 23 Python
Python判断文件或文件夹是否存在的三种方法
Jul 27 Python
详解python读取image
Apr 03 Python
python pandas模块基础学习详解
Jul 03 Python
Flask框架学习笔记之消息提示与异常处理操作详解
Aug 15 Python
python pillow模块使用方法详解
Aug 30 Python
python 公共方法汇总解析
Sep 16 Python
python自动下载图片的方法示例
Mar 25 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
Apr 27 Python
Python getattr()函数使用方法代码实例
Aug 10 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 Python
pytorch 权重weight 与 梯度grad 可视化操作
Jun 05 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和C#的yield迭代器实现方法对比分析
2019/07/17 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
JS下拉缓冲菜单示例代码
2013/08/30 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
详解JavaScript中的forEach()方法的使用
2015/06/08 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
Bootstrap布局方式详解
2016/05/27 Javascript
plupload+artdialog实现多平台上传文件
2016/07/19 Javascript
基于JavaScript实现百度搜索框效果
2020/06/28 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
详解如何在vscode里面调试js和node.js的方法步骤
2018/12/24 Javascript
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
django基础学习之send_mail功能
2019/08/07 Python
django中瀑布流写法实例代码
2019/10/14 Python
Pycharm如何自动生成头文件注释
2020/11/14 Python
python中的插入排序的简单用法
2021/01/19 Python
CSS3中的5个有趣的新技术
2009/04/02 HTML / CSS
Spanx塑身衣官网:美国知名内衣品牌
2017/01/11 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
毕业生自荐信格式
2014/03/07 职场文书
项目施工员岗位职责
2014/03/09 职场文书
公司年会策划方案
2014/05/17 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
2014年大学教师工作总结
2014/12/02 职场文书
2016年寒假社会实践活动总结
2015/03/27 职场文书
2015年房地产个人工作总结
2015/05/26 职场文书
python 利用 PIL 将数组值转成图片的实现
2021/04/12 Python
js之ajax文件上传
2021/05/13 Javascript
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python