Here is some of the code we will be using in class today. After that, a source code file from yesterday's class:
Some Games """ from random import randint, choice # a list of (question, answer) tuples quiz1 = [("What is the capital of Oregon?", "Salem"), ("Is Portland north of Salem?", "Yes"), ("Does I-5 go to Seattle?", "Yes"), ("Does I-5 go to Pendleton?", "No")] quiz2 = [("What is the capital of Washington State","Olympia"), ("Are kangaroos native to China?","No"), ("Who is the president of the USA?", "Obama"), ("What computer language is named for Monty Python?", "Python")] quizzes = [quiz1, quiz2] # list of possible quizzes def askq(quiz = quiz1): score = 0 possible = len(quiz) while len(quiz) > 0: pickone = randint(0, len(quiz)-1) print(quiz[pickone][0]) answer = raw_input("Your answer? ") if answer.upper() == quiz[pickone][1].upper(): # yes and Yes would both count (but not Y) print("Correct!") score = score + 1 else: print("Correct answer was %s" % quiz[pickone][1]) quiz.pop(pickone) print("Your score was %s out of a possible %s" % (score, possible)) def guessing(a=0,b=10): thenumber = randint(a,b) while True: print("I'm thinking of a number between %s and %s, what is it?" % (a,b)) answer = raw_input("Guess (q to quit): ") if answer == "q": print("Thanks for trying, the number was %s" % thenumber) break # escape loop if not answer.isdigit(): # trap non-integer answers print("That's not a number!") continue # loop again answer = int(answer) # convert to integer if answer == thenumber: print("That's it!") break # escape loop elif answer < thenumber: print("Try larger!") elif answer > thenumber: print("Try smaller!") def mainmenu(): while True: print(""" What game would you like to play? 1 Take a Quiz 2 Guess a Number 0 Exit""") sel = raw_input("Your selection? ") if sel == "0": print("OK, Good Bye") break elif sel == "1": # randomly choose a quize askq(choice(quizzes)) elif sel == "2": guessing() else: print("Huh? Please try again") if __name__ == "__main__": # askq(quiz1) # guessing() mainmenu() ======= from random import randint, random, choice allcolors = [color.orange, color.red, color.magenta, color.yellow, color.blue, color.white, color.green] def randcolor(): return (random.random(), random.random(), random.random()) def junk(n=100): for i in range(n): draw = choice(["ball", "box"]) if draw == "ball": manyspheres(1) else: manyboxes(1) def manyboxes(n=100): """ make random boxes.... mybox = box(pos=(x0,y0,z0), length=L, height=H, width=W) """ for i in range(n): thebox = box( pos=(randint(-100,100), randint(-100,100), randint(-100,100)), size = (randint(1, 10),randint(1,10),randint(1,10)) , color = randcolor()) def manyspheres(n=100): for i in range(n): theball = sphere( pos=(randint(-100,100),randint(-100,100),randint(-100,100)), radius = randint(1, 10), color = randcolor()) def xyz(n=10): posx = cylinder(radius = 0.1, pos=(0,0,0), axis = (n,0,0), color = color.white) negx = cylinder(radius = 0.2, pos=(0,0,0), axis = (-n,0,0), color = color.white) posy = cylinder(radius = 0.3, pos=(0,0,0), axis = (0,n,0), color = color.white) negy = cylinder(radius = 0.4, pos=(0,0,0), axis = (0,-n,0), color = color.white) posz = cylinder(radius = 0.5, pos=(0,0,0), axis = (0,0,n), color = color.white) negz = cylinder(radius = 0.6, pos=(0,0,0), axis = (0,0,-n), color = color.white) def circle(): print "Making a circle" theball = sphere(pos=(2,0,0), radius = 1, color = color.red) for i in range(10000): newx = 2 * math.cos(math.radians(i)) newy = 2 * math.sin(math.radians(i)) theball.pos = (newx, newy, 0) rate(30) def clock(): bighand = cylinder(radius = 0.1, pos=(0,0,0), axis = (0,10,0), color = color.green) littlehand = cylinder(radius = 0.1, pos=(0,0,0), axis = (0,5,0), color = color.white) clock = ring(pos=(0,0,0), axis = (0,0,1), radius = 10, color = color.red, thickness = 0.1) for i in range(0, -10000, -1): newx = 10 * math.cos(math.radians(90 + i )) newy = 10 * math.sin(math.radians(90 + i )) bighand.axis = (newx, newy, 0) newx = 5 * math.cos(math.radians(90 + i/12.)) newy = 5 * math.sin(math.radians(90 + i/12.)) littlehand.axis = (newx, newy, 0) rate(30) # student code sent by email from another workstation, # appended and converted into a function (vs. top-level) from visual import * import random window = display(title="Random Sphere", width = 1024, height = 768) window.select() class mysphere(): def __init__(self, my_color, my_pos, my_name, my_radius): mysphere_name = sphere(pos = my_pos, color = my_color, radius = my_radius) def test2(): t = 0 while t < 100000: my_color = random.choice(((255, 255, 255), (255, 255, 0), (255, 0, 0), (255, 0, 255), (0, 255, 255), (0, 0, 255), (255, 0, 0))) my_pos = (random.randrange(-1000, 1000), random.randrange(-1000, 1000), random.randrange(-1000,1000)) my_radius = random.randrange(5, 20) new_mysphere = mysphere(my_color, my_pos, t, my_radius) t += 1 rate(50) if __name__ == "__main__": # test2() junk() # manyboxes() # manyspheres() # xyz() # circle() # clock() _______________________________________________ Edu-sig mailing list Edu-sig@python.org http://mail.python.org/mailman/listinfo/edu-sig