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 相关文章推荐
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
Feb 24 Python
python实现堆栈与队列的方法
Jan 15 Python
Python读取指定目录下指定后缀文件并保存为docx
Apr 23 Python
python skimage 连通性区域检测方法
Jun 21 Python
python实现两张图片的像素融合
Feb 23 Python
python实现大文件分割与合并
Jul 22 Python
python 实现识别图片上的数字
Jul 30 Python
Python实现生成密码字典的方法示例
Sep 02 Python
Python:type、object、class与内置类型实例
Dec 25 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
Mar 14 Python
浅谈django channels 路由误导
May 28 Python
Python中的socket网络模块介绍
Jul 23 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
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
PHP 引用文件技巧
2010/03/02 PHP
改写ThinkPHP的U方法使其路由下分页正常
2014/07/02 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
2017/05/29 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
javascript 匿名函数的理解(透彻版)
2010/01/28 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
JS匿名函数和匿名自执行函数概念与用法分析
2018/03/16 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
在Django中URL正则表达式匹配的方法
2018/12/20 Python
python调用staf自动化框架的方法
2018/12/26 Python
Django shell调试models输出的SQL语句方法
2019/08/29 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
Django 拼接两个queryset 或是两个不可以相加的对象实例
2020/03/28 Python
python中什么是面向对象
2020/06/11 Python
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
班长自荐书范文
2014/02/11 职场文书
运动会方阵解说词
2014/02/12 职场文书
学校党委干部个人对照检查材料思想汇报
2014/10/09 职场文书
个人查摆剖析材料
2014/10/16 职场文书
2014年底个人工作总结
2015/03/10 职场文书
机修车间主任岗位职责
2015/04/08 职场文书
欠款纠纷起诉状
2015/05/19 职场文书
幼师自荐信范文(2016推荐篇)
2016/01/28 职场文书