猜拳游戏拓展(含有登录注册,记录分数和次数,数据库使用mysql)





import mysql.connector
import random
conn = mysql.connector.connect(user='root', password='123456',database='xuekundb')
cursor = conn.cursor()
#如果表存在则删除表
#cursor.execute('drop table if exists user_game')
#建表
#cursor.execute('create table user_game(id int primary key auto_increment, user_name varchar(32), password varchar(32), score int,times int)')
def menu():
    print('+-----------------------------------+')
    print('|        欢迎来到猜拳游戏           |')
    print('|-----------------------------------|')
    print('|           1.登录游戏              |')
    print('|-----------------------------------|')
    print('|           2.注册账号              |')
    print('+-----------------------------------+')
    print('\n输入序号依次选择相关操作:\n')

def login_menu():
    print('+-----------------------------------+')
    print('|          1.玩游戏                 |')
    print('|-----------------------------------|')
    print('|          2.查看得分和次数         |')
    print('+-----------------------------------+')
    print('\n输入序号依次选择相关操作:\n')

def login():
    print('欢迎来到游戏登录页面')
    while True:
        username = input('请输入账号:')
        password = input('请输入密码:')
        cursor.execute('select * from user_game where user_name = %s and password = %s ',(username,password))
        result = cursor.fetchall()
        if not result:
            print('账号或者密码错误,请输入正确的账号密码')
            h = input('输入1选择继续输入账号密码,输入2选择返回主界面')
            if(h == '2'):
                break
        else:
            print('登录成功')
            while True:
                login_menu()
                ol = input()
                if (ol == '1'):
                    score,times = guess_game_main()
                    cursor.execute('update  user_game set score = score + %s, times = times + %s where user_name = %s and password = %s ',
                                   (score,times,username, password))
                    conn.commit()
                    h = input('返回游戏页面请输入1,返回主界面请输入2\n')
                    if(h == '2'):
                        break
                elif(ol == '2'):
                    cursor.execute('select * from user_game where user_name = %s and password = %s ',
                                   (username, password))
                    values = cursor.fetchall()
                    print('您玩的总次数为:', values[0][4])
                    print('得分:',values[0][3])
                    h = input('返回游戏页面请输入1,返回主界面请输入2\n')
                    if (h == '2'):
                        break
                else:
                    print('请输入正确的序号')
                    ol = input()
            break


'''猜拳函数'''
def guess_game(player):
    score = 0
    d = {0: '石头', 1: '剪刀', 2: '布'}  # 创建字典
    computer = random.randint(0, 2)#电脑随机产生0-2
    if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0):
        print('电脑出的是%s,玩家出的是%s。**玩家赢啦**' % (d[computer], d[player]))
        score = score + 5
    elif player == computer:
        print('电脑出的是%s,玩家出的是%s,**平局**' % (d[computer], d[player]))
        score = score + 2
    else:
        print('电脑出的是%s,玩家出的是%s,**玩家输了**' % (d[computer], d[player]))
    print('\n')
    return score


def guess_game_main():
    score  = 0
    times = 0
    while True:
        print('猜拳游戏:0代表石头,1代表剪刀,2代表布。e退出游戏')
        player = input('请出拳:0 ,1,2:\n')
        if (player == 'e' or player == '0' or player == '1' or player == '2'):
            if player == 'e':
                break
            player = int(player)
            times = times +1
            score = score + guess_game(player)
        else:
            print('请输入0-2猜拳,或者输入e退出游戏')
            print('\n')
    return score,times

def registered():
    while True:
        username = input('请输入注册账号')
        cursor.execute('select * from user_game where user_name = %s', (username,))
        result = cursor.fetchall()
        if result:
            print('此账号已经存在,请重新输入')
        if not result:
            password = input('请输入密码')
            password2 = input('请确认密码')
            if (password == password2):
                cursor.execute('insert into  user_game(user_name,password,score,times) values(%s,%s,%s,%s)', [username, password,0,0])
                print('注册成功')
                break
            else:
                print('密码和确认密码输入不一致,请重新输入')


while True:
    menu()
    o = input()
    if(o == '1'):
        login()
        conn.commit()
        h = input('返回主页面输入1.退出程序输入2\n')
        if (h == '2'):
            break
    elif(o == '2'):
        registered()
        conn.commit()
        h = input('返回主页面输入1.退出程序输入2\n')
        if(h == '2'):
            break
    else:
        print('请输入正确的序号')

初学python几天,特地写个小程序练手,代码如有问题,还请各位指教

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

行者雪.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值