Not moving doesn't add number
This commit is contained in:
@@ -6,8 +6,9 @@ def game_logic(l):
|
|||||||
oldHash = hash(tuple(l))
|
oldHash = hash(tuple(l))
|
||||||
|
|
||||||
line_state = True
|
line_state = True
|
||||||
moved=0
|
global moved
|
||||||
ls=1
|
ls=0
|
||||||
|
#TODO: Should I double merge eg 4 2 2->8 0 0 or 4 4 0
|
||||||
while line_state:
|
while line_state:
|
||||||
for i in range(board_line-1):
|
for i in range(board_line-1):
|
||||||
if l[i+1] == None:
|
if l[i+1] == None:
|
||||||
@@ -22,48 +23,47 @@ def game_logic(l):
|
|||||||
l.insert(i,int(mi)*2)
|
l.insert(i,int(mi)*2)
|
||||||
mi=l.pop(i+1)
|
mi=l.pop(i+1)
|
||||||
l.insert(i+1,None)
|
l.insert(i+1,None)
|
||||||
oldHash = hash(tuple(l))
|
|
||||||
elif l[i] > l[+1]:
|
elif l[i] > l[+1]:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
newHash = hash(tuple(l))
|
newHash = hash(tuple(l))
|
||||||
|
|
||||||
#TODO: don't move when there is no chage
|
|
||||||
if oldHash == newHash and ls==1:
|
|
||||||
moved=moved+1
|
|
||||||
print('Moved in line',moved)
|
|
||||||
ls=i+1
|
|
||||||
|
|
||||||
# print (oldHash,newHash)
|
|
||||||
if oldHash == newHash:
|
if oldHash == newHash:
|
||||||
line_state = False
|
line_state = False
|
||||||
|
# print('Exiting: Boxes moved',ls)
|
||||||
else:
|
else:
|
||||||
|
ls=ls+1
|
||||||
|
moved=moved+ls
|
||||||
oldHash = newHash
|
oldHash = newHash
|
||||||
|
# print('Boxes moved',ls,'Repeating')
|
||||||
|
|
||||||
# return l,moved
|
|
||||||
return l
|
return l
|
||||||
|
|
||||||
def movement():
|
def movement():
|
||||||
m = input('\nMove the numbers: ')
|
m = input('\nMove the numbers: ')
|
||||||
|
global moved
|
||||||
|
moved=0
|
||||||
|
#TOOO: Implement undo function
|
||||||
|
#TODO: Simplify movement
|
||||||
# board_reset = board
|
# board_reset = board
|
||||||
if m == 'h':
|
if m == 'h':
|
||||||
for i in range(0,board_size,board_line):
|
for i in range(0,board_size,board_line):
|
||||||
|
# print('line',i)
|
||||||
board[i:i+board_line]=game_logic(board[i:i+board_line])
|
board[i:i+board_line]=game_logic(board[i:i+board_line])
|
||||||
elif m == 'j':
|
elif m == 'j':
|
||||||
for i in range(board_line):
|
for i in range(board_line):
|
||||||
rl = board[i::board_line]
|
rl = board[i::board_line]
|
||||||
print(rl)
|
# print('column',i)
|
||||||
print(rl[::-1])
|
|
||||||
board[i::board_line]=game_logic(rl[::-1])[::-1]
|
board[i::board_line]=game_logic(rl[::-1])[::-1]
|
||||||
elif m == 'k':
|
elif m == 'k':
|
||||||
for i in range(board_line):
|
for i in range(board_line):
|
||||||
|
# print('column',i)
|
||||||
rl = board[i::board_line]
|
rl = board[i::board_line]
|
||||||
board[i::board_line]=game_logic(rl)
|
board[i::board_line]=game_logic(rl)
|
||||||
elif m == 'l':
|
elif m == 'l':
|
||||||
for i in range(0,board_size,board_line):
|
for i in range(0,board_size,board_line):
|
||||||
|
# print('line',i)
|
||||||
rl = board[i:i+board_line]
|
rl = board[i:i+board_line]
|
||||||
print(rl)
|
|
||||||
print(rl[::-1])
|
|
||||||
board[i:i+board_line]=game_logic(rl[::-1])[::-1]
|
board[i:i+board_line]=game_logic(rl[::-1])[::-1]
|
||||||
# elif m == 'u':
|
# elif m == 'u':
|
||||||
# board=board_reset
|
# board=board_reset
|
||||||
@@ -81,6 +81,7 @@ def print_board():
|
|||||||
for i in range(0,board_size,board_line):
|
for i in range(0,board_size,board_line):
|
||||||
print(board[i:i+board_line])
|
print(board[i:i+board_line])
|
||||||
|
|
||||||
|
#TODO: Make a class so i can remove globals and simplify code
|
||||||
# class Game():
|
# class Game():
|
||||||
# def init():
|
# def init():
|
||||||
game_state = True
|
game_state = True
|
||||||
@@ -94,13 +95,13 @@ for i in range(board_size):
|
|||||||
indices = [i for i, x in enumerate(board) if x == None]
|
indices = [i for i, x in enumerate(board) if x == None]
|
||||||
p = random.choice(indices)
|
p = random.choice(indices)
|
||||||
board[p] = random.choices([2,4],weights=[80,20])[0]
|
board[p] = random.choices([2,4],weights=[80,20])[0]
|
||||||
board_reset=copy.deepcopy(board)
|
# board_reset=copy.deepcopy(board)
|
||||||
|
|
||||||
# def run():
|
# def run():
|
||||||
|
global moved
|
||||||
while game_state:
|
while game_state:
|
||||||
|
|
||||||
print('')
|
print('\nnew choice')
|
||||||
print('new choice')
|
|
||||||
print_board()
|
print_board()
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -110,7 +111,10 @@ while game_state:
|
|||||||
#board=copy.deepcopy(board_reset)
|
#board=copy.deepcopy(board_reset)
|
||||||
# continue
|
# continue
|
||||||
pass
|
pass
|
||||||
# print('coumbagia')
|
|
||||||
|
if moved == 0:
|
||||||
|
continue
|
||||||
|
|
||||||
try:
|
try:
|
||||||
indices = [i for i, x in enumerate(board) if x == None]
|
indices = [i for i, x in enumerate(board) if x == None]
|
||||||
p = random.choice(indices)
|
p = random.choice(indices)
|
||||||
|
|||||||
Reference in New Issue
Block a user