【python练习题3】英雄联盟英雄购买界面+数字炸弹游戏

LOL英雄购买界面

客户需求:

        使用控制台,购买英雄联盟的英雄和装备的界面,要求有一个登录界面,有用户登录和用户注册以及退出三种功能,系统中已有一个用户(用户名:1用户密码:111111)。

        注册需要检测账号长度不为空,密码长度不得大于6,第二次输入密码进行密码正确检测,最后整合成字典加入到列表中存储起来作为一个新用户,并作出相关提示。

        登录时判断是否是已经有的用户,并提供商品信息,依次根据提示输入商品信息,选择支付方式,提示需要支付人民币和剩余商品数量

 

users = [{"username":1,"password":111111}]
print("\t\t英雄联盟商城登录界面")
print(
    '''
        英雄联盟商城登录界面

~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~

         1. 用户登录

         2. 新用户注册

         3. 退出系统

~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
'''
)
choice = int(input("请输入您的操作数:"))
if(choice == 1):
    print("***********欢迎进入到用户登录界面*************")
    username = int(input("请输出用户名称:"))
    password = int(input("请输入用户密码:"))
    for i in users:
        if(i["username"]==username and i["password"] == password ):
            print("恭喜你,{}登陆成功!".format(username)+'''
~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
                            英雄商城英雄列表
                         
编号  姓名     昵称    价格   折扣  库存  描述

1     纳尔   迷失之牙  3500   9.5   100  丛林不会原谅盲目与无知

2     锐雯   放逐之刃  4000   9.5   100  她是残忍高效的战士  

3     薇恩   暗夜猎手  3500   9.56  100  这个世界不想人们想象的那么美好

4     扎克   生化魔人  3000   9.8   100  即使你没有脊柱,你也必须站起来

5     杰斯  未来守护者 2500   6.5   100  武装着睿智与魅力,你的选择没有错

~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~
''')
            a = int(input("温馨提示:请输入您的选项"))
            piece = int(input("请输入商品价格:"))
            num = int(input("请输入购买数量:"))
            discount = float(input("请输入商品折扣折扣:"))
            payways = str(input("请输入您的支付方式(***支付宝****vx****银行卡***):"))
            if payways == "支付宝":
                print("您选择的支付方式为支付宝,您要支付的金额为:{}".format(num*piece*discount/10))
                print("商品{}剩余{}个".format(a,100-num))
            elif payways == "vx":
                print("您选择的支付方式为vx,您要支付的金额为:{}".format(num*piece*discount/10))
                print("商品{}剩余{}个".format(a,100-num))
            elif payways == "银行卡":
                print("您选择的支付方式为银行卡,您要支付的金额为:{}".format(num*piece*discount/10))
                print("商品{}剩余{}个".format(a,100-num))
        else:
            print("对不起,登陆失败,请重新登录!")
elif choice == 2:
    print("*************欢迎进入到用户登录界面************")
    username = input("请输入注册用户名:")
    password = input("请输入注册密码:")
    password_config = input("请再次输入密码:")
    if username == None or len(username)==0:
        print("用户名为空")
    flag = False
    for u in users:
        if u["username"] == username:
            print("对不起,用户已存在")
            flag = True
            break
        if flag:
            continue
        if len(password)<6:
            print("密码长度要大于6")
            continue
        if password !=password_config:
            print("密码不一致,请重新输入")
            continue
    user = {"username":username,"password":password}
    users.append(user)
    print("用户注册成功,请登录")
    print()
else:
    print("退出系统")

1、需求可以用try{}expect在ifelse中进行替换。

2、新用户注册完后就会结束,不会跳回原界面再次进行选择,无法正常使用,登录界面登录一次后买完一次后就结束了,不能再次使用了,以后会再次修改。

数字炸弹游戏

游戏大概:有三种困难程度【困难】【普通】【简单】

【困难】:每次玩家进行一次后电脑进行一次,减小这个数次随机的范围

