SirCumferance

Gem Match

May 4th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///@description Check the sum of possible moves that we can use to match gems. If it goes to 0, AHM will be activated
  2. make_gems_fallen()
  3. #region Variable settings
  4. var rows = global.board_rows;
  5. var skin;
  6. var list_of_cubes = 0;
  7. for(i=0;i<=rows-1;i++)
  8.     {
  9.         for(j=0;j<=7;j++)
  10.         {
  11.             if gems_fallen[i,j] != noone //&& instance_exists(gems_fallen[i,j])
  12.             {
  13.                 if gems_fallen[i,j].amHype list_of_cubes++
  14.                 gemboard[i,j] = gems_fallen[i,j].skinnum
  15.             }
  16.             else
  17.             {
  18.                 gemboard[i,j] = -1
  19.             }
  20.         }
  21.     }
  22. summoves2 = list_of_cubes //+ future_summoves
  23. #endregion
  24.  
  25. #region SHAPE DRAWING
  26. //1 O - O
  27. //    Θ
  28.  
  29. //2   Θ
  30. //  O - O  
  31.  
  32. //3 O
  33. //  - Θ
  34. //  Ο
  35.  
  36. //4   Ο
  37. //  Θ -
  38. //    Ο
  39.  
  40. //5 Ο
  41. //  Ο
  42. //  - Θ
  43.  
  44. //6  Ο
  45. //   Ο
  46. // Θ -
  47.  
  48. //7  - Θ
  49. //   Ο
  50. //   O
  51.  
  52. //8 Θ -
  53. //    Ο
  54. //    O
  55.  
  56. //9 - O O
  57. //  Θ
  58.  
  59. //10 Θ
  60. //  - O O
  61.  
  62. //11     Θ
  63. //  O O -
  64.  
  65. //12 O O -
  66. //       Θ
  67.  
  68. //13 Θ
  69. //   -
  70. //   Ο
  71. //   Ο
  72.  
  73. //14 O
  74. //   O
  75. //   -
  76. //   Θ
  77.  
  78. //15 O Ο - Θ
  79.  
  80. //16 Θ - Ο Ο
  81. #endregion
  82.  
  83. #region THE BIG SEX
  84. for(i=0;i<=7;i++)
  85.     {
  86.     for(j=0;j<=7;j++)
  87.         {  
  88.             //1
  89.             if (i >=1) && (j >= 1 && j <= board_xsize-2)
  90.             {
  91.             //first check if the two other gems are the same (and not coal/void)
  92.             if gemboard[i-1,j-1] = gemboard[i-1,j+1] && (gemboard[i-1,j-1] >= 0 && gemboard[i-1,j-1] <=6)
  93.                 {
  94.                     skin = gemboard[i-1,j-1]
  95.                     if gemboard[i-1,j] != -1 //now check if the clickable gem is also not void
  96.                         {
  97.                             if gems_fallen[i-1,j].amLocked = 0 //and if its not void, check if its locked
  98.                             {
  99.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  100.                                     {
  101.                                         i_gemtouse[summoves2] = i //the i position of the bot gem to use
  102.                                         j_gemtouse[summoves2] = j // the j position of the bot gem to use
  103.                                         dir_gemtouse[summoves2] = "up" //dir of the gem to make a match by moving it. "right", "left", "up" or "down"
  104.                                         summoves2++
  105.                                     }
  106.                             }
  107.                         }
  108.                 }
  109.             }
  110.             //2
  111.             if (i <=rows-2) && (j >= 1 && j <= board_xsize-2)
  112.             {
  113.             //first check if the two other gems are the same (and not coal/void)
  114.             if gemboard[i+1,j-1] = gemboard[i+1,j+1] && (gemboard[i+1,j-1] >= 0 && gemboard[i+1,j-1] <=6)
  115.                 {
  116.                     skin = gemboard[i+1,j-1]
  117.                     if gemboard[i+1,j] != -1 //now check if the clickable gem is also not void
  118.                         {
  119.                             if gems_fallen[i+1,j].amLocked = 0 //and if its not void, check if its locked
  120.                             {
  121.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  122.                                     {                                    
  123.                                         i_gemtouse[summoves2] = i //the i position of the bot gem to use
  124.                                         j_gemtouse[summoves2] = j // the j position of the bot gem to use
  125.                                         dir_gemtouse[summoves2] = "down" //dir of the gem to make a match by moving it. "right", "left", "up" or "down"
  126.                                         summoves2++
  127.                                     }
  128.                             }
  129.                         }
  130.                 }
  131.             }
  132.             //3
  133.             if (i >=1 && i <=rows-2) && (j >= 1)
  134.             {
  135.             //first check if the two other gems are the same (and not coal/void)
  136.             if gemboard[i-1,j-1] = gemboard[i+1,j-1] && (gemboard[i-1,j-1] >= 0 && gemboard[i-1,j-1] <=6)
  137.                 {
  138.                     skin = gemboard[i-1,j-1]
  139.                     if gemboard[i,j-1] != -1 //now check if the clickable gem is also not void
  140.                         {
  141.                             if gems_fallen[i,j-1].amLocked = 0 //and if its not void, check if its locked
  142.                             {
  143.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  144.                                     {
  145.                                         i_gemtouse[summoves2] = i //the i position of the bot gem to use
  146.                                         j_gemtouse[summoves2] = j // the j position of the bot gem to use
  147.                                         dir_gemtouse[summoves2] = "left" //dir of the gem to make a match by moving it. "right", "left", "up" or "down"
  148.                                         summoves2++
  149.                                     }
  150.                             }
  151.                         }
  152.                 }
  153.             }
  154.             //4
  155.             if (i >=1 && i <=rows-2) && (j <= board_xsize-2)
  156.             {
  157.             //first check if the two other gems are the same (and not coal/void)
  158.             skin = gemboard[i-1,j+1]
  159.             if skin = gemboard[i+1,j+1] && (skin >= 0 && skin <=6)
  160.                 {                    
  161.                     if gemboard[i,j+1] != -1 //now check if the clickable gem is also not void
  162.                         {
  163.                             if gems_fallen[i,j+1].amLocked = 0 //and if its not void, check if its locked
  164.                             {
  165.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  166.                                     {        
  167.                                         i_gemtouse[summoves2] = i
  168.                                         j_gemtouse[summoves2] = j
  169.                                         dir_gemtouse[summoves2] = "right"
  170.                                         summoves2++
  171.                                     }
  172.                             }
  173.                         }
  174.                 }
  175.             }
  176.             //5
  177.             if (i >=2) && (j >= 1)
  178.             {
  179.             //first check if the two other gems are the same (and not coal/void)
  180.             skin = gemboard[i-1,j-1]
  181.             if skin = gemboard[i-2,j-1] && (skin >= 0 && skin <=6)
  182.                 {                    
  183.                     if gemboard[i,j-1] != -1 //now check if the clickable gem is also not void
  184.                         {
  185.                             if gems_fallen[i,j-1].amLocked = 0 //and if its not void, check if its locked
  186.                             {
  187.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  188.                                     {
  189.                                         i_gemtouse[summoves2] = i
  190.                                         j_gemtouse[summoves2] = j
  191.                                         dir_gemtouse[summoves2] = "left"
  192.                                         summoves2++
  193.                                     }
  194.                             }
  195.                         }
  196.                 }
  197.             }
  198.             //6
  199.             if (i >=2) && (j <= board_xsize-2)
  200.             {
  201.             //first check if the two other gems are the same (and not coal/void)
  202.             skin = gemboard[i-1,j+1]
  203.             if skin = gemboard[i-2,j+1] && (skin >= 0 && skin <=6)
  204.                 {                    
  205.                     if gemboard[i,j+1] != -1 //now check if the clickable gem is also not void
  206.                         {
  207.                             if gems_fallen[i,j+1].amLocked = 0 //and if its not void, check if its locked
  208.                             {
  209.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  210.                                     {
  211.                                         i_gemtouse[summoves2] = i
  212.                                         j_gemtouse[summoves2] = j
  213.                                         dir_gemtouse[summoves2] = "right"
  214.                                         summoves2++
  215.                                     }
  216.                             }
  217.                         }
  218.                 }
  219.             }
  220.             //7
  221.             if (i <=rows-3) && (j >= 1)
  222.             {
  223.             //first check if the two other gems are the same (and not coal/void)
  224.             skin = gemboard[i+1,j-1]
  225.             if skin = gemboard[i+2,j-1] && (skin >= 0 && skin <=6)
  226.                 {                    
  227.                     if gemboard[i,j-1] != -1 //now check if the clickable gem is also not void
  228.                         {
  229.                             if gems_fallen[i,j-1].amLocked = 0 //and if its not void, check if its locked
  230.                             {
  231.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  232.                                     {
  233.                                         i_gemtouse[summoves2] = i
  234.                                         j_gemtouse[summoves2] = j
  235.                                         dir_gemtouse[summoves2] = "left"
  236.                                         summoves2++
  237.                                     }
  238.                             }
  239.                         }
  240.                 }
  241.             }
  242.             //8
  243.             if (i <=rows-3) && (j <= board_xsize-2)
  244.             {
  245.             //first check if the two other gems are the same (and not coal/void)
  246.             skin = gemboard[i+1,j+1]
  247.             if skin = gemboard[i+2,j+1] && (skin >= 0 && skin <=6)
  248.                 {                    
  249.                     if gemboard[i,j+1] != -1 //now check if the clickable gem is also not void
  250.                         {
  251.                             if gems_fallen[i,j+1].amLocked = 0 //and if its not void, check if its locked
  252.                             {
  253.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  254.                                     {
  255.                                         i_gemtouse[summoves2] = i
  256.                                         j_gemtouse[summoves2] = j
  257.                                         dir_gemtouse[summoves2] = "right"
  258.                                         summoves2++
  259.                                     }
  260.                             }
  261.                         }
  262.                 }
  263.             }
  264.             //9
  265.             if (i >=1) && (j <= board_xsize-3)
  266.             {
  267.             //first check if the two other gems are the same (and not coal/void)
  268.             skin = gemboard[i-1,j+1]
  269.             if skin = gemboard[i-1,j+2] && (skin >= 0 && skin <=6)
  270.                 {                    
  271.                     if gemboard[i-1,j] != -1 //now check if the clickable gem is also not void
  272.                         {
  273.                             if gems_fallen[i-1,j].amLocked = 0 //and if its not void, check if its locked
  274.                             {
  275.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  276.                                     {
  277.                                         i_gemtouse[summoves2] = i
  278.                                         j_gemtouse[summoves2] = j
  279.                                         dir_gemtouse[summoves2] = "up"
  280.                                         summoves2++
  281.                                     }
  282.                             }
  283.                         }
  284.                 }
  285.             }
  286.             //10
  287.             if (i <=rows-2) && (j <= board_xsize-3)
  288.             {
  289.             //first check if the two other gems are the same (and not coal/void)
  290.             skin = gemboard[i+1,j+1]
  291.             if skin = gemboard[i+1,j+2] && (skin >= 0 && skin <=6)
  292.                 {                    
  293.                     if gemboard[i+1,j] != -1 //now check if the clickable gem is also not void
  294.                         {
  295.                             if gems_fallen[i+1,j].amLocked = 0 //and if its not void, check if its locked
  296.                             {
  297.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  298.                                     {
  299.                                         i_gemtouse[summoves2] = i
  300.                                         j_gemtouse[summoves2] = j
  301.                                         dir_gemtouse[summoves2] = "down"
  302.                                         summoves2++
  303.                                     }
  304.                             }
  305.                         }
  306.                 }
  307.             }
  308.             //11
  309.             if (i <=rows-2) && (j >= 2)
  310.             {
  311.             //first check if the two other gems are the same (and not coal/void)
  312.             skin = gemboard[i+1,j-1]
  313.             if skin = gemboard[i+1,j-2] && (skin >= 0 && skin <=6)
  314.                 {                    
  315.                     if gemboard[i+1,j] != -1 //now check if the clickable gem is also not void
  316.                         {
  317.                             if gems_fallen[i+1,j].amLocked = 0 //and if its not void, check if its locked
  318.                             {
  319.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  320.                                     {
  321.                                         i_gemtouse[summoves2] = i
  322.                                         j_gemtouse[summoves2] = j
  323.                                         dir_gemtouse[summoves2] = "down"
  324.                                         summoves2++
  325.                                     }
  326.                             }
  327.                         }
  328.                 }
  329.             }
  330.             //12
  331.             if (i >= 1) && (j >= 2)
  332.             {
  333.             //first check if the two other gems are the same (and not coal/void)
  334.             skin = gemboard[i-1,j-1]
  335.             if skin = gemboard[i-1,j-2] && (skin >= 0 && skin <=6)
  336.                 {                    
  337.                     if gemboard[i-1,j] != -1 //now check if the clickable gem is also not void
  338.                         {
  339.                             if gems_fallen[i-1,j].amLocked = 0 //and if its not void, check if its locked
  340.                             {
  341.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  342.                                     {
  343.                                         i_gemtouse[summoves2] = i
  344.                                         j_gemtouse[summoves2] = j
  345.                                         dir_gemtouse[summoves2] = "up"
  346.                                         summoves2++
  347.                                     }
  348.                             }
  349.                         }
  350.                 }
  351.             }
  352.             //13
  353.             if (i <= rows-4) && board_ysize > 3
  354.             {
  355.             //first check if the two other gems are the same (and not coal/void)
  356.             skin = gemboard[i+2,j]
  357.             if skin = gemboard[i+3,j] && (skin >= 0 && skin <=6)
  358.                 {                    
  359.                     if gemboard[i+1,j] != -1 //now check if the clickable gem is also not void
  360.                         {
  361.                             if gems_fallen[i+1,j].amLocked = 0 //and if its not void, check if its locked
  362.                             {
  363.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  364.                                     {
  365.                                         i_gemtouse[summoves2] = i
  366.                                         j_gemtouse[summoves2] = j
  367.                                         dir_gemtouse[summoves2] = "down"
  368.                                         summoves2++
  369.                                     }
  370.                             }
  371.                         }
  372.                 }
  373.             }
  374.             //14
  375.             if (i >= 3)
  376.             {
  377.             //first check if the two other gems are the same (and not coal/void)
  378.             skin = gemboard[i-2,j]
  379.             if skin = gemboard[i-3,j] && (skin >= 0 && skin <=6)
  380.                 {                    
  381.                     if gemboard[i-1,j] != -1 //now check if the clickable gem is also not void
  382.                         {
  383.                             if gems_fallen[i-1,j].amLocked = 0 //and if its not void, check if its locked
  384.                             {
  385.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  386.                                     {
  387.                                         i_gemtouse[summoves2] = i
  388.                                         j_gemtouse[summoves2] = j
  389.                                         dir_gemtouse[summoves2] = "up"
  390.                                         summoves2++
  391.                                     }
  392.                             }
  393.                         }
  394.                 }
  395.             }
  396.             //15
  397.             if (j >= 3)
  398.             {
  399.             //first check if the two other gems are the same (and not coal/void)
  400.             skin = gemboard[i,j-2]
  401.             if skin = gemboard[i,j-3] && (skin >= 0 && skin <=6)
  402.                 {                    
  403.                     if gemboard[i,j-1] != -1 //now check if the clickable gem is also not void
  404.                         {
  405.                             if gems_fallen[i,j-1].amLocked = 0 //and if its not void, check if its locked
  406.                             {
  407.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  408.                                     {
  409.                                         i_gemtouse[summoves2] = i
  410.                                         j_gemtouse[summoves2] = j
  411.                                         dir_gemtouse[summoves2] = "left"
  412.                                         summoves2++
  413.                                     }
  414.                             }
  415.                         }
  416.                 }
  417.             }
  418.             //16
  419.             if (j <= board_xsize-4) && board_xsize > 3
  420.             {
  421.             //first check if the two other gems are the same (and not coal/void)
  422.             skin = gemboard[i,j+2]
  423.             if skin = gemboard[i,j+3] && (skin >= 0 && skin <=6)
  424.                 {                    
  425.                     if gemboard[i,j+1] != -1 //now check if the clickable gem is also not void
  426.                         {
  427.                             if gems_fallen[i,j+1].amLocked = 0 //and if its not void, check if its locked
  428.                             {
  429.                                 if gemboard[i,j] = skin && gems_fallen[i,j].amLocked = 0//all good? last thing to do is check if Θ is same and not locked
  430.                                     {
  431.                                         i_gemtouse[summoves2] = i
  432.                                         j_gemtouse[summoves2] = j
  433.                                         dir_gemtouse[summoves2] = "right"
  434.                                         summoves2++
  435.                                     }
  436.                             }
  437.                         }
  438.                 }
  439.             }
  440.            
  441.         }
  442.     }
  443. #endregion
Add Comment
Please, Sign In to add comment