Trying to implement the 2048 game in python, starting with a function that merges a 1d list . My code works for all but one test see below. I believe this is due to the code not processing consecutive duplicates but not sure of the best way to implement this, here is my code so far:
def merge(line):
"""
Function that merges a single row or column in 2048.
"""
tile_merged = False
first_element = 0
result = [0 for element in line]
for number in list(line):
if tile_merged == False:
if number != 0 and result[first_element] == 0:
result[first_element] = number
tile_merged = False
elif number != 0 and result[first_element] > 0:
result[first_element] += number
tile_merged = True
first_element += 1
tile_merged = False
return result
print merge([2,0,2,4]) # [4,4,0,0]
print merge([0,0,2,2]) # [4,0,0,0]
print merge([2,2,0,0]) # [4,0,0,0]
print merge([2,2,2,2,2]) # [4,4,2,0,0]
print merge([8,16,16,8]) # [24,24,0,0] should be [8,32,8,0]
any help appreciated.