【普通】:每次玩家进行完全部后才轮到电脑进行。

【简单】:这级别是一个搞怪的,直接让通过。

我们每次成功避开算己方赢一分,最后踩中炸弹对方加三分。

代码:简单的使用while函数进行连续的玩耍,每次使用ifelse多分枝或者嵌套进行多情况的处理。

import random
import time

print("[数字炸弹游戏]")
print('''
———————————————————————————————————————————————
[游戏规则:1-100的炸弹编号中,其中一个编号是引爆编号。
玩家和电脑每次随机选择一个编号,如果有人引爆了炸弹则游
戏结束。如果没有人引爆炸弹,那么编号范围会根据玩家和电
脑的选择而不断缩小直至炸弹引爆。]
———————————————————————————————————————————————
''')

player = 0
computer = 0
while True:
    print()
    print("[游戏开始]【玩家得分:{}】【电脑得分:{}】".format(player,computer))
    D = input("[请选择困难程度]【a.困难,b.普通,c.简单】:")
    if D == "a":
        print("您选择的困难程度为:[困难]")
        boom = random.randint(1,100)
        a = 0
        b = 100
        while True:
            print("*"*50)
            n = int(input("请输入您所猜的炸弹数字:"))
            if n<=a or n>=b:
                print("输入范围不正确!请重新输入")
                continue
            else:
                time.sleep(0.5)#不清楚干啥的
                if(boom != n):
                    if(a<n<boom):
                        a = n
                        print("当前可输入范围为{}~{}".format(a,b))
                        player += 1
                    if(boom<n<b):
                        b = n
                        print("当前可输入范围为{}~{}".format(a,b))
                        player +=1
                else:
                    print("Boooooom!!!")
                    print("玩家引爆了炸弹")
                    computer += 3
                    break
            time.sleep(1)
            print("*"*50)
            m = random.randint(a+1,b-1)
            print("[电脑]【输入了一个炸弹编号】:{}".format(m))
            time.sleep(0.5)
            if m != boom:
                if a<m<boom:
                    a = m
                    print("当前可输入范围:{}~{}".format(a,b))
                    computer += 1
                elif boom<m<b:
                    b = m
                    print("当前可输入范围:{}~{}".format(a,b))
                    computer += 1
            else:
                print("Boooooom!!!")
                print("电脑引爆了炸弹")
                player  += 3
                break
    elif D == "b":
        print("你选择是困难程度是:[普通]")
        boom = random.randint(1,100)
        a = 0
        b = 100
        while True:
            print('-' * 30)
            N = int(input('[玩家][请输入一个炸弹编号]:'))
            if N <= a or N >= b:
                print('[编号输入范围错误]')
                continue
            else:
                time.sleep(0.5)
                if N != boom:
                    if a < N < boom:
                        a = N
                        print(f'当前可输入的范围:[{a}]-[{b}]')
                    elif boom < N < b:
                        b = N
                        print(f'当前可输入的范围:[{a}]-[{b}]')
                else:
                    print('[BOOOOM!!]')
                    print('[你引爆了炸弹][电脑获胜]')
                    computer += 1
                    break

            time.sleep(1)
            print('-' * 30)
            M = random.randint(a + 1, b - 1)
            if M == boom:
                M = random.randint(a + 1, b - 1)
            print(f'[电脑][输入了一个炸弹编号]:{M}')
            time.sleep(0.5)
            if M != boom:
                if a < M < boom:
                    a = M
                    print(f'当前可输入的范围:[{a}]-[{b}]')
                elif boom < M < b:
                    b = M
                    print(f'当前可输入的范围:[{a}]-[{b}]')
            else:
                print('[BOOOOM!!]')
                print('[电脑引爆了炸弹][玩家获胜]')
                player += 1
                break
    elif D == "c":
        print("恭喜你通关!")
        print("不会真的有人选这个吧!")

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

K-Pioneer

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

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

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

打赏作者

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

抵扣说明:

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

余额充值