On Feb 5, 6:33 pm, James Stroud <[EMAIL PROTECTED]> wrote: > [EMAIL PROTECTED] wrote: > > On Feb 5, 3:29 pm, James Stroud <[EMAIL PROTECTED]> wrote: > > >>[EMAIL PROTECTED] wrote: > > >>>Hello, > >>> I am very knew to python and am attempting to write a program > >>>in python that a friend of mine is having to write in java. I am doing > >>>this for fun and would like some help as to how i can generate random > >>>coordinate points (x,y) and compare them with user inputted coordinate > >>>points. For example how will I be able to access the separate values, > >>>the x from the x,y position. I think I understand everything except > >>>1)the random coordinate points 2) the getting the users inputted x and > >>>y values in one line ("Please guess a coordinate point from (1,1) to > >>>(20,20): ") as opposed to ("Please enter an x value:" and "Please > >>>enter a y value") and finally 3) acessing the x value from the x,y > >>>coordinate function. the assignment description is located here http:// > >>>www.cs.washington.edu/education/courses/142/07wi/homework/ > >>>homework.html if you would like to see a more in depth discription of > >>>the game. > > >>>Many Thanks, > >>>Eric > > >>For 1: see the random module (e.g. random.randint) > >>For 2: see the "eval" function and "raw input" > >>For 2 (without cheating): see the re module. For example: > >>***************************************************************************** > >> ***map(int, re.compile("\(?(\d+),(\d+)\)?").search(inpt).groups())**** > >>***************************************************************************** > >>(Giving you the latter because eval will do this for you anyway.) > > >>Also see "raw_input". > > >>James > > > Thank you very much for your response i will play around with the code > > when I have some time ( hopefully later tonight) but could you please > > breakdown what the part that I surrounded with asterisks, I think I > > recognize it but don't understand it. > > > Eric > > "re" is the regular expression module for python. "re.compile()" > compiles the regular expression into a regular expression object with > certain attributes, one of which is "search". "search" searches a > string, here "inpt", and this produces a "match" (actually a > _sre.SRE_Match) object that has, as one of its attributes, a "groups()" > method that returns matches to the grouped expressions inside the > regular expression, i.e. expressions surrounded by un-escaped parentheses. > > Inside of the quotes is a regular expression string, (that, in general, > should be preceded immediately by a lowercase r--but is not here because > it doesn't matter in this case and I forgot to). map() maps a callable > (here int) to the list of groups returned by groups(). Each group is a > string matching r"\d+" which is an expression for one or more digits. > Each group is converted into an integer and map returns a list of > integers. I escaped the enclosing parentheses and put question marks > (match zero or one) so that the enclosing parentheses would be optional. > This makes all of the following evaluate to [20, 20]: > > "20,20" > "(20,20" > "20,20)" > "(20,20)" > > Except for typos, the middle two would be quite uncommon for user input, > but would match the expression. Note also, that I didn't allow for > whitespace anywhere, which might be expected. Arbitrary whitespace is > matched by r"\s*". > > James
Thank you for your help so far, it has been useful but i haven't quite gotten time to figure it out. In the mean time i was posting in a different forum and got given some help (to define a "point" class) I took that advice and am now getting an error relating to it that i have no idea how to fix and was wondering if you might be able to give me a hand. Anyways heres my error: ************************************************************************************************************************ ***File "C:/Documents and Settings/Eric/Desktop/Python/2d guessing game.py", line 11, in <module>*** *** randp = Point(random.randint(1, 20), random.randint(1, 20)) *** ***TypeError: default __new__ takes no parameters *** ************************************************************************************************************************ and heres my code: ************************************************************************************************************************ #Import Random Module import random #classify "Point" class Point(object): def _init_(self, x, y): self.x = x self.y = y #generate random coordinate point randp = Point(random.randint(1, 20), random.randint(1, 20)) #print randp #get user input x = int(raw_input("Enter guessed x value (1-20): ")) y = int(raw_input("Enter guessed y value (1-20): ")) #compare input to randomly generated point attempts = 0 while True: userp = Point(x, y) attempts += 1 if userp.y == randp.y and userp.x == randp.x: print "You got it right!" break elif userp.y == randp.y: if userp.y > randp.x: print "Go west" elif userp.x < randp.x: print "Go east" x = int(raw_input("Enter new x guess: ")) userp = Point(x, y) elif userp.y < randp.y: if userp.x > randp.x: print "Go northwest" elif userp.x < randp.x: print "Go northeast" x = int(raw_input("Enter new x guess: ")) y = int(raw_input("Enter new y guess: ")) userp = Point(x, y) elif userp.x == randp.x: if userp.y > randp.y: print "Go south" elif userp.y < randp.y: print "Go north" y = int(raw_input("Enter new y guess: ")) userp = Point(x, y) print " " print "Number of guesses", attempts ************************************************************************************************************************ -- http://mail.python.org/mailman/listinfo/python-list