Advertisement
YASSINOXTN

2048 Algorithm ( movements )

Oct 11th, 2015
378
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 10.74 KB | None | 0 0
  1. #!/usr/bin/python
  2. # 2048 Movements Algorithm By Yessine Taktak
  3. import random
  4.  
  5. class Game():
  6.     matrix_box = [[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]]
  7.     def __init__(self):
  8.         self.default_position()
  9.         self.build_graphics()
  10.         self.ask_for_movement()
  11.     def ask_for_movement(self):
  12.         while True:
  13.             moveask = raw_input(">>")
  14.             if(moveask == "z"):
  15.                 self.up_movement()
  16.                 self.up_addition()
  17.                 self.build_graphics()
  18.             if(moveask == "s"):
  19.                 self.down_movement()
  20.                 self.down_addition()
  21.                 self.build_graphics()
  22.             if(moveask == "q"):
  23.                 self.right_movement()
  24.                 self.right_addition()
  25.                 self.build_graphics()
  26.             if(moveask == "d"):
  27.                 self.left_movement()
  28.                 self.left_addition()
  29.                 self.build_graphics()
  30.     def default_position(self):
  31.         Game_Box = len(self.matrix_box)-1
  32.         box_x = random.randint(0, Game_Box)
  33.         box_y = random.randint(0, Game_Box)
  34.         self.matrix_box[box_x][box_y] = random.choice([2, 4])
  35.     def full_summary(self, list):
  36.         full_sum = 0
  37.         for item in list:
  38.             full_sum = int(full_sum) + int(len(item))
  39.             return full_sum
  40.     def build_graphics(self):
  41.         for row_column in self.matrix_box:
  42.             print row_column
  43.     def up_movement(self):
  44.         startup_col = 0
  45.         box_rows = len(self.matrix_box)
  46.         for now_col in range(0, box_rows):
  47.             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):
  48.                 if(self.matrix_box[startup_col][now_col] == 0):
  49.                         self.matrix_box[startup_col][now_col] = self.matrix_box[startup_col+1][now_col]
  50.                         self.matrix_box[startup_col+1][now_col] = self.matrix_box[startup_col+2][now_col]
  51.                         self.matrix_box[startup_col+2][now_col] = self.matrix_box[startup_col+3][now_col]
  52.                         self.matrix_box[startup_col+3][now_col] = 0
  53.                 if(self.matrix_box[startup_col+1][now_col] == 0):
  54.                         self.matrix_box[startup_col+1][now_col] = self.matrix_box[startup_col+2][now_col]
  55.                         self.matrix_box[startup_col+2][now_col] = self.matrix_box[startup_col+3][now_col]
  56.                         self.matrix_box[startup_col+3][now_col] = 0
  57.                 if(self.matrix_box[startup_col+2][now_col] == 0):
  58.                         self.matrix_box[startup_col+2][now_col] = self.matrix_box[startup_col+3][now_col]
  59.                         self.matrix_box[startup_col+3][now_col] = 0
  60.     def up_addition(self):
  61.         startup_col = 0
  62.         box_rows = len(self.matrix_box)
  63.         for j in range(0, box_rows):
  64.             if(self.matrix_box[startup_col][j] == self.matrix_box[startup_col+1][j]):
  65.                 self.matrix_box[startup_col][j] = self.matrix_box[startup_col][j] + self.matrix_box[startup_col+1][j]
  66.                 self.matrix_box[startup_col+1][j] = self.matrix_box[startup_col+2][j]
  67.                 self.matrix_box[startup_col+2][j] = self.matrix_box[startup_col+3][j]
  68.                 self.matrix_box[startup_col+3][j] = 0
  69.             if(self.matrix_box[startup_col+1][j] == self.matrix_box[startup_col+2][j]):
  70.                 self.matrix_box[startup_col+1][j] = self.matrix_box[startup_col+1][j] + self.matrix_box[startup_col+2][j]
  71.                 self.matrix_box[startup_col+2][j] = self.matrix_box[startup_col+3][j]
  72.                 self.matrix_box[startup_col+3][j] = 0
  73.             if(self.matrix_box[startup_col+2][j] == self.matrix_box[startup_col+3][j]):
  74.                 self.matrix_box[startup_col+2][j] = self.matrix_box[startup_col+2][j] + self.matrix_box[startup_col+3][j]
  75.                 self.matrix_box[startup_col+3][j] = 0
  76.     def down_movement(self):
  77.         startup_col = 0
  78.         box_rows = len(self.matrix_box)
  79.         for now_col in range(0, box_rows):
  80.             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):
  81.                 if(self.matrix_box[startup_col+3][now_col] == 0):
  82.                         self.matrix_box[startup_col+3][now_col] = self.matrix_box[startup_col+2][now_col]
  83.                         self.matrix_box[startup_col+2][now_col] = self.matrix_box[startup_col+1][now_col]
  84.                         self.matrix_box[startup_col+1][now_col] = self.matrix_box[startup_col][now_col]
  85.                         self.matrix_box[startup_col][now_col] = 0
  86.                 if(self.matrix_box[startup_col+2][now_col] == 0):
  87.                         self.matrix_box[startup_col+2][now_col] = self.matrix_box[startup_col+1][now_col]
  88.                         self.matrix_box[startup_col+1][now_col] = self.matrix_box[startup_col][now_col]
  89.                         self.matrix_box[startup_col][now_col] = 0
  90.                 if(self.matrix_box[startup_col+1][now_col] == 0):
  91.                         self.matrix_box[startup_col+1][now_col] = self.matrix_box[startup_col][now_col]
  92.                         self.matrix_box[startup_col][now_col] = 0
  93.     def down_addition(self):
  94.         startup_col = 0
  95.         box_rows = len(self.matrix_box)
  96.         for j in range(0, box_rows):
  97.             if(self.matrix_box[startup_col+3][j] == self.matrix_box[startup_col+2][j]):
  98.                 self.matrix_box[startup_col+3][j] = self.matrix_box[startup_col+3][j] + self.matrix_box[startup_col+2][j]
  99.                 self.matrix_box[startup_col+2][j] = self.matrix_box[startup_col+1][j]
  100.                 self.matrix_box[startup_col+1][j] = self.matrix_box[startup_col][j]
  101.                 self.matrix_box[startup_col][j] = 0
  102.             if(self.matrix_box[startup_col+2][j] == self.matrix_box[startup_col+1][j]):
  103.                 self.matrix_box[startup_col+2][j] = self.matrix_box[startup_col+2][j] + self.matrix_box[startup_col+1][j]
  104.                 self.matrix_box[startup_col+1][j] = self.matrix_box[startup_col][j]
  105.                 self.matrix_box[startup_col][j] = 0
  106.             if(self.matrix_box[startup_col+1][j] == self.matrix_box[startup_col][j]):
  107.                 self.matrix_box[startup_col+1][j] = self.matrix_box[startup_col+1][j] + self.matrix_box[startup_col][j]
  108.                 self.matrix_box[startup_col][j] = 0
  109.     def right_movement(self):
  110.         startup_col = 0
  111.         box_rows = len(self.matrix_box)
  112.         for j in range(0, box_rows):
  113.             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):
  114.                 if(self.matrix_box[j][startup_col] == 0):
  115.                         self.matrix_box[j][startup_col] = self.matrix_box[j][startup_col+1]
  116.                         self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col+2]
  117.                         self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+3]
  118.                         self.matrix_box[j][startup_col+3] = 0
  119.                 if(self.matrix_box[j][startup_col+1] == 0):
  120.                         self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col+2]
  121.                         self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+3]
  122.                         self.matrix_box[j][startup_col+3] = 0      
  123.                 if(self.matrix_box[j][startup_col+2] == 0):
  124.                         self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+3]
  125.                         self.matrix_box[j][startup_col+3] = 0
  126.     def right_addition(self):
  127.         startup_col = 0
  128.         box_rows = len(self.matrix_box)
  129.         for j in range(0, box_rows):
  130.             if(self.matrix_box[j][startup_col] == self.matrix_box[j][startup_col+1]):
  131.                 self.matrix_box[j][startup_col] = self.matrix_box[j][startup_col]+self.matrix_box[j][startup_col+1]        
  132.                 self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col+2]          
  133.                 self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+3]          
  134.                 self.matrix_box[j][startup_col+3] = 0      
  135.             if(self.matrix_box[j][startup_col+1] == self.matrix_box[j][startup_col+2]):
  136.                 self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col+1]+self.matrix_box[j][startup_col+2]        
  137.                 self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+3]                      
  138.                 self.matrix_box[j][startup_col+3] = 0
  139.             if(self.matrix_box[j][startup_col+2] == self.matrix_box[j][startup_col+3]):
  140.                 self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+2]+self.matrix_box[j][startup_col+3]                            
  141.                 self.matrix_box[j][startup_col+3] = 0      
  142.     def left_movement(self):
  143.         startup_col = 0
  144.         box_rows = len(self.matrix_box)
  145.         for j in range(0, box_rows):
  146.             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):
  147.                 if(self.matrix_box[j][startup_col+3] == 0):
  148.                         self.matrix_box[j][startup_col+3] = self.matrix_box[j][startup_col+2]
  149.                         self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+1]
  150.                         self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col]
  151.                         self.matrix_box[j][startup_col] = 0
  152.                 if(self.matrix_box[j][startup_col+2] == 0):
  153.                         self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+1]
  154.                         self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col]
  155.                         self.matrix_box[j][startup_col] = 0      
  156.                 if(self.matrix_box[j][startup_col+1] == 0):
  157.                         self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col]
  158.                         self.matrix_box[j][startup_col] = 0
  159.     def left_addition(self):
  160.         startup_col = 0
  161.         box_rows = len(self.matrix_box)
  162.         for j in range(0, box_rows):
  163.             if(self.matrix_box[j][startup_col+3] == self.matrix_box[j][startup_col+2]):
  164.                 self.matrix_box[j][startup_col+3] = self.matrix_box[j][startup_col+3]+self.matrix_box[j][startup_col+2]        
  165.                 self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+1]          
  166.                 self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col]        
  167.                 self.matrix_box[j][startup_col] = 0    
  168.             if(self.matrix_box[j][startup_col+2] == self.matrix_box[j][startup_col+1]):
  169.                 self.matrix_box[j][startup_col+2] = self.matrix_box[j][startup_col+2]+self.matrix_box[j][startup_col+1]        
  170.                 self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col]                    
  171.                 self.matrix_box[j][startup_col] = 0
  172.             if(self.matrix_box[j][startup_col+1] == self.matrix_box[j][startup_col]):
  173.                 self.matrix_box[j][startup_col+1] = self.matrix_box[j][startup_col+1]+self.matrix_box[j][startup_col]                              
  174.                 self.matrix_box[j][startup_col] = 0                
  175. Game = Game()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement