|
发表于 2018-4-8 14:49:56
|
显示全部楼层
- import random as r
- def creatnum():
- s = ''
- while len(s) < 4:
- a = str(r.randint(0,9))
- if a not in s:s += a
- return s
- def showhistory(lst):
- n = len(lst)
- if n == 0:
- print('您还没有猜过数字.')
- else:
- print('-'*20,'历史记录','-'*20)
- print('您一共猜过%d次,结果如下:'%n)
- print('|%.4s|%.4s|%.4s|'%('次数','记录','结果'))
- for i,k in enumerate(lst,1):
- print('| %.2d |%.4s|%.4s|'%(i,k[0],k[1]))
- print('-'*20,'继续游戏','-'*20)
- def guess(lst):
- enternum = input('请输入想要猜的4位数字,输入【history】显示历史结果,输入【:q】退出游戏:')
- while True:
- if enternum in ('history','HOSTORY'):
- showhistory(lst)
- return None
- elif enternum == ':q':
- return 'q'
- elif not enternum.isdigit():
- enternum = input('您输入的不是数字,请重新输入:')
- elif len(enternum) != 4:
- enternum = input('您输入的不是4位数字,请重新输入:')
- else:
- return enternum
- def nummatch(enternum, guessnum):
- A, B= 0,0,
- for i in range(4):
- if enternum[i] == guessnum[i]:
- A += 1
- if enternum[i] in guessnum:
- B+= 1
- s = '%dA%dB'%(A,B)
- return [enternum, s]
- def main():
- lst = list()
- guessnum = creatnum()
- print('测试:',guessnum)
- print('-'*20,'游戏开始','-'*20)
- while True:
- enternum = guess(lst)
- if enternum == None:
- continue
- elif enternum == 'q':
- print('-'*20,'游戏退出', '-'*20)
- break
- elif enternum == guessnum:
- print('恭喜你猜对了!数字正是%s!\n'%guessnum, '-'*20,'游戏结束', '-'*20)
- break
- else:
- temp = nummatch(enternum,guessnum)
- print('您猜的结果是:%s'%temp[1])
- lst.append(temp)
- if __name__ == '__main__':
- main()
复制代码 |
评分
-
查看全部评分
|