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("欢迎再次使用猜拳游戏")

初心者向けです、訂正してください

おすすめ

転載: blog.csdn.net/weixin_51322568/article/details/109367313