|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我对小甲鱼在零基础入门学习python课上设计的猜数字小游戏进行了一点点改进,改进如下:
print("""用Python设计的第一个游戏改进后的版本""")
import time
import random
counts = 1
temps = input("要开始游戏吗?")
guesss = str(temps)
if guesss == "要":
answer = random.randint(1,100)
elif guesss == "我要玩加强版":
print("好的")
answer = random.randint(1,1000)
else :
print("这么菜还是玩普通版吧")
answer = random.randint(1,100)
temp = input("不妨猜一下我现在心里想的是那个数字吧:")
guess = int(temp)
while counts > 0:
if guess == answer:
print("呀,还真被你猜中了呢。")
print("你用了"+str(counts)+"次猜出这个数字")
if counts == 1:
print("一次就猜中了!!!")
print("达成成就:第一次的经历")
else:
print("哼,猜中了也没奖励~")
temps = input("还要玩吗")
guesss = str(temps)
if guesss == "要":
answer = random.randint(1,100)
counts = 1
temp = input("不妨猜一下我现在心里想的是那个数字吧:")
guess = int(temp)
continue
elif guesss == "我要玩加强版":
answer = random.randint(1,1000)
counts = 1
temp = input("不妨猜一下我现在心里想的是那个数字吧:")
guess = int(temp)
continue
elif guesss == "不要":
print("好吧")
break
else:
if guess < answer:
print("小啦~")
if counts == 5:
print("猜了五次还没猜出来,没什么默契呢。")
elif counts == 10:
print("猜了十次还没猜出来,没意思。")
print("不想玩了")
temps = input("要重玩吗")
guesss = str(temps)
if guesss == "要":
answer = random.randint(1,100)
counts = 1
temp = input("不妨猜一下我现在心里想的是那个数字吧:")
guess = int(temp)
continue
elif guesss == "我要玩加强版":
answer = random.randint(1,1000)
counts = 1
temp = input("不妨猜一下我现在心里想的是那个数字吧:")
guess = int(temp)
continue
else :
print("这么菜还是别玩了")
break
elif guess == 789456123:
print(answer)
counts = counts -1
else:
print("大了~")
if counts == 5:
print("猜了五次还没猜出来,没什么默契呢。")
elif counts == 10:
print("猜了十次还没猜出来,没意思。")
print("不想玩了")
temps = input("要重玩吗")
guesss = str(temps)
if guesss == "要":
answer = random.randint(1,100)
counts = 1
temp = input("不妨猜一下我现在心里想的是那个数字吧:")
guess = int(temp)
continue
elif guesss == "我要玩加强版":
answer = random.randint(1,1000)
counts = 1
temp = input("不妨猜一下我现在心里想的是那个数字吧:")
guess = int(temp)
continue
else:
print("这么菜还是别玩了")
break
temp = input("猜一猜我现在心里想的是那个数字吧:")
guess = int(temp)
counts=counts + 1
print("游戏结束,我不玩了^_^")
print("程序即将关闭")
time.sleep(5)
本人是纯粹的电脑新手,所以代码可能不是很简洁,不过我的问题不是怎么让它更简洁(当然如果愿意帮我改进那简直太好了。),而是我发现了这样一个问题:
temp = input("不妨猜一下我现在心里想的是那个数字吧:")
guess = int(temp)
此处如果输入的不是一个数字的话,就会提示Value Error,
作为一个为玩家着想的设计者,我希望这里如果玩家没输入数字也不会报错,而是提示玩家应该输入一个数字。
但遗憾的是我不清楚怎么处理这个问题(我啥也不会)
有人可以帮助我吗?
本帖最后由 Amayakite 于 2021-12-31 21:11 编辑
捕获异常就可以解决,Python是弱类型语言...如果是初学者个人建议先学其他 例如C++、Java、C#之类的强类型语言打下基础...
大概流程如下,应该比较好看懂吧..
- import random
- print("开始游戏吧")
- minNumber=1
- maxNumber=100
- errCount=0
- userInput = input("是否要开始游戏(Y/N):").lower()
- errMessage=""
- winCount=0
- while userInput=='y':
- print("猜数字开始")
- randomInt = random.randint(minNumber,maxNumber)
- print(
- f"悄悄的告诉你,这个数值在{randomInt-random.randint(1,10)}到{randomInt+random.randint(1,10)}之间\n开始输入吧~")
- userInput=input("请输入数值:")
- try:
- userInput=int(userInput)
- if randomInt==userInput:
- winCount+=1
- print(f"恭喜!回答正确,当前已经回答正确{winCount}次")
- else:
- print("回答错误")
- errCount+=1
- print(f"正确答案是{randomInt},当前已经回答错误{errCount}次")
- if(errCount>=5) :
- print("错误次数打到了五次,游戏退出")
- break;
- userInput = input("是否要继续游戏(Y/N):").lower()
- except:
- print("请输入正确的值")
- print("请重新游玩")
- userInput="y"
-
-
- print(f"游戏结束,本次游玩胜利{winCount}次,失败{errCount}次")
复制代码
|
|