标签:style blog color os 文件 io for art
#hangman.py from PythonCard import model,dialog import random def find_letters(letter,a_string): locations = [] start = 0 while a_string.find(letter,start,len(a_string)) != -1: location = a_string.find(letter,start,len(a_string)) locations.append(location) start = location + 1 return locations def replace_letters(string,locations,letter): new_string = ‘‘ for i in range(0,len(string)): if i in locations: new_string = new_string + letter else: new_string = new_string + string[i] return new_string class Hangman(model.Background): def on_initialize(self,event): self.currentword = "" f = open("words.txt",‘r‘) self.lines = f.readlines() f.close() self.new_game() def new_game(self): self.components.stYourGuesses.text = "" self.currentword = random.choice(self.lines) self.currentword = self.currentword.strip() self.components.stDisplayWord.text = "" for a in range(len(self.currentword)): self.components.stDisplayWord.text += "-" self.components.foot2.visible = False self.components.foot1.visible = False self.components.arm1.visible = False self.components.arm2.visible = False self.components.body.visible = False self.components.head.visible = False def on_btnGuessWord_mouseClick(self,event): result = dialog.textEntryDialog(self,‘What is the word‘,‘Hangman‘,‘the word‘) self.components.stYourGuesses.text = self.components.stYourGuesses.text + " " + result.text + " " if (result.text).strip() == (self.currentword).strip(): dialog.alertDialog(self,‘You did it!‘,‘Hangman‘) self.new_game() else: self.wrong_guess() def wrong_guess(self): dialog.alertDialog(self,"WRONG!!",‘Hangman‘) if self.components.head.visible == True: if self.components.body.visible == True: if self.components.arm1.visible == True: if self.components.arm2.visible == True: if self.components.foot1.visible == True: if self.components.foot2.visible == True: dialog.alertDialog(self,"You lost! Word was " + self.currentword,‘Hangman‘) self.new_game() else: self.components.foot2.visible = True else: self.components.foot1.visible = True else: self.components.arm2.visible = True else: self.components.arm1.visible = True else: self.components.body.visible = True else: self.components.head.visible = True def on_btnGuessLetter_mouseClick(self,event): result = dialog.textEntryDialog(self,‘enter the letter here:‘,‘Hangman‘,‘‘) guess = result.text if len(guess) == 1: self.components.stYourGuesses.text = self.components.stYourGuesses.text + " " + guess + " " if result.text in self.currentword: locations = find_letters(guess,self.currentword) self.components.stDisplayWord.text = replace_letters(self.components.stDisplayWord.text,locations,guess) if self.components.stDisplayWord.text.find(‘-‘) == -1: dialog.alertDialog(self,‘You win!!!!!‘,‘Hangman‘) self.new_game() else: self.wrong_guess() else: dialog.alertDialog(self,‘Type one letter only‘,‘Hangman‘) def on_cmdNewGame_command(self,event): self.new_game() app = model.Application(Hangman) app.MainLoop()
资源文件
{‘application‘:{‘type‘:‘Application‘,
‘name‘:‘Template‘,
‘backgrounds‘: [
{‘type‘:‘Background‘,
‘name‘:‘bgTemplate‘,
‘title‘:u‘Hangman‘,
‘size‘:(560, 373),
‘menubar‘: {‘type‘:‘MenuBar‘,
‘menus‘: [
{‘type‘:‘Menu‘,
‘name‘:‘menuFile‘,
‘label‘:‘&File‘,
‘items‘: [
{‘type‘:‘MenuItem‘,
‘name‘:‘menuFileNewGame‘,
‘label‘:‘&New Game‘,
‘command‘:‘cmdNewGame‘,
},
{‘type‘:‘MenuItem‘,
‘name‘:‘menuFileExit‘,
‘label‘:‘E&xit‘,
‘command‘:‘exit‘,
},
]
},
]
},
‘components‘: [
{‘type‘:‘StaticText‘,
‘name‘:‘stYourGuesses‘,
‘position‘:(28, 236),
‘font‘:{‘faceName‘: u‘Tahoma‘, ‘family‘: ‘sansSerif‘, ‘size‘: 10},
‘text‘:u‘‘,
},
{‘type‘:‘StaticText‘,
‘name‘:‘StaticText1‘,
‘position‘:(26, 200),
‘font‘:{‘faceName‘: u‘Tahoma‘, ‘family‘: ‘sansSerif‘, ‘size‘: 10},
‘text‘:u‘Your Guesses:‘,
},
{‘type‘:‘StaticLine‘,
‘name‘:‘StaticLine2Copy‘,
‘position‘:(86, 11),
‘size‘:(4, 34),
‘layout‘:‘vertical‘,
},
{‘type‘:‘StaticLine‘,
‘name‘:‘StaticLine3‘,
‘position‘:(87, 10),
‘size‘:(69, 4),
‘layout‘:‘horizontal‘,
},
{‘type‘:‘StaticLine‘,
‘name‘:‘StaticLine2‘,
‘position‘:(157, 10),
‘size‘:(4, 160),
‘layout‘:‘vertical‘,
},
{‘type‘:‘StaticLine‘,
‘name‘:‘StaticLine1‘,
‘position‘:(133, 171),
‘size‘:(50, 4),
‘layout‘:‘horizontal‘,
},
{‘type‘:‘StaticText‘,
‘name‘:‘stDisplayWord‘,
‘position‘:(247, 87),
‘font‘:{‘style‘: ‘bold‘, ‘faceName‘: u‘Courier New‘, ‘family‘: ‘sansSerif‘, ‘size‘: 14},
‘text‘:u‘----------‘,
},
{‘type‘:‘Button‘,
‘name‘:‘btnGuessWord‘,
‘position‘:(252, 128),
‘size‘:(120, -1),
‘label‘:u‘Guess the word‘,
},
{‘type‘:‘Button‘,
‘name‘:‘btnGuessLetter‘,
‘position‘:(250, 32),
‘size‘:(120, -1),
‘label‘:u‘Guess a letter‘,
},
{‘type‘:‘StaticText‘,
‘name‘:‘foot2‘,
‘position‘:(88, 115),
‘enabled‘:False,
‘font‘:{‘faceName‘: ‘Tahoma‘, ‘family‘: ‘sansSerif‘, ‘size‘: 22},
‘text‘:u‘\\‘,
},
{‘type‘:‘StaticText‘,
‘name‘:‘foot1‘,
‘position‘:(69, 115),
‘enabled‘:False,
‘font‘:{‘faceName‘: ‘Tahoma‘, ‘family‘: ‘sansSerif‘, ‘size‘: 22},
‘text‘:u‘/‘,
},
{‘type‘:‘StaticLine‘,
‘name‘:‘body‘,
‘position‘:(85, 65),
‘size‘:(4, 55),
‘font‘:{‘style‘: ‘bold‘, ‘faceName‘: ‘Tahoma‘, ‘family‘: ‘sansSerif‘, ‘size‘: 8},
‘layout‘:‘vertical‘,
},
{‘type‘:‘StaticLine‘,
‘name‘:‘arm2‘,
‘position‘:(94, 79),
‘size‘:(36, 4),
‘layout‘:‘horizontal‘,
},
{‘type‘:‘StaticLine‘,
‘name‘:‘arm1‘,
‘position‘:(45, 79),
‘size‘:(36, 4),
‘layout‘:‘horizontal‘,
},
{‘type‘:‘StaticText‘,
‘name‘:‘head‘,
‘position‘:(75, 29),
‘enabled‘:False,
‘font‘:{‘faceName‘: ‘Tahoma‘, ‘family‘: ‘sansSerif‘, ‘size‘: 20},
‘text‘:u‘O‘,
},
] # end components
} # end background
] # end backgrounds
} }
Hangman游戏源代码 --- python实现,布布扣,bubuko.com
标签:style blog color os 文件 io for art
原文地址:http://www.cnblogs.com/lfsblack/p/3873955.html