鱼C论坛

 找回密码
 立即注册
查看: 2433|回复: 8

[技术交流] 帮忙康康,刚学几天写的

[复制链接]
发表于 2020-1-23 19:03:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本来想用def简化一下后面那一坨,结果搞得非常神奇,老是报错(ps:明明是自己懒地去找原因)。还有我想让某些地方输入非数字(浮点数或字符串)不是报错,而是提示格式有误,请重新输入怎么办,顺便帮忙简化下代码
def qaq():
    print ("\n我方生命")
    print (a)
    print ("敌方生命")
    print (b)
def aqa():
    print ("你出了:")
ahha = 2
print ("-------------------------由...制造-------------------------")
while (ahha != 1):
    name = input("你好,请输入你的名字:")
    print ("这是你的名字吗:")
    print (name)
    print ("如果是,请按1;果不是,请按2")
    ahha = 2
    k = int(input("输入:"))
    if k != ahha:
        print ("欢迎你")
        print (name)
        break
    else:
        print ("不要手滑了")
a = 5
b = 5
import time
while True:
    c = int(input("是否开启自动打架开启:1  不开启:2"))
    while True:
        qaq()
        import random
        ss = random.randint(1, 3)        #电脑1为剪刀,2为石头,3为布
        time.sleep(0.5)
        if (a <= 0) or (b <= 0):
            print (" ")
            break
        else:
            if c == 1:
                time.sleep(1.2)
                import random
                di = random.randint(1,3)
                if di == 1:
                    aqa()
                    print ("剪刀")
                    if ss == 3:
                        print ("电脑出了布\n... ...\n你赢了!!!")
                        b -= 1
                    elif ss == 2 :
                        print ("电脑出了石头\n... ...\n你输了了!!!")
                        a -= 1
                    else:
                        print ("电脑出了剪刀\n... ...\n和!!!")
                elif di == 2:
                    aqa()
                    print ("石头")
                    if ss == 1:
                        print ("电脑出了剪刀\n... ...\n你赢了!!!")
                        b -= 1
                    elif ss == 3:
                        print ("电脑出了布\n... ...\n你输了了!!!")
                        a -= 1
                    else:
                        print ("电脑出了石头\n... ...\n和!!!")
                else:
                    aqa()
                    print ("布")
                    if ss == 2:
                        print ("电脑出了石头\n... ...\n你赢了!!!")
                        b -= 1
                    elif ss == 1:
                        print ("电脑出了剪刀\n... ...\n你输了了!!!")
                        a -= 1
                    else:
                        print ("电脑出了布\n... ...\n和!!!")
            else:
                print(" ")
                print (name)
                i = int(input("你想要出什么剪刀:1  石头:2  布;3:"))
                if i == 1:
                    aqa()
                    print ("剪刀")
                    if ss == 3:
                        print ("电脑出了布\n... ...\n你赢了!!!")
                        b -= 1
                    elif ss == 2 :
                        print ("电脑出了石头\n... ...\n你输了了!!!")
                        a -= 1
                    else:
                        print ("电脑出了剪刀\n... ...\n和!!!")
                elif i == 2:
                    aqa()
                    print ("石头")
                    if ss == 1:
                        print ("电脑出了剪刀\n... ...\n你赢了!!!")
                        b -= 1
                    elif ss == 3:
                        print ("电脑出了布\n... ...\n你输了了!!!")
                        a -= 1
                    else:
                        print ("电脑出了石头\n... ...\n和!!!")
                else:
                    aqa()
                    print ("布")
                    if ss == 2:
                        print ("电脑出了石头\n... ...\n你赢了!!!")
                        b -= 1
                    elif ss == 1:
                        print ("电脑出了剪刀\n... ...\n你输了了!!!")
                        a -= 1
                    else:
                        print ("电脑出了布\n... ...\n和!!!")
    if a <= 0:
        print ("\n蔡蔡蔡蔡蔡,\n和电脑玩剪刀石头布都能输,你还能干嘛???\n L L L L L ")
        time.sleep(0.5)
        i = int(input("是男人就再来一把,蔡!!!\n再来一把:1 不来了:2:"))
        if i == 1:
            print ("亏你还有胆子")
            print (name)
            print ("好,就再来一把")
            a = 5
            b = 5
        else:
            print ("LLLLL\n和电脑打输了就算了了,还没有骨气再来一把!!!")
            break
    else:
        print ("\n怎么?赢电脑你还想骄傲,蔡!!!\n L L L L L")
        time.sleep(0.5)
        i = int(input("有胆子再来一把!!!\n再来一把:1 不来了:2:"))
        if i == 1:
            print ("亏你还有胆子")
            print (name)
            print ("好,就再来一把")
            a = 5
            b = 5
        else:
            print ("蔡")
            break
print ("\n不玩了再见!!!")
i = input("按回车键以结束游戏")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

头像被屏蔽
发表于 2020-2-15 10:37:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-2 09:10:05 | 显示全部楼层

enmmmm,这个代码为啥我运行不了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2020-3-2 10:38:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 14:51:28 | 显示全部楼层
840613937 发表于 2020-3-2 10:38
还可以再优化一下,使用random模块,这也是我刚开始学的时候写的

import time
import random

# 1为剪刀,2为石头,3为布
# a是电脑 b是玩家

def qaq(a, b):
    print ("\n我方剩余生命:" + str(b))
    print ("敌方剩余生命" + str(a))
    time.sleep(1.5)
   
def aqa(ai, my):
    count = 0
    for n in (ai, my):
        count += 1
        for i in range(n):
            if i == 1:
                num = '剪刀'
            elif i == 2:
                num = '石头'
            else:
                num = '布'
            
        if count == 1:
            print ('\n----------------------------------')
            print('\n电脑出了:' + num)
        else:
            print('你出了:' + num + '\n')
   
def compare(ai, my, a, b):
   
    a_temp = a
    b_temp = b
    aqa(ai, my)
   
    if ai == my:
        print('平局')
    elif (ai + my) < 4: # 和小于4 且两数不相等 小的输
        if ai < my:
            a -= 1
        else:
            b -= 1
    elif (ai + my) > 4: # 和大于4 且两数不相等 小的输
        if ai < my:
            a -= 1
        else:
            b -= 1
    else: # 和等于4 且两数不相等 那么谁大谁输
        if ai > my:
            a -= 1
        else:
            b -= 1
   
    if a_temp!=a and b_temp==b:
        print('你赢了!')
    elif a_temp==a and b_temp!=b:
        print('你输了!')
   
    qaq(a, b)
    return a, b
   
def pos(a, b):
    if b == 0:
        print ("\n蔡蔡蔡蔡蔡,\n和电脑玩剪刀石头布都能输,你还能干嘛???\n L L L L L ")
    else:
        print ("\n怎么?赢电脑你还想骄傲,蔡!!!\n L L L L L")

    time.sleep(0.5)
    i = input("有胆子再来一把!!!\n再来一把:1 不来了:2 :")
    while True:
        if i == '1':
            print ("亏你还有胆子" + name + "好,就再来一把")
        elif i== '2':
            print ("蔡")
        else:
            i = input('请输入正确的命令!\n再来一把:1 不来了:2 :')
            continue
        break
    return i
   
   


print("-------------------------由...制造-------------------------")
name = input("\n你好,请输入你的名字:")
while True:
    print ("这是你的名字吗:" + name)
    k = input("是请按1,不是请按2:")
    if k == '1':
        print ('\n' + name + " 欢迎你!")
        break
    elif k == '2':
        print ("\n不要手滑了")
        name = input('请输入你的名字:')
    else:
        print('\n请输入正确的命令~\n')
   

while True:
    a = 5
    b = 5
    c = input("\n是否开启自动打架\n开启:1  不开启:2\n")
    if c == '1' or c == '2':
        while True:
            if c == '2':
                while True:
                    put = input('\n请选择你要出的~\n1.剪刀 2.石头 3.布 :')
                    if put == '1' or put == '2' or put == '3':
                        break
                    else:
                        print('\n命令错误!')
            else:
                put = random.randint(1,3)
        
            a, b = compare(random.randint(1,3), int(put), a, b)

            if not (a and  b):
                print ('\n----------------------------------')
                break
        
    elif '2' != c != '1':
        print('\n请输入正确的命令!')
   
    if not (a and  b):
        if pos(a, b) == '2':
            break
   
print ("\n不玩了再见!!!")
input("按任意键退出游戏")

弄好了。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2020-3-4 11:11:33 From FishC Mobile | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2020-3-4 11:13:21 From FishC Mobile | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 19:27:25 | 显示全部楼层
840613937 发表于 2020-3-4 11:13
以后发代码记得在编辑器那里使用代码标签,不然太难看了

好的,上次忘了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 19:28:00 | 显示全部楼层
840613937 发表于 2020-3-4 11:11
额,你去试试random模块的choice()方法,这条命令可以直接简化这个小游戏的大部分代码

好的~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 02:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表