[Tutor] Improving My Simple Game Code for Speed, Memory and Learning
WolfRage
wolfrage8765 at gmail.com
Mon Jan 12 01:57:01 CET 2015
I had an issue in my logic and again my named variables provided for
confusion, so I had to add some comments to clarify.
I got much closer by editing my code like this:
def drop_floating_nodes0(self):
i = self.rows
# first_zero_row serves as memory for how far to drop non-zero
values
first_zero_row = None
for col_list in self.transposed_grid:
while True:
# Low is on Top, High is on Bottom
low, high = col_list[i - 2: i] # Goes Up the Rows
if high.value == 0:
if low.value != 0:
if first_zero_row is None:
high.value = low.value
low.value = 0
first_zero_row = low
else:
first_zero_row.value = low.value
low.value = 0
high.value = 0
first_zero_row = low
else:
if first_zero_row is None:
first_zero_row = high
i -= 1
if i == 1:
i = self.rows
first_zero_row = None
break
But it still fails as you can see here from the output:
| 20 | 19 | 11 | 20 |
| 11 | 5 | 5 | 11 |
| 19 | 5 | 11 | 11 |
| 19 | 20 | 20 | 5 |
| 11 | 19 | 19 | 11 |
| 20 | 6 | 6 | 11 |
| 19 | 11 | 5 | 20 |
| 11 | 20 | 11 | 20 |
After Eliminations
| 20 | 0 | 11 | 0 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 11 | 0 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 20 | 6 | 6 | 0 |
| 19 | 11 | 5 | 0 |
| 11 | 20 | 11 | 20 |
After Drops
| 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 0 |
| 0 | 0 | 11 | 0 |
| 0 | 0 | 0 | 0 |
| 20 | 0 | 11 | 0 |
| 20 | 6 | 6 | 0 |
| 19 | 11 | 5 | 0 |
| 11 | 20 | 11 | 20 |
More information about the Tutor
mailing list