计算机科学和编程导论-week3-作业
来源:互联网 发布:工资核算软件 编辑:程序博客网 时间:2024/06/05 22:37
计算机科学和编程导论
Week3
ps3_hangman.py
________________________________________________________________
import random
import string
WORDLIST_FILENAME = "words.txt"
def loadWords():#调用字典
print "Loading word list from file..."
# inFile: file
inFile = open(WORDLIST_FILENAME, 'r', 0)
# line: string
line = inFile.readline()
# wordlist: list of strings
wordlist = string.split(line)
print " ", len(wordlist), "words loaded."
return wordlist
def chooseWord(wordlist):#选择单词
"""
wordlist (list): list of words (strings)
Returns a word from wordlist at random
"""
return random.choice(wordlist)
# end of helper code
# -----------------------------------
wordlist = loadWords()
def isWordGuessed(secretWord, lettersGuessed):#单词是否在列表
for i in secretWord:#单词在输入列表
if i not in lettersGuessed:#单词不再在选择列表
return False#返回False
return True#返回True
#-----------------------------------
def getGuessedWord(secretWord, lettersGuessed):#返回单词猜测状态指示
txt = ''#返回的单词指示
for i in secretWord:#单词在输入列表
if i in lettersGuessed:#单词在列表
txt = txt + ' ' + i#加入txt
else:
txt = txt + ' _ '#输出’_’
return txt#返回txt
#-----------------------------------
def getAvailableLetters(lettersGuessed):#列表指示
bz = 'abcdefghijklmnopqrstuvwxyz'#默认字符
txt = ''#返回的列表指示 fori in bz:#单词在默认字符
if i not in lettersGuessed:#单词不在列表
txt += i#加入列表指示
return txt#返回txt
#-----------------------------------
def hangman(secretWord):#游戏主体
lettersGuessed = []#列表
mistakesMade = 8#猜测次数
print 'welcome to the game, Hangman!'
print 'I am thinking of a word that is ',len(secretWord),' letters long.'
print '----------'
while mistakesMade > 0.01 and not isWordGuessed(secretWord, lettersGuessed):
#当猜测次数大于0 和 not true状态下(小于0游戏结束)
print 'You have ',str(mistakesMade),' guesses left.'
print 'Available letters:',getAvailableLetters(lettersGuessed)
guess = raw_input('Please guess a letter:').lower()
#猜测开始(.lower())为小写
if guess in lettersGuessed:
print "Oops! You've already guessed that letter:", getGuessedWord(secretWord, lettersGuessed)
#猜测的单词在列表里,提示重复猜测,调用getGuessedWord返回单词猜测状态指示
else:
if guess in secretWord:
lettersGuessed.append(guess)
print 'Good guess:', getGuessedWord(secretWord, lettersGuessed)
#猜测的单词在正确词语,将猜测的单词加入列表,调用getGuessedWord返回单词猜测状态指示
else:
lettersGuessed.append(guess)
mistakesMade -= 1
print 'Oops! That letter is not in my word:', getGuessedWord(secretWord, lettersGuessed)
#猜测的单词不在正确词语,将猜测的单词加入列表,猜测次数-1,调用getGuessedWord返回单词猜测状态指示
print '----------'
if mistakesMade > 0.01:
print 'Congratulations, you won!'
else:
print 'Sorry, you ran out of guesses. The word was else.'
#猜测结束后,猜测次数大于0下,返回成功,否则返回失败
#-----------------------------------
secretWord = chooseWord(wordlist).lower()
hangman(secretWord)
- 计算机科学和编程导论-week3-作业
- 计算机科学和编程导论-week3-递归
- 计算机科学和编程导论-week3-对象
- 计算机科学和编程导论-week2-作业
- 计算机科学和编程导论-week1-计算机科学简介
- 计算机科学和编程导论-week1-编程基础
- MIT 计算机科学和Python 编程导论
- 计算机科学和编程导论-week2-简单算法
- 计算机科学和编程导论-week2-函数
- Logistic Regression WEEK3编程作业
- [机器学习]week3编程作业:Logistic Regression
- MOOC面向对象编程week3作业
- Week3 作业
- WEEK3作业
- week3作业
- 麻省理工开放课程:计算机科学及编程导论
- 麻省理工开放课程:计算机科学及编程导论
- MIT《计算机科学与编程导论》课堂笔记
- EM算法
- Redis的持久化方案都有哪些?各有什么优缺点?
- leetcode125. Valid Palindrome
- TCP/IP协议栈分析(1)-概述
- jquery判断字符串中是否包含特定字符的方法总结
- 计算机科学和编程导论-week3-作业
- jQuery取消冒泡排序事件
- mybatis学习高级映射一对一之resultMap映射
- 计算几何 基础算法 + 题目(转)
- CF-Codeforces Round #410 (Div. 2)-A~C
- 使用模态框进行登录
- LeetCode-M-Unique Binary Search Trees II
- Python
- Android自动关机