Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # 2048 Movements Algorithm By Yessine Taktak
- import random
- class Game():
- matrix_box = [[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]
- def __init__(self):
- self.default_position()
- self.build_graphics()
- self.ask_for_movement()
- def ask_for_movement(self):
- while True:
- moveask = raw_input(">>")
- if(moveask == "z"):
- self.up_movement()
- self.up_addition()
- self.build_graphics()
- if(moveask == "s"):
- self.down_movement()
- self.down_addition()
- self.build_graphics()
- if(moveask == "q"):
- self.right_movement()
- self.right_addition()
- self.build_graphics()
- if(moveask == "d"):
- self.left_movement()
- self.left_addition()
- self.build_graphics()
- def default_position(self):
- Game_Box = len(self.matrix_box)-1
- box_x = random.randint(0, Game_Box)
- box_y = random.randint(0, Game_Box)
- self.matrix_box[box_x][box_y] = random.choice([2, 4])
- def full_summary(self, list):
- full_sum = 0
- for item in list:
- full_sum = int(full_sum) + int(len(item))
- return full_sum
- def build_graphics(self):
- for row_column in self.matrix_box:
- print row_column
- def up_movement(self):
- startup_col = 0
- box_rows = len(self.matrix_box)
- for now_col in range(0, box_rows):
- if(self.matrix_box[now_col][startup_col] != 0 or self.matrix_box[now_col][startup_col+1] != 0 or self.matrix_box[now_col][startup_col+2] != 0 or self.matrix_box[now_col][startup_col+3] != 0):
- if(self.matrix_box[startup_col][now_col] == 0):
- self.matrix_box[startup_col][now_col] = self.matrix_box[startup_col+1][now_col]
- self.matrix_box[startup_col+1][now_col] = self.matrix_box[startup_col+2][now_col]
- self.matrix_box[startup_col+2][now_col] = self.matrix_box[startup_col+3][now_col]
- self.matrix_box[startup_col+3][now_col] = 0
- if(self.matrix_box[startup_col+1][now_col] == 0):
- self.matrix_box[startup_col+1][now_col] = self.matrix_box[startup_col+2][now_col]
- self.matrix_box[startup_col+2][now_col] = self.matrix_box[startup_col+3][now_col]
- self.matrix_box[startup_col+3][now_col] = 0
- if(self.matrix_box[startup_col+2][now_col] == 0):
- self.matrix_box[startup_col+2][now_col] = self.matrix_box[startup_col+3][now_col]
- self.matrix_box[startup_col+3][now_col] = 0
- def up_addition(self):
- startup_col = 0
- box_rows = len(self.matrix_box)
- for j in range(0, box_rows):
- if(self.matrix_box[startup_col][j] == self.matrix_box[startup_col+1][j]):
- self.matrix_box[startup_col][j] = self.matrix_box[startup_col][j] + self.matrix_box[startup_col+1][j]
- self.matrix_box[startup_col+1][j] = self.matrix_box[startup_col+2][j]
- self.matrix_box[startup_col+2][j] = self.matrix_box[startup_col+3][j]
- self.matrix_box[startup_col+3][j] = 0
- if(self.matrix_box[startup_col+1][j] == self.matrix_box[startup_col+2][j]):
- self.matrix_box[startup_col+1][j] = self.matrix_box[startup_col+1][j] + self.matrix_box[startup_col+2][j]
- self.matrix_box[startup_col+2][j] = self.matrix_box[startup_col+3][j]
- self.matrix_box[startup_col+3][j] = 0
- if(self.matrix_box[startup_col+2][j] == self.matrix_box[startup_col+3][j]):
- self.matrix_box[startup_col+2][j] = self.matrix_box[startup_col+2][j] + self.matrix_box[startup_col+3][j]
- self.matrix_box[startup_col+3][j] = 0
- def down_movement(self):
- startup_col = 0
- box_rows = len(self.matrix_box)
- for now_col in range(0, box_rows):
- if(self.matrix_box[startup_col][now_col] != 0 or self.matrix_box[startup_col+1][now_col] != 0 or self.matrix_box[startup_col+2][now_col] != 0 or self.matrix_box[startup_col+3][now_col] != 0):
- if(self.matrix_box[startup_col+3][now_col] == 0):
- self.matrix_box[startup_col+3][now_col] = self.matrix_box[startup_col+2][now_col]
- self.matrix_box[startup_col+2][now_col] = self.matrix_box[startup_col+1][now_col]
- self.matrix_box[startup_col+1][now_col] = self.matrix_box[startup_col][now_col]
- self.matrix_box[startup_col][now_col] = 0
- if(self.matrix_box[startup_col+2][now_col] == 0):
- self.matrix_box[startup_col+2][now_col] = self.matrix_box[startup_col+1][now_col]
- self.matrix_box[startup_col+1][now_col] = self.matrix_box[startup_col][now_col]
- self.matrix_box[startup_col][now_col] = 0
- if(self.matrix_box[startup_col+1][now_col] == 0):
- self.matrix_box[startup_col+1][now_col] = self.matrix_box[startup_col][now_col]
- self.matrix_box[startup_col][now_col] = 0
- def down_addition(self):
- startup_col = 0
- box_rows = len(self.matrix_box)
- for j in range(0, box_rows):
- if(self.matrix_box[startup_col+3][j] == self.matrix_box[startup_col+2][j]):
- self.matrix_box[startup_col+3][j] = self.matrix_box[startup_col+3][j] + self.matrix_box[startup_col+2][j]
- self.matrix_box[startup_col+2][j] = self.matrix_box[startup_col+1][j]
- self.matrix_box[startup_col+1][j] = self.matrix_box[startup_col][j]
- self.matrix_box[startup_col][j] = 0
- if(self.matrix_box[startup_col+2][j] == self.matrix_box[startup_col+1][j]):
- self.matrix_box[startup_col+2][j] = self.matrix_box[startup_col+2][j] + self.matrix_box[startup_col+1][j]
- self.matrix_box[startup_col+1][j] = self.matrix_box[startup_col][j]
- self.matrix_box[startup_col][j] = 0
- if(self.matrix_box[startup_col+1][j] == self.matrix_box[startup_col][j]):
- self.matrix_box[startup_col+1][j] = self.matrix_box[startup_col+1][j] + self.matrix_box[startup_col][j]
- self.matrix_box[startup_col][j] = 0
- def right_movement(self):
- startup_col = 0
- box_rows = len(self.matrix_box)
- for j in range(0, box_rows):
- if(self.matrix_box[j][startup_col] != 0 or self.matrix_box[j][startup_col+1] != 0 or self.matrix_box[j][startup_col+2] != 0 or self.matrix_box[j][startup_col+3] != 0):
- if(self.matrix_box[j][startup_col] == 0):
- self.matrix_box[j][startup_col] = self.matrix_box[j][startup_col+1]
- self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col+2]
- self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+3]
- self.matrix_box[j][startup_col+3] = 0
- if(self.matrix_box[j][startup_col+1] == 0):
- self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col+2]
- self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+3]
- self.matrix_box[j][startup_col+3] = 0
- if(self.matrix_box[j][startup_col+2] == 0):
- self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+3]
- self.matrix_box[j][startup_col+3] = 0
- def right_addition(self):
- startup_col = 0
- box_rows = len(self.matrix_box)
- for j in range(0, box_rows):
- if(self.matrix_box[j][startup_col] == self.matrix_box[j][startup_col+1]):
- self.matrix_box[j][startup_col] = self.matrix_box[j][startup_col]+self.matrix_box[j][startup_col+1]
- self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col+2]
- self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+3]
- self.matrix_box[j][startup_col+3] = 0
- if(self.matrix_box[j][startup_col+1] == self.matrix_box[j][startup_col+2]):
- self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col+1]+self.matrix_box[j][startup_col+2]
- self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+3]
- self.matrix_box[j][startup_col+3] = 0
- if(self.matrix_box[j][startup_col+2] == self.matrix_box[j][startup_col+3]):
- self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+2]+self.matrix_box[j][startup_col+3]
- self.matrix_box[j][startup_col+3] = 0
- def left_movement(self):
- startup_col = 0
- box_rows = len(self.matrix_box)
- for j in range(0, box_rows):
- if(self.matrix_box[j][startup_col] != 0 or self.matrix_box[j][startup_col+1] != 0 or self.matrix_box[j][startup_col+2] != 0 or self.matrix_box[j][startup_col+3] != 0):
- if(self.matrix_box[j][startup_col+3] == 0):
- self.matrix_box[j][startup_col+3] = self.matrix_box[j][startup_col+2]
- self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+1]
- self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col]
- self.matrix_box[j][startup_col] = 0
- if(self.matrix_box[j][startup_col+2] == 0):
- self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+1]
- self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col]
- self.matrix_box[j][startup_col] = 0
- if(self.matrix_box[j][startup_col+1] == 0):
- self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col]
- self.matrix_box[j][startup_col] = 0
- def left_addition(self):
- startup_col = 0
- box_rows = len(self.matrix_box)
- for j in range(0, box_rows):
- if(self.matrix_box[j][startup_col+3] == self.matrix_box[j][startup_col+2]):
- self.matrix_box[j][startup_col+3] = self.matrix_box[j][startup_col+3]+self.matrix_box[j][startup_col+2]
- self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+1]
- self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col]
- self.matrix_box[j][startup_col] = 0
- if(self.matrix_box[j][startup_col+2] == self.matrix_box[j][startup_col+1]):
- self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+2]+self.matrix_box[j][startup_col+1]
- self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col]
- self.matrix_box[j][startup_col] = 0
- if(self.matrix_box[j][startup_col+1] == self.matrix_box[j][startup_col]):
- self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col+1]+self.matrix_box[j][startup_col]
- self.matrix_box[j][startup_col] = 0
- Game = Game()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement