Hi.
I'm trying to do the Hangman assignment for an online MIT course. However, I'm running into problems with the master code:
I've got the following code so far: - import urllib.request
-
-
# Hangman game
-
#
-
-
# -----------------------------------
-
# Helper code
-
# You don't need to understand this helper code,
-
# but you will have to know how to use the functions
-
# (so be sure to read the docstrings!)
-
-
import random
-
-
WORDLIST_FILENAME = "http://bribre.net/edX/MIT6001/words.txt"
-
-
def loadWords():
-
"""
-
Returns a list of valid words. Words are strings of lowercase letters.
-
-
Depending on the size of the word list, this function may
-
take a while to finish.
-
"""
-
print("Loading word list from file...")
-
# inFile: file
-
#inFile = open(WORDLIST_FILENAME, 'r')
-
inFile = urllib.request.urlopen(WORDLIST_FILENAME)
-
# line: string
-
line = inFile.readline()
-
# wordlist: list of strings
-
wordlist = line.split()
-
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
-
# -----------------------------------
-
-
# Load the list of words into the variable wordlist
-
# so that it can be accessed from anywhere in the program
-
wordlist = loadWords()
-
-
def isWordGuessed(secretWord, lettersGuessed):
-
'''
-
secretWord: string, the word the user is guessing
-
lettersGuessed: list, what letters have been guessed so far
-
returns: boolean, True if all the letters of secretWord are in lettersGuessed;
-
False otherwise
-
'''
-
lettersGuessed = ['a', 'a', 's', 't', 'r', 'm', 'c']
-
if letter in lettersGuessed:
-
True
-
else:
-
False
-
print(isWordGuessed(secretWord, lettersGuessed))
-
return isWordGuessed
-
-
-
-
def getGuessedWord(secretWord, lettersGuessed):
-
'''
-
secretWord: string, the word the user is guessing
-
lettersGuessed: list, what letters have been guessed so far
-
returns: string, comprised of letters and underscores that represents
-
what letters in secretWord have been guessed so far.
-
'''
-
lettersGuessed = ['a', 'a', 's', 't', 'r', 'm', 'c']
-
returns1 = '_a_ _';
-
returns2 = '_ _c_';
-
returns3 = 't_ _t';
-
returns4 = 'ta_t';
-
returns5 = 't_ct';
-
print(getGuessedWord(secretWord, lettersGuessed))
-
return getGuessedWord
-
-
-
-
def getAvailableLetters(lettersGuessed):
-
'''
-
lettersGuessed: list, what letters have been guessed so far
-
returns: string, comprised of letters that represents what letters have not
-
yet been guessed.
-
'''
-
s = 'bdefghijklnopquvwxyz'
-
lettersGuessed = ['a', 'a', 's', 't', 'r', 'm', 'c']
-
returns = s
-
print(getAvailableLetters(lettersGuessed))
-
return getAvailableLetters
-
-
def hangman(secretWord):
-
'''
-
secretWord: string, the secret word to guess.
-
-
Starts up an interactive game of Hangman.
-
-
* At the start of the game, let the user know how many
-
letters the secretWord contains.
-
-
* Ask the user to supply one guess (i.e. letter) per round.
-
-
* The user should receive feedback immediately after each guess
-
about whether their guess appears in the computers word.
-
-
* After each round, you should also display to the user the
-
partially guessed word so far, as well as letters that the
-
user has not yet guessed.
-
-
Follows the other limitations detailed in the problem write-up.
-
'''
-
return isWordGuessed
-
return guessedWord
-
return getAvailableLetters
-
return hangman
-
-
-
-
-
# When you've completed your hangman function, uncomment these two lines
-
# and run this file to test! (hint: you might want to pick your own
-
# secretWord while you're testing)
-
-
# secretWord = chooseWord(wordlist).lower()
-
# hangman(secretWord)
-
-
Of them, only the first function of the master code has any outputs: - Loading word list from file...
-
(' ', 55909, 'words loaded.')
Can someone tell me what is the issue I'm running into? I know how to solve the problem as well as the solution, but trying to get there is virtually impossible. What I need to output is either a winning game or a losing game.
I don't want the solution, just an indication of what's going wrong so I can deduce how to fix it.
3 2068
Of them, only the first function of the master code has any outputs
The second function, getAvailableLetters(lettersGuessed) returns a variable that has not been declared, i.e. return getAvailableLetters. The third function, hangman(secretWord), has 4 returns, and only the first one executes as the function then exits. Finally, you do not get any input from the user so there are no guesses to analyze. A tutorial is a good next step to learn the basics for any Python program https://wiki.python.org/moin/BeginnersGuide/Programmers
I'll look into that link. Though I think I should be a bit more explicit regarding what the functions are:
Function 1 is the loadWords function
Function 2 is the chooseWord function
Function 3 is the isWordGuessed function
Function 4 is the getGuessedWord function
Function 5 is the getAvailableLetters function
and Function 6 is the hangman function.
I thought that getAvailableLetters was declared (unless def doesn't actually declare a variable)?
Just a small observation - if people cannot figure out your functions in a few seconds, you need to include a block of documentation explaining purpose, invocation, and return values.
Trust me, for code that others must read, it is a huge bonus.
Sign in to post your reply or Sign up for a free account.
Similar topics
by: Pete Shinners |
last post by:
Recently I conducted a short interview with Steve Moret, the Lead
Programmer for "Greyhawk: Temple of Elemental Evil". Python was used for
the scripting in this commercial game. The interview...
|
by: Jared |
last post by:
Has anybody played the Mechwarrior Miniatures game? I'm trying to
represent the game in python. First thing I need to do is make a
playing field. Mechs will move on the playing field based on...
|
by: Bill Dandreta |
last post by:
I would like to write a wordsearch puzzle game in Python that functions
like this java program:
http://javaboutique.webdeveloper.com/WordSearch/
I would like it to be cross platform (Linux,...
|
by: richard |
last post by:
The Python Game Programming Challenge (otherwise known as PyWeek) is only a
week away from starting! Theme voting has started!
http://www.mechanicalcat.net/tech/PyWeek/1
Richard
|
by: Lucas Raab |
last post by:
Saw this on Slashdot
(http://developers.slashdot.org/article.pl?sid=05/09/17/182207&from=rss)
and thought some people might be interested in it. Direct link to the
article is...
|
by: Andreas R. |
last post by:
OpenRTS is a new open source project, with the aim of creating a
realtime strategy game. The game is developed in Python with Pygame. See
http://www.openrts.org for more info about the game if you...
|
by: richard |
last post by:
The date for the second PyWeek challenge has been set: Sunday 26th March
to Sunday 2nd April (00:00UTC to 00:00UTC).
The PyWeek challenge invites entrants to write a game in one week from...
|
by: Jerry Fleming |
last post by:
Hi,
I have wrote a game with python curses. The problem is that I want to
confirm before quitting, while my implementation doesn't seem to work.
Anyone can help me?
#!/usr/bin/python
#
#...
|
by: =?windows-1252?Q?=3F=3F=3F=3F_=3F=3F=3F?= |
last post by:
The fourth Python Game Programming Challenge (PyWeek) has now concluded
with
judges (PyWeek being peer-judged) declaring the winners:
Individual: Which way is up? by Hectigo...
|
by: Richard Jones |
last post by:
The fifth PyWeek is only a month away. Come along and join the fun: write a
video game in a week!
There's some really interesting new libraries that have popped up recently.
Have a gander on the...
|
by: CloudSolutions |
last post by:
Introduction:
For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
|
by: Faith0G |
last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome former...
|
by: ryjfgjl |
last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: aa123db |
last post by:
Variable and constants
Use var or let for variables and const fror constants.
Var foo ='bar';
Let foo ='bar';const baz ='bar';
Functions
function $name$ ($parameters$) {
}
...
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
| |