SirCumferance icon

Gem Match

SirCumferance | PRO | 05/05/19 04:15:45 AM UTC | 0 ⭐ | 345 👁️ | Never ⏰ | []
Game Maker |

0 B

|

None

|

0 👍

/

0 👎

///@description Check the sum of possible moves that we can use to match gems. If it goes to 0, AHM will be activated
make_gems_fallen()
#region Variable settings
var rows = global.board_rows;
var skin;
var list_of_cubes = 0;
for(i=0;i<=rows-1;i++)
    {
        for(j=0;j<=7;j++)
        {
            if gems_fallen[i,j] != noone //&& instance_exists(gems_fallen[i,j])
            {
                if gems_fallen[i,j].amHype list_of_cubes++
                gemboard[i,j] = gems_fallen[i,j].skinnum
            }
            else
            {
                gemboard[i,j] = -1
            }
        }
    }
summoves2 = list_of_cubes //+ future_summoves
#endregion
 
#region SHAPE DRAWING
//1 O - O
//    Θ
 
//2   Θ
//  O - O  
 
//3 O
//  - Θ
//  Ο
 
//4   Ο
//  Θ -
//    Ο
 
//5 Ο
//  Ο
//  - Θ
 
//6  Ο
//   Ο
// Θ -
 
//7  - Θ
//   Ο
//   O
 
//8 Θ - 
//    Ο
//    O
 
//9 - O O 
//  Θ
 
//10 Θ 
//  - O O
 
//11     Θ
//  O O -
 
//12 O O -
//       Θ
 
//13 Θ
//   -
//   Ο
//   Ο
 
//14 O
//   O
//   -
//   Θ
 
//15 O Ο - Θ
 
//16 Θ - Ο Ο
#endregion
 
#region THE BIG SEX
for(i=0;i<=7;i++)
    {
    for(j=0;j<=7;j++)
        {   
            //1
            if (i >=1) && (j >= 1 && j <= board_xsize-2)
            {
            //first check if the two other gems are the same (and not coal/void)
            if gemboard[i-1,j-1] = gemboard[i-1,j+1] && (gemboard[i-1,j-1] >= 0 && gemboard[i-1,j-1] <=6)
                {
                    skin = gemboard[i-1,j-1]
                    if gemboard[i-1,j] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i-1,j].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i //the i position of the bot gem to use
                                        j_gemtouse[summoves2] = j // the j position of the bot gem to use
                                        dir_gemtouse[summoves2] = "up" //dir of the gem to make a match by moving it. "right", "left", "up" or "down"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //2
            if (i <=rows-2) && (j >= 1 && j <= board_xsize-2)
            {
            //first check if the two other gems are the same (and not coal/void)
            if gemboard[i+1,j-1] = gemboard[i+1,j+1] && (gemboard[i+1,j-1] >= 0 && gemboard[i+1,j-1] <=6)
                {
                    skin = gemboard[i+1,j-1]
                    if gemboard[i+1,j] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i+1,j].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {                                     
                                        i_gemtouse[summoves2] = i //the i position of the bot gem to use
                                        j_gemtouse[summoves2] = j // the j position of the bot gem to use
                                        dir_gemtouse[summoves2] = "down" //dir of the gem to make a match by moving it. "right", "left", "up" or "down"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //3
            if (i >=1 && i <=rows-2) && (j >= 1)
            {
            //first check if the two other gems are the same (and not coal/void)
            if gemboard[i-1,j-1] = gemboard[i+1,j-1] && (gemboard[i-1,j-1] >= 0 && gemboard[i-1,j-1] <=6)
                {
                    skin = gemboard[i-1,j-1]
                    if gemboard[i,j-1] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i,j-1].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    { 
                                        i_gemtouse[summoves2] = i //the i position of the bot gem to use
                                        j_gemtouse[summoves2] = j // the j position of the bot gem to use
                                        dir_gemtouse[summoves2] = "left" //dir of the gem to make a match by moving it. "right", "left", "up" or "down"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //4
            if (i >=1 && i <=rows-2) && (j <= board_xsize-2)
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i-1,j+1]
            if skin = gemboard[i+1,j+1] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i,j+1] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i,j+1].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {        
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "right"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //5
            if (i >=2) && (j >= 1)
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i-1,j-1]
            if skin = gemboard[i-2,j-1] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i,j-1] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i,j-1].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "left"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //6
            if (i >=2) && (j <= board_xsize-2)
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i-1,j+1]
            if skin = gemboard[i-2,j+1] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i,j+1] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i,j+1].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "right"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //7
            if (i <=rows-3) && (j >= 1)
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i+1,j-1]
            if skin = gemboard[i+2,j-1] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i,j-1] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i,j-1].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "left"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //8
            if (i <=rows-3) && (j <= board_xsize-2)
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i+1,j+1]
            if skin = gemboard[i+2,j+1] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i,j+1] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i,j+1].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "right"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //9
            if (i >=1) && (j <= board_xsize-3)
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i-1,j+1]
            if skin = gemboard[i-1,j+2] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i-1,j] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i-1,j].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "up"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //10
            if (i <=rows-2) && (j <= board_xsize-3)
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i+1,j+1]
            if skin = gemboard[i+1,j+2] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i+1,j] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i+1,j].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "down"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //11
            if (i <=rows-2) && (j >= 2)
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i+1,j-1]
            if skin = gemboard[i+1,j-2] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i+1,j] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i+1,j].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "down"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //12
            if (i >= 1) && (j >= 2)
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i-1,j-1]
            if skin = gemboard[i-1,j-2] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i-1,j] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i-1,j].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "up"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //13
            if (i <= rows-4) && board_ysize > 3
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i+2,j]
            if skin = gemboard[i+3,j] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i+1,j] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i+1,j].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "down"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //14
            if (i >= 3)
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i-2,j]
            if skin = gemboard[i-3,j] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i-1,j] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i-1,j].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "up"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //15
            if (j >= 3)
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i,j-2]
            if skin = gemboard[i,j-3] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i,j-1] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i,j-1].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "left"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            //16
            if (j <= board_xsize-4) && board_xsize > 3
            {
            //first check if the two other gems are the same (and not coal/void)
            skin = gemboard[i,j+2]
            if skin = gemboard[i,j+3] && (skin >= 0 && skin <=6)
                {                    
                    if gemboard[i,j+1] != -1 //now check if the clickable gem is also not void
                        {
                            if gems_fallen[i,j+1].amLocked = 0 //and if its not void, check if its locked
                            {
                                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
                                    {
                                        i_gemtouse[summoves2] = i 
                                        j_gemtouse[summoves2] = j 
                                        dir_gemtouse[summoves2] = "right"
                                        summoves2++
                                    }
                            }
                        }
                }
            }
            
        }
    }
#endregion

Comments