|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- import random
- def getNumber():
- number = list('0123456789')
- random.shuffle(number)
- return number[:4]
- def check(myNumber, number):
- A = 0
- B = 0
- for i in myNumber:
- if i in number:
- if myNumber.index(i) == number.index(i):
- A += 1
- else:
- B += 1
- return str(A)+'A'+str(B)+'B'
- def showGameRule():
- print('''游戏规则(略)''')
- def game():
- showGameRule()
- number = getNumber()
- print(number)
- gameOver = False
- count = 0
- while not gameOver:
- myNumber = input('请输入四个不同的数字:')
- result = check(myNumber, number)
- count += 1
- print(f'第{count}次:{result}')
- if result == '4A0B':
- print('你已经猜到了正确的结果。')
- quitOrNot = input('是否继续?继续请按Y,其他键退出')
- if quitOrNot not in ['Y','y']:
- print('不玩了。退出游戏。')
- gameOver = True
- else:
- print('再玩一次。')
- game()
- if __name__ == '__main__':
- game()
复制代码
编了一段小代码。简单说问题是:
1、第一次猜对数字,直接不玩了,就正常退出了。
2、第一次猜对数字后,输入"Y"再玩一次,再猜对了,再选不玩,就不能正常推出了,继续让我输入数字。不知道为什么。
- 游戏规则(略)
- ['5', '4', '7', '3']
- 请输入四个不同的数字:5473
- 第1次:4A0B
- 你已经猜到了正确的结果。
- 是否继续?继续请按Y,其他键退出y
- 再玩一次。
- 游戏规则(略)
- ['9', '2', '5', '4']
- 请输入四个不同的数字:9254
- 第1次:4A0B
- 你已经猜到了正确的结果。
- 是否继续?继续请按Y,其他键退出n
- 不玩了。退出游戏。
- 请输入四个不同的数字:
复制代码
因为你用了递归调用,当返回上一层函数的时候 gameOver 的值还是 False,
你可以把 gameOver 设为全局变量
- import random
- def getNumber():
- number = list('0123456789')
- random.shuffle(number)
- return number[:4]
- def check(myNumber, number):
- A = 0
- B = 0
- for i in myNumber:
- if i in number:
- if myNumber.index(i) == number.index(i):
- A += 1
- else:
- B += 1
- return str(A)+'A'+str(B)+'B'
- def showGameRule():
- print('''游戏规则(略)''')
- def game():
- global gameOver # 加了这一行
- showGameRule()
- number = getNumber()
- print(number)
- gameOver = False
- count = 0
- while not gameOver:
- myNumber = input('请输入四个不同的数字:')
- result = check(myNumber, number)
- count += 1
- print(f'第{count}次:{result}')
- if result == '4A0B':
- print('你已经猜到了正确的结果。')
- quitOrNot = input('是否继续?继续请按Y,其他键退出')
- if quitOrNot not in ['Y','y']:
- print('不玩了。退出游戏。')
- gameOver = True
- else:
- print('再玩一次。')
- game()
- if __name__ == '__main__':
- game()
复制代码
|
|