This is an old revision of the document!
If you tried balancing the values for the goblins Stinky and Grunty in step 001 you will feel the law of Law_of_large_numbers: If Stinky wins 5 times in a row over Grunty, that does not proof that Stinky's values are superior over Grunty. Maybe Stinky has a streak of luck or Grunty's random numbers are specially unlucky. Only if you test a game (several) thousands times you can start to make qualified statements.
Well, pushing thousand times the “run program” button on my text editor is not my idea of fun. (Maybe later if the program becomes better). Good thing that there is a python function to repeat a given task a many times: the for loop.
The for loop iterates over a given list. If you give the for loop a list with thousand items to iterate over, it will do the same task thousand times. But where to get a list with thousand items ? Lucky for you, python provides also a function to generate lists: the range function (and the xrange function).
This is a good time to play around with python's direct mode. If you start the editor Idle (shipped, as you know, together with python), you are by default in the direct mode. If you -like me- dislike idle (inner values aside, the thing is simply ugly) you can open a terminal and enter
. The result in both cases is that you are in python's direct mode, symbolized by the 3 leading “greater than” signs:
As soon as you enter some commands and press the <key>ENTER</key> python will try to interpret the command and print the result. This is handy to try out functions you do not know by heart, to access python's help system with the help() command or -if you are really bored- create some infinite loops like that one:
while True: print "it's never boring with you"
Let's use python's direct mode to learn about list's and the range function. A list in python is a comma seperated list of items, starting and ending with square brackets. If you want to put text strings in the list you need quotes:
>>>shoppinglist = ["banana","apple",555, 3.13]
The interesting thing about list's is that each list item gets an number, starting with 0. You can access an list item by it's number:
>>>shoppinglist 'banana' >>>shoppinglist 555
More about list later or if you are interested here: http://www.swaroopch.com/notes/Python_en:Data_Structures
If you just want to have a list with 1000 items in it, all you need to type is:
>>>mylist = range(1000) >>>mylist
You will get a list starting with “[0,1,2,3,4,” and ending with “997,998,999]
You can iterate over this list with a for loop (and break out of it using the break command): Write this little program in the direct mode or in your python text editor:
>>> for x in range(100): print x
It is now time to leave python's direct mode (if you work in a terminal, press <key>CTRL</key> and <key>d</key> and go back to your “real” python text editor.
To start this example you need:
|002_goblindice.py||python|| Download the whole Archive with all files from Github: |
|version for python2.x|
View/Edit/Download the file directly in Github: https://github.com/horstjens/ThePythonGameBook/blob/master/python/002_goblindice.py
click reload in your browser if you see no code here: