其实什么语言都可以实现,此代码仅为练习python而写
游戏规则:在1-9中随机取n个不重复的数,玩家去猜这n个数以及对应的位置,n的范围是1-9,每次猜测会有检验结果,如谜底为5269 玩家猜2468 检验结果为1A1B
A:数字和位置都正确,B:仅数字可以对应,但位置不对。8次猜测机会,8次之内猜出结果则胜利,反之则失败。
附上源码
import random
def makeList(count):
i = 0
list = []
while i < count:
a = random.randint(1, 9)
if list.count(str(a)) == 0:
list.append(str(a))
else:
continue
i += 1
# print('谜底:',end='')
# print(list)
return list
def main(list):
listLen = len(list)
j = 1
times = int(1.685**listLen)
print('游戏次数是:'+str(times))
success = ''
error = 0
while j <= times:
if error >= 3:
break
a = input('请输入你猜的结果'+str(j)+':')
if len(a) == listLen:
k = 0
newlist = []
while k < listLen:
newlist.append(a[k])
k += 1
c = 0
double = False
while c < listLen-1:
if newlist.count(a[c]) > 1:
print('数字不能重复')
error += 1
double = True
break
c += 1
if double:
continue
n = 0
while n < listLen:
if list[n] == newlist[n]:
success += 'A'
else:
if list.count(newlist[n]) == 1:
success += 'B'
n += 1
aCount = success.count('A')
bCount = success.count('B')
success = ''
if aCount > 0:
success += str(aCount)+'A'
if bCount > 0:
success += str(bCount)+'B'
if success == '':
success = '数字和位置都没有正确的'
print('验证:'+success)
if success == str(listLen)+'A':
break
success = ''
else:
print('请输入'+str(listLen)+'位数字!')
error += 1
continue
j+=1
if success != '':
print('成功')
else:
if error == 3:
print('失误次数过多,',end = '')
print('失败')
print('答案是:',end='')
print(list)
if __name__ == '__main__':
print('''游戏规则:在1-9中随机取n个不重复的数,玩家去猜这n个数以及对应的位置,n的范围是1-9,每次猜测会有检验结果,
如谜底为5269 玩家猜2468 检验结果为1A1B
A:数字和位置都正确
B:仅数字可以对应,但位置不对。
8次猜测机会,8次之内猜出结果则胜利,反之则失败。''')
print()
isJixu = 1
while isJixu == 1:
count = int(input('请选择游戏难度(最低为1,最大为9):'))
print('游戏开始!')
list = makeList(count)
main(list)
cca = 0
while cca < 5:
isJixu = int(input('是否继续游戏(是:1,否:0)?'))
if isJixu != 0 and isJixu != 1:
print('请输入0或1,不要输入其他字符')
if isJixu == 0:
print('游戏结束')
break
else:
print('游戏继续')
break
cca += 1
if cca == 5:
print('不想玩别玩了')