Alan Gauld wrote: > "Devon MacIntyre" <[EMAIL PROTECTED]> wrote > >> input their own numbers to fill in the board. My problem is that I >> can't get >> the variables 'puzzle' and 'new_puzzle' into that function (to be >> compared) >> because they are not globally defined; only in 'new_sudoku' >> function. Here's >> some selected code from my program: > > As per my prevuiouis email and example, simply return the puzzles > >> def swap_row(puzzle,row1,row2): >> temp = puzzle[row1] >> puzzle[row1] = puzzle[row2] >> puzzle[row2] = temp > return puzzle # just to be safe and consistent > >> def new_sudoku(): >> puzzle = [[1,2,3,4,5,6,7,8,9], \ >> [4,5,6,7,8,9,1,2,3], \ >> [7,8,9,1,2,3,4,5,6], \ >> [2,3,4,5,6,7,8,9,1], \ >> [5,6,7,8,9,1,2,3,4], \ >> [8,9,1,2,3,4,5,6,7], \ >> [3,4,5,6,7,8,9,1,2], \ >> [6,7,8,9,1,2,3,4,5], \ >> [9,1,2,3,4,5,6,7,8]] >> num_of_swap = random.randint(10,20) >> for i in range(num_of_swap): >> row1 = random.randint(0,8) >> row2 = random.randint(0,8) >> if row1/3 == row2/3: >> swap_row(puzzle,row1,row2) >> new_puzzle = copy.deepcopy(puzzle) >> sparseness = 0.85 >> for i in range(9): >> for j in range(9): >> if random.uniform(0,1) < sparseness: >> new_puzzle[i][j] = '' > return puzzle,new_puzzle > >> def play_game(): >> ''' >> Here is where I need the variables 'puzzle' and 'new_puzzle' to >> be >> brought. >> ''' > > original,new = new_sudoku() > compare(original,new) > > >> I read about the 'class' module, but am not sure on it's execution. > > I'm not sure what the class module is? Its not one of the standard > Python modules. If you mean the class construct that is not a module > but a part of the language - like def is for functions. > > See the OOP topic of my tutor for more info on how to use it. > > But for this problem you don;t need classes, just pass the data > out of one function and into the other as shown above. > Have a read of the Modules & Functions topic in my tutor for > more explanation. >
Right! This is not something that needs OOP! Besides, I find this belief that inside a class everything goes completely wrong. In that case you could write your code with globals and do whatever, then wrap it in a class, make your globals to be properties and voilá, every thing's all right. I don't think that is the way to go. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor