python代码实现猜拳小游戏
作者:江liuer_666 发布时间:2023-10-16 19:00:46
标签:python,猜拳
本文实例为大家分享了python代码实现猜拳小游戏的具体代码,供大家参考,具体内容如下
游戏实现具体功能
原有的用户登录的信息均能保存在txt文件里,注册的信息也能保存在txt里面
格式如下:
便于之后转换成列表字典形式添加注册数据
用户的猜拳记录也能保存在txt中并以如下格式显示
格式如下:
具体Python代码:
#-*- coding=utf8 -*-
# @author:sololi
# date: 2020/10/24
# 文件说明 :
# 123文件存放 用户信息 456 文件存放猜拳结果
import sys
fff= open('123',"r+",encoding="utf8")
shuju=[]
a=[]
b=[]
c=[]
aa={}
username=0
for line in fff.readlines():
line=line.strip('\n')
a= line.split(' ')
i=0
while i<len(a):
b=a[i].split(',')
i+=1
j=0
while j<len(b):
if b==" ":
break
c=b[j].split(':',1)
aa[c[0]]=c[1]
i+=1
j+=1
shuju.append(aa.copy()) #将数据 转换成列表字典形式便于后面登录与注册存放数据(copy是为了防止添加是数据类型不同出错)
fff.close()
print("#######################")
print("欢迎进入猜拳游戏")
print("#######################")
denglu=input("登录输入1,注册输入2") #登录程序
if denglu=="1" :
while True:
username = input("请输入用户名")
jg1= 0
i = 0
while(i<len(shuju)):
if (username == shuju[i]["用户名"]):
print("用户名正确")
jg1=1
break
i+=1
if(jg1!=1):
print("用户名错误")
elif (jg1 == 1):
break
while True:
password = input("请输入密码")
jg2=0
i = 0
while(i<len(shuju)):
if (password == shuju[i]["密码"]):
print("密码正确")
jg2=1
break
i+=1
if(jg2!=1):
print("密码错误")
elif(jg2==1):
break
elif denglu=="2" :
while True:
username = input("请输入注册的用户名")
jg3 = 0
i = 0
while (i < len(shuju)):
if (username == shuju[i]["用户名"]):
print("用户名已经存在")
jg3 = 1
break
i += 1
if(jg3 == 0):
password = input("请输入注册的密码")
print("注册成功")
print("登录成功")
fff = open("123", mode='a+', encoding="utf8")
fff.seek(2)
fff.write("用户名:{},密码:{}\n".format(username, password))
fff.close()
break
else:
print("输入有误,结束登录")
sys.exit(0)
while True: #猜拳游戏程序
xuanzhe = (input("进行游戏1\n显示信息2\n退出游戏3"))
if xuanzhe=="1":
z=0.0
c=0.0
import random
while True:
guess=random.randint(1,3)
num=int(input("选择石头(1)/剪刀(2)/布(3)"))
if (num==1 and guess==2) or (num==2 and guess==3) or (num==3 and guess==1):
print("胜")
c=c+1
elif num ==guess:
print("平")
elif(num==1 and guess==3) or (num==2 and guess==1) or (num==3 and guess==2):
print("负")
else:
print("输入有误")
continue
jieguo=input("是否继续游戏,输入任意退出游戏")
z = z + 1
if jieguo=="是":
continue
else: break
kd=((c/z))
print('总数{:.0f}' '胜率:{:.2%}'.format(z,kd))
f=open("456",mode='a+',encoding="utf8")
f.write("用户名:{},总数:{:.0f},胜率:{:.2%}\n".format(username,z, kd))
f.close()
elif xuanzhe=="2":
f = open("456","r+",encoding="utf8")
res = f.read()
print(res)
f.close()
elif xuanzhe=="3":
break
else:
print("输入有误请重新输入")
print("欢迎再次使用猜拳游戏")
初学者作品,有错大神请指正
来源:https://blog.csdn.net/weixin_51322568/article/details/109367313


猜你喜欢
- go官方仅提供了database package,database package下有两个包sql,sql/driver。这两个包用来定义操
- raw# row方法:(掺杂着原生sql和orm来执行的操作)res = CookBook.objects.raw('select
- 一、思路介绍在已有的单路径迷宫基础上打开一块合适的墙就可以构成2路径的迷宫。打开的墙不能和已有的路径过近。1。从开始和终点开始进行广度优先搜
- 升级pippip版本必须升级到20.0.4版本才能应用;方法一、在pycharm中对pip进行升级;方法二、通过命令进行升级python3.
- Array.prototype._ = function(){var _p = 0;var _v = 0;(function(){ 
- 这个问题对于规模稍微大些的项目而言,显得尤其重要了,数据库中如果有几百个存储过程, 难道还一个个找不成,即使自己很了解业务和系统,时间长了,
- 本文代码来之《数据分析与挖掘实战》,在此基础上补充完善了一下~代码是基于SVM的分类器Python实现,原文章节题目和code关系不大,或者
- 1、最小二乘也可以拟合二次函数我们都知道用最小二乘拟合线性函数没有问题,那么能不能拟合二次函数甚至更高次的函数呢?答案当然是可以的。下面我们
- 本文实例讲述了MySQL 表数据的导入导出操作。分享给大家供大家参考,具体如下:数据导出1. 使用 SELECT ..
- 如下:将html文件下载后,使用BeauifulSoup读取文件,并且使用html.parsertmp_soup.select里面的参数为:
- 前言最近使用go开发后端服务,服务关闭需要保证channel中的数据都被读取完,理由很简单,在收到系统的中断信号后,系统需要做收尾工作,保证
- 一、InnoDB表级锁我们知道,InnoDB是支持行锁,但不是每次都获取行锁,如果不使用索引的,那还是获取的表锁。而且有的时候,我们希望直接
- 版本更新,原来user里的password字段已经变更为authentication_string版本更新 缘故,好多网上的教程都不适用了,
- 一、简介是一个 python 内置包,不需要额外安装即可使用urllib 是 Python 标准库中用于网络请求的库,内置四个模块,分别是u
- 1.写在前面JS要实现下载功能,一般都是这么几个过程:生成下载的URL,动态创建一个A标签,并将其href指向生成的URL,然后触发A标签的
- --新增表字段 ALTER procedure [dbo].[sp_Web_TableFiled_Insert] ( @TableName
- 1.新建site-packages目录,进入到site-packages目录下;2.在site-packages目录下执行pip freez
- 我就废话不多说了,大家还是直接看代码吧~#!/usr/bin/env python# -*- coding: utf-8 -*-import
- canal简介由阿里巴巴开源 github地址:https://github.com/alibaba/canalCanal是阿里巴巴开源的一
- pandas读取、写入csv数据非常方便,但是有时希望通过excel画个简单的图表看一下数据质量、变化趋势并保存,这时候csv格式的数据就略