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数独游戏
Mar 30 Python
快速解决pandas.read_csv()乱码的问题
Jun 15 Python
Python实现端口检测的方法
Jul 24 Python
python使用tornado实现简单爬虫
Jul 28 Python
python实现屏保计时器的示例代码
Aug 08 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
详解Python连接MySQL数据库的多种方式
Apr 16 Python
详解python调用cmd命令三种方法
Jul 08 Python
python实现机器人卡牌
Oct 06 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
Feb 26 Python
pymysql 插入数据 转义处理方式
Mar 02 Python
Python Numpy库的超详细教程
Apr 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
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
一个php导出oracle库的php代码
2009/04/20 PHP
使用PHP下载CSS文件中的图片的代码
2013/09/24 PHP
php数组添加元素方法小结
2014/12/20 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
深入理解PHP类的自动载入机制
2016/09/16 PHP
php 多文件上传的实现实例
2016/10/23 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
2017/07/27 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
Javascript - HTML的request类
2006/07/15 Javascript
在JavaScript中处理字符串之link()方法的使用
2015/06/08 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
浅析location.href跨窗口调用函数
2016/11/22 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
django rest framework vue 实现用户登录详解
2019/07/29 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
python实现扫雷小游戏
2020/04/24 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
Structs界面控制层技术
2013/10/11 面试题
实习护士自我鉴定
2013/10/13 职场文书
护士求职自荐信范文
2015/03/04 职场文书
优秀班干部主要事迹材料
2015/11/04 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
关于Numpy之repeat、tile的用法总结
2021/06/02 Python
SpringBoot整合Minio文件存储
2022/04/03 Java/Android
字节飞书面试promise.all实现示例
2022/06/16 Javascript