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类继承用法实例分析
Oct 10 Python
python使用自定义user-agent抓取网页的方法
Apr 15 Python
Python中内建函数的简单用法说明
May 05 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
Feb 06 Python
Python操作Sql Server 2008数据库的方法详解
May 17 Python
利用Python读取txt文档的方法讲解
Jun 23 Python
python 列表递归求和、计数、求最大元素的实例
Nov 28 Python
python机器学习包mlxtend的安装和配置详解
Aug 21 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
Jul 18 Python
python中threading和queue库实现多线程编程
Feb 06 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
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
JpGraph php柱状图使用介绍
2011/08/23 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
CodeIgniter与PHP5.6的兼容问题
2015/07/16 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
原创javascript小游戏实现代码
2010/08/19 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
js左侧三级菜单导航实例代码
2013/09/13 Javascript
JS格式化数字保留两位小数点示例代码
2013/10/15 Javascript
js与jQuery 获取父窗、子窗的iframe
2013/12/20 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
2014/01/24 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
Bootstrap表单布局样式代码
2016/05/31 Javascript
javascript实现抽奖程序的简单实例
2016/06/07 Javascript
使用Script元素发送JSONP请求的方法
2016/06/12 Javascript
js 定义对象数组(结合)多维数组方法
2016/07/27 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
python实现排序算法
2014/02/14 Python
python实现合并两个数组的方法
2015/05/16 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
利用python开发app实战的方法
2019/07/09 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
Django celery异步任务实现代码示例
2020/11/26 Python
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
伊利莎白雅顿官网:Elizabeth Arden
2016/10/10 全球购物
Gweniss格温妮丝女包官网:英国纯手工制造潮流包包品牌
2018/02/07 全球购物
企业管理部经理岗位职责
2013/12/24 职场文书
模具专业自荐信
2014/05/29 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
商场促销活动策划方案
2014/08/18 职场文书
街道社区活动报告
2015/02/05 职场文书
大学生奶茶店创业计划书
2019/06/25 职场文书