How would I go about repeating/looping this code? - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: How would I go about repeating/looping this code? (/thread-25122.html) |
How would I go about repeating/looping this code? - azulu - Mar-20-2020 So basically what I have to do, is in a 6x7 grid, from a randomly generated list of instructions such as ['a',1] or ['b',4] draw an object in the grid ('a' or 'b' being the row and 1-4 being which object to draw) This is the code I have to draw in just one of the tiles in the grid, which so far works for what I want it to do, and obviously if I did this manually for every row I'd end up with thousands of lines of code. def play_game(moves): if moves[0] == ['a',1] or ['a',2] or ['a',3] or ['a',4]: goto (-300,row_a_y_cord[0]) del row_a_y_cord[0] if moves[0] == ['a',1]: dot(10, "red") elif moves[0] == ['a',2]: dot(10, "blue") elif moves[0] == ['a',3]: dot(10, "yellow") elif moves[0] ==['a',4]: dot(10, "green")So I was wondering if there was any way I could set this up better, or loop this for the 40 instructions, or am I just on the wrong track with the way I have coded this? RE: How would I go about repeating/looping this code? - Fre3k - Mar-20-2020 You could add a parama "loop" which indicates how often to loop. then you could add a counter and use: counter=0 while(counter < loop): counter+=1Or did I missunderstood the point of your question ? RE: How would I go about repeating/looping this code? - azulu - Mar-20-2020 Just to try make it a bit clearer, what I would like to do is each loop the index number for moves would increase by 1, so right now it's moves[0], so for the next loop I'd want moves[1], for the second instruction in the list. Would this be achieved by what you've proposed? Sorry if I'm not being very clear, this is rather new to me. RE: How would I go about repeating/looping this code? - ndc85430 - Mar-20-2020 Why don't you try things out and see if you can get it to work? RE: How would I go about repeating/looping this code? - Fre3k - Mar-20-2020 Not sure, if Im just to retarded what you want to achieve, but here's an other way to increase the index. def play_game(moves,max_loop): for x in range(0,max_loop): if moves[x] == ['a',1] or ['a',2] or ['a',3] or ['a',4]: goto (-300,row_a_y_cord[0]) del row_a_y_cord[0] if moves[x] == ['a',1]: dot(10, "red") elif moves[x] == ['a',2]: dot(10, "blue") elif moves[x] == ['a',3]: dot(10, "yellow") elif moves[x] ==['a',4]: dot(10, "green") play_game(moves, 10)starting from 0, to max_loop -> moves[0], 1,2 and so on Be prepared, that stuff is untested ^^ RE: How would I go about repeating/looping this code? - azulu - Mar-23-2020 Hey, sorry for the late response. I ended up finding the fix so I thought I'd leave it here in case anyone else has the same issue as me. for row, token in moves: if row == 'a': goto (-300,row_a_y_cord[0]) del row_a_y_cord[0] if token == 1: dot(10, "red") elif token == 2: dot(10, "blue") elif token == 3: dot(10, "yellow") elif token == 4: dot(10, "green") Turns out just using the list itself with the loop will loop it correctly |