圆月山庄资源网 Design By www.vgjia.com
本文实例讲述了Python实现的简单hangman游戏。分享给大家供大家参考。具体如下:
#!/usr/bin/env python import random import cPickle class Hangman(object): '''A simple hangman game that tries to improve your vocabulary a bit ''' def __init__(self): # the variables used, this is not necessary self.dumpfile = '' #the dictionary file self.dictionary = {} #the pickled dict self.words = [] #list of words used self.secret_word = '' #the 'key' self.length = 0 #length of the 'key' self.keys = [] #inputs that match the 'key' self.used_keys = [] #keys that are already used self.guess = '' #player's guess self.mistakes = 0 #number of incorrect inputs return self.load_dict() #insert some random hints for the player def insert_random(self, length): randint = random.randint # 3 hints if length >= 7: hint = 3 else: hint = 1 for x in xrange(hint): a = randint(1, length - 1) self.keys[a-1] = self.secret_word[a-1] def test_input(self): #if the guessed letter matches if self.guess in self.secret_word: indexes = [i for i, item in enumerate(self.secret_word) if item == self.guess] for index in indexes: self.keys[index] = self.guess self.used_keys.append(self.guess) print "used letters ",set(self.used_keys),'\n' #if the guessed letter didn't match else: self.used_keys.append(self.guess) self.mistakes += 1 print "used letters ",set(self.used_keys),'\n' # load the pickled word dictionary and unpickle them def load_dict(self): try : self.dumpfile = open("~/python/hangman/wordsdict.pkl", "r") except IOError: print "Couldn't find the file 'wordsdict.pkl'" quit() self.dictionary = cPickle.load(self.dumpfile) self.words = self.dictionary.keys() self.dumpfile.close() return self.prepare_word() #randomly choose a word for the challenge def prepare_word(self): self.secret_word = random.choice(self.words) #don't count trailing spaces self.length = len(self.secret_word.rstrip()) self.keys = ['_' for x in xrange(self.length)] self.insert_random(self.length) return self.ask() #display the challenge def ask(self): print ' '.join(self.keys), ":", self.dictionary[self.secret_word] print return self.input_loop() #take input from the player def input_loop(self): #four self.mistakes are allowed chances = len(set(self.secret_word)) + 4 while chances != 0 and self.mistakes < 5: try: self.guess = raw_input("> ") except EOFError: exit(1) self.test_input() print ' '.join(self.keys) if '_' not in self.keys: print 'well done!' break chances -= 1 if self.mistakes > 4: print 'the word was', ''.join(self.secret_word).upper() return self.quit_message() def quit_message(self): print "\n" print "Press 'c' to continue, or any other key to quit the game. " print "You can always quit the game by pressing 'Ctrl+D'" try: command = raw_input('> ') if command == 'c': return self.__init__() #loopback else : exit(0) except EOFError: exit(1) if __name__ == '__main__': game = Hangman() game.__init__()
希望本文所述对大家的Python程序设计有所帮助。
标签:
Python,hangman游戏
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
更新日志
2024年11月08日
2024年11月08日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]