之前学过Python,后来弄丢了,现在跟着B站的黑马视频从头学起
在这里做一些学习的记录
记录-1
下面展示一些 内联代码片
。
import random
print('游戏说明:\n玩家选择数字位数后,系统随机生成一个1000以上的n位数字,由用户进行猜测')
print('每次猜测反馈结果:xAyB\nxA分别表示猜对数字和位置的个数,yB表示猜对数字但未猜对位置的个数\n例:随机数字是’1234')
print('猜测数字是’1328‘\n反馈结果:1A2B,表示本次猜测有1位(数字1)数字对且位置对,有2位(数字2、3)数字对但位置不对')
print('输入#重新开始\n输入%退出游戏')
while True:
level = int(input('请选择数字位数:')) #4--32位
if level not in range(4, 33):
print('输入错误!')
continue
x = str(random.randint(10**(level-1), 10**level))
listrandom_num = []
listplayer_num = []
list_numbers = []
list_num_num = []
dictrandom_num = {}
dictplayer_num = {}
dict_numbers = {}
dict_num_num = {}
list_num = [str(i) for i in range(0, 10)]
for i in range(0, level):
dictrandom_num[i] = x[i:(i+1)]
listrandom_num = list(dict.values(dictrandom_num))
for i in range(0, 10):
dict_numbers[i] = listrandom_num.count(str(i))
list_numbers = list(dict_numbers.values())
for i in range(0, 3*level):
print('剩余机会:%d' % (4*level-i))
c = str(input('你给出的数字是:'))
if c == '#':
break
if c == '%':
exit()
if c == x:
print("游戏胜利")
break
A = B = 0
if len(c) != level:
print('输入错误!')
continue
for z in range(0, level):
dictplayer_num[z] = c[z:(z+1)]
listplayer_num = list(dict.values(dictplayer_num))
for z in range(0, 10):
dict_num_num[z] = listplayer_num.count(str(z))
list_num_num = list(dict_num_num.values())
for z in range(0, 10):
if list_numbers[z] <= list_num_num[z]:
B += list_numbers[z]
elif list_numbers[z] > list_num_num[z]:
B += list_num_num[z]
for z in range(0, len(listrandom_num)):
if listplayer_num[z] == listrandom_num[z]:
A += 1
B = B - A
print(A, 'A', B, 'B', sep='')