香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

Python实现的简单hangman游戏实例


时间:2021-12-08 14:52 作者:admin610456


本文实例讲述了python/' target='_blank'>python实现的简单hangman游戏。分享给大家供大家参考。具体如下:

#!/usr/bin/env Pythonimport 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程序设计有所帮助。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)