Triple Triad General

Un lugar donde aprender a jugar a uno de los juegos más populares del mundo Final Fantasy. Entra, gana, comparte y disfruta con este popular juego de cartas junto al resto de alumnos.
User avatar
Viento
Cie'th Ateo
Cie'th Ateo
Posts: 7905
Joined: 13 Aug 2009, 00:41
Twitter: @capitalolvidada

Re: Triple Triad

Post by Viento » 27 Feb 2010, 00:00

Eh, que me he dejado ganar para ver si en la última jugada te volvía a ganar suciamente, pero no ha funcionado xD
悠久の風伝説

User avatar
Pappapishu
Compañero de fatigas
Compañero de fatigas
Posts: 11986
Joined: 31 Jan 2010, 10:43
PSN ID: Pappaìshu
Twitter: @Pappapishu
STEAM: pappapishu
Location: Puerto Pollo, Isla Plunder
Contact:

Re: Triple Triad

Post by Pappapishu » 27 Feb 2010, 00:18

Bueno bueno...te he vuelto a ganar y eso que en el ultimo turno has vuelto a tener un bug a tu favor!!!
Image
https://www.instagram.com/madridwolvesqt/

User avatar
Sinh
Fundador
Fundador
Posts: 6232
Joined: 14 Aug 2009, 00:18
PSN ID: Sinh82
Location: Granaíno en ses Illes Balears
Contact:

Re: Triple Triad

Post by Sinh » 27 Feb 2010, 01:30

Yo creo que el bug podría estar en que la regla suma funciona incluso cuando no hay carta con la que sumar. Es decir, imaginemos que ponemos una carta cuyo borde inferior suma 6 con la del contrario (por ejemplo 1+5). Si en alguno de los otros lados tiene un 6 y no está adyacente a ninguna otra carta, te hace la suma 6+0. Y al haber dos lados que suman seis pues da la vuelta a la otra carta.
Image

User avatar
Pappapishu
Compañero de fatigas
Compañero de fatigas
Posts: 11986
Joined: 31 Jan 2010, 10:43
PSN ID: Pappaìshu
Twitter: @Pappapishu
STEAM: pappapishu
Location: Puerto Pollo, Isla Plunder
Contact:

Re: Triple Triad

Post by Pappapishu » 27 Feb 2010, 08:48

Joe Sinh, pues si....no había pensado en la posibilidad de que sumara un 0, yo creo que va a ser eso. Pero la regla suma no se aplica SOLO si todos los lados la cumplen? Por esa regla de tres debería ser siempre los 4 lados, por lo que hay un segundo bug en esa suma!
Image
https://www.instagram.com/madridwolvesqt/

User avatar
Inferno
Amigo De Ultros
Amigo De Ultros
Posts: 5420
Joined: 07 Sep 2009, 01:45
PSN ID: Blackvals
Location: Vic

Re: Triple Triad

Post by Inferno » 01 Mar 2010, 00:38

Probando con Black Flare hemos hallado el problema, que es como apuntábamos, que suma con 0 cuando no hay carta.
Primero ha pasado lo mismo de antes:
Image

Yo he puesto el acorazado sobre el venoma, 6 arriba (6+0=6) y 1 abajo, que sumado con el 5 son 6 también. Su carta se ha girado.
Pero para no limitarlo a ese caso, hemos probado con otra cosa. Él ha puesto una carta de lado izquierdo 7 y derecho 2, de forma que 7+0=7 y 2+5=7. La carta se ha girado.
Así que el problema está ahí.
Este es el scan sacado por Black de la segunda jugada:
Image

User avatar
Pappapishu
Compañero de fatigas
Compañero de fatigas
Posts: 11986
Joined: 31 Jan 2010, 10:43
PSN ID: Pappaìshu
Twitter: @Pappapishu
STEAM: pappapishu
Location: Puerto Pollo, Isla Plunder
Contact:

Re: Triple Triad

Post by Pappapishu » 01 Mar 2010, 17:33

Pues creo que el bug ya se puede considerar completamente descubirto jeje, gran trabajo global de todos los usuarios del foro. Viento, ¿Hay algo que se pueda hacer para solucionarlo? ¿Necesitas ayuda para echarle un ojo?
Image
https://www.instagram.com/madridwolvesqt/

User avatar
Viento
Cie'th Ateo
Cie'th Ateo
Posts: 7905
Joined: 13 Aug 2009, 00:41
Twitter: @capitalolvidada

Re: Triple Triad

Post by Viento » 01 Mar 2010, 18:10

Pues lo tengo que mirar tranquilamente, pero si algún valiente quiere mirarlo ahí dejo el código de la parte que recorre las cartas. Obviamente es PHP.

Code: Select all

                  
                     while ($tt_combo_size >= $tt_combo_counter)
                     {         
                        $tt_x = $tt_x_list[$tt_combo_counter];
                        $tt_y = $tt_y_list[$tt_combo_counter];
                        $tt_combo_counter += 1;
                     
                        //Same Wall
                        if ($tt_duel_info['rule_same_wall'] == 'yes')
                        {
                           for ($n = 1; $n <= 3; $n=$n+1)
                           {
                              $tt_board_card_up[$n][4] = 10;
                              $tt_board_card_down[$n][0] = 10;
                              $tt_board_card_left[4][$n] = 10;
                              $tt_board_card_right[0][$n] = 10;
                           }
                        }
                        
                        //Same
                        if ($tt_duel_info['rule_same'] == 'yes')
                        {
                           if ($tt_board_card_up[$tt_x][$tt_y] == $tt_board_card_down[$tt_x][$tt_y - 1] && $tt_board_card_right[$tt_x][$tt_y] == $tt_board_card_left[$tt_x + 1][$tt_y])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x][$tt_y - 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y - 1;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x + 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x + 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x][$tt_y - 1] = $tt_player;
                              $tt_board_card_marked[$tt_x + 1][$tt_y] = $tt_player;
                           }
                           if ($tt_board_card_right[$tt_x][$tt_y] == $tt_board_card_left[$tt_x + 1][$tt_y] && $tt_board_card_down[$tt_x][$tt_y] == $tt_board_card_up[$tt_x][$tt_y + 1])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x + 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x + 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x][$tt_y + 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y + 1;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x + 1][$tt_y] = $tt_player;
                              $tt_board_card_marked[$tt_x][$tt_y + 1] = $tt_player;
                           }
                           if ($tt_board_card_down[$tt_x][$tt_y] == $tt_board_card_up[$tt_x][$tt_y + 1] && $tt_board_card_left[$tt_x][$tt_y] == $tt_board_card_right[$tt_x - 1][$tt_y])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x][$tt_y + 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y + 1;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x - 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x - 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x][$tt_y + 1] = $tt_player;
                              $tt_board_card_marked[$tt_x - 1][$tt_y] = $tt_player;
                           }
                           if ($tt_board_card_left[$tt_x][$tt_y] == $tt_board_card_right[$tt_x - 1][$tt_y] && $tt_board_card_up[$tt_x][$tt_y] == $tt_board_card_down[$tt_x][$tt_y - 1])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x - 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x - 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x][$tt_y - 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y - 1;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x - 1][$tt_y] = $tt_player;
                              $tt_board_card_marked[$tt_x][$tt_y - 1] = $tt_player;
                           }
                           if ($tt_board_card_up[$tt_x][$tt_y] == $tt_board_card_down[$tt_x][$tt_y - 1] && $tt_board_card_down[$tt_x][$tt_y] == $tt_board_card_up[$tt_x][$tt_y + 1])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x][$tt_y - 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y - 1;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x][$tt_y + 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y + 1;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x][$tt_y - 1] = $tt_player;
                              $tt_board_card_marked[$tt_x][$tt_y + 1] = $tt_player;
                           }
                           if ($tt_board_card_right[$tt_x][$tt_y] == $tt_board_card_left[$tt_x + 1][$tt_y] && $tt_board_card_left[$tt_x][$tt_y] == $tt_board_card_right[$tt_x - 1][$tt_y])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x + 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x + 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x - 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x - 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x + 1][$tt_y] = $tt_player;
                              $tt_board_card_marked[$tt_x - 1][$tt_y] = $tt_player;
                           }
                        }
                        
                        //Same Wall
                        if ($tt_duel_info['rule_same_wall'] == 'yes')
                        {
                           for ($n = 1; $n <= 3; $n=$n+1)
                           {
                              $tt_board_card_up[$n][4] = 0;
                              $tt_board_card_down[$n][0] = 0;
                              $tt_board_card_left[4][$n] = 0;
                              $tt_board_card_right[0][$n] = 0;
                           }
                        }
                        
                        //Plus
                        if ($tt_duel_info['rule_plus'] == 'yes')
                        {
                           if ($tt_board_card_up[$tt_x][$tt_y] + $tt_board_card_down[$tt_x][$tt_y - 1] == $tt_board_card_right[$tt_x][$tt_y] + $tt_board_card_left[$tt_x + 1][$tt_y])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x][$tt_y - 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y - 1;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x + 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x + 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x][$tt_y - 1] = $tt_player;
                              $tt_board_card_marked[$tt_x + 1][$tt_y] = $tt_player;
                           }
                           if ($tt_board_card_right[$tt_x][$tt_y] + $tt_board_card_left[$tt_x + 1][$tt_y] == $tt_board_card_down[$tt_x][$tt_y] + $tt_board_card_up[$tt_x][$tt_y + 1])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x + 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x + 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x][$tt_y + 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y + 1;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x + 1][$tt_y] = $tt_player;
                              $tt_board_card_marked[$tt_x][$tt_y + 1] = $tt_player;
                           }
                           if ($tt_board_card_down[$tt_x][$tt_y] + $tt_board_card_up[$tt_x][$tt_y + 1] == $tt_board_card_left[$tt_x][$tt_y] + $tt_board_card_right[$tt_x - 1][$tt_y])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x][$tt_y + 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y + 1;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x - 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x - 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x][$tt_y + 1] = $tt_player;
                              $tt_board_card_marked[$tt_x - 1][$tt_y] = $tt_player;
                           }
                           if ($tt_board_card_left[$tt_x][$tt_y] + $tt_board_card_right[$tt_x - 1][$tt_y] == $tt_board_card_up[$tt_x][$tt_y] + $tt_board_card_down[$tt_x][$tt_y - 1])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x - 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x - 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x][$tt_y - 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y - 1;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x - 1][$tt_y] = $tt_player;
                              $tt_board_card_marked[$tt_x][$tt_y - 1] = $tt_player;
                           }
                           if ($tt_board_card_up[$tt_x][$tt_y] + $tt_board_card_down[$tt_x][$tt_y - 1] == $tt_board_card_down[$tt_x][$tt_y] + $tt_board_card_up[$tt_x][$tt_y + 1])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x][$tt_y - 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y - 1;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x][$tt_y + 1] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x;
                                    $tt_y_list[$tt_combo_size] = $tt_y + 1;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x][$tt_y - 1] = $tt_player;
                              $tt_board_card_marked[$tt_x][$tt_y + 1] = $tt_player;
                           }
                           if ($tt_board_card_right[$tt_x][$tt_y] + $tt_board_card_left[$tt_x + 1][$tt_y] == $tt_board_card_left[$tt_x][$tt_y] + $tt_board_card_right[$tt_x - 1][$tt_y])
                           {
                              //Combo
                              if ($tt_duel_info['rule_combo'] == 'yes')
                              {
                                 if ($tt_board_card_marked[$tt_x + 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x + 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                                 if ($tt_board_card_marked[$tt_x - 1][$tt_y] == $tt_opponent)
                                 {
                                    $tt_combo_size += 1;
                                    $tt_x_list[$tt_combo_size] = $tt_x - 1;
                                    $tt_y_list[$tt_combo_size] = $tt_y;
                                    $tt_combo = true;
                                 }
                              }
                              $tt_board_card_marked[$tt_x + 1][$tt_y] = $tt_player;
                              $tt_board_card_marked[$tt_x - 1][$tt_y] = $tt_player;
                           }
                        }
                        
                        //Elemental
                        if ($tt_duel_info['rule_elemental'] == 'yes')
                        {
                           for ($y = 1; $y <= 3; $y=$y+1)
                           {
                              for ($x = 1; $x <= 3; $x=$x+1)
                              {
                                 $tt_element_position = ($y - 1) * 3 + $x;
                                 if ($tt_duel_info['element_'. $tt_element_position] != 0)
                                 {
                                    if ($tt_board_card_element[$x][$y] == $tt_duel_info['element_'. $tt_element_position])
                                    {
                                       $tt_board_card_up[$x][$y] += 1;
                                       $tt_board_card_down[$x][$y] += 1;
                                       $tt_board_card_left[$x][$y] += 1;
                                       $tt_board_card_right[$x][$y] += 1;
                                    }
                                    else
                                    {
                                       $tt_board_card_up[$x][$y] -= 1;
                                       $tt_board_card_down[$x][$y] -= 1;
                                       $tt_board_card_left[$x][$y] -= 1;
                                       $tt_board_card_right[$x][$y] -= 1;
                                    }
                                 }
                              }
                           }
                        }
                        
                        //Normal
                        if ($tt_board_card_up[$tt_x][$tt_y] > $tt_board_card_down[$tt_x][$tt_y - 1])
                        {
                           //Combo
                           if ($tt_combo == true && $tt_board_card_marked[$tt_x][$tt_y - 1] == $tt_opponent)
                           {
                              $tt_combo_size += 1;
                              $tt_x_list[$tt_combo_size] = $tt_x;
                              $tt_y_list[$tt_combo_size] = $tt_y - 1;
                           }
                           $tt_board_card_marked[$tt_x][$tt_y - 1] = $tt_player;
                        }
                        if ($tt_board_card_right[$tt_x][$tt_y] > $tt_board_card_left[$tt_x + 1][$tt_y])
                        {
                           //Combo
                           if ($tt_combo == true && $tt_board_card_marked[$tt_x + 1][$tt_y] == $tt_opponent)
                           {
                              $tt_combo_size += 1;
                              $tt_x_list[$tt_combo_size] = $tt_x + 1;
                              $tt_y_list[$tt_combo_size] = $tt_y;
                           }
                           $tt_board_card_marked[$tt_x + 1][$tt_y] = $tt_player;
                        }
                        if ($tt_board_card_down[$tt_x][$tt_y] > $tt_board_card_up[$tt_x][$tt_y + 1])
                        {
                           //Combo
                           if ($tt_combo == true && $tt_board_card_marked[$tt_x][$tt_y + 1] == $tt_opponent)
                           {
                              $tt_combo_size += 1;
                              $tt_x_list[$tt_combo_size] = $tt_x;
                              $tt_y_list[$tt_combo_size] = $tt_y + 1;
                           }
                           $tt_board_card_marked[$tt_x][$tt_y + 1] = $tt_player;
                        }
                        if ($tt_board_card_left[$tt_x][$tt_y] > $tt_board_card_right[$tt_x - 1][$tt_y])
                        {
                           //Combo
                           if ($tt_combo == true && $tt_board_card_marked[$tt_x - 1][$tt_y] == $tt_opponent)
                           {
                              $tt_combo_size += 1;
                              $tt_x_list[$tt_combo_size] = $tt_x - 1;
                              $tt_y_list[$tt_combo_size] = $tt_y;
                           }
                           $tt_board_card_marked[$tt_x - 1][$tt_y] = $tt_player;
                        }

                        //Elemental
                        if ($tt_duel_info['rule_elemental'] == 'yes')
                        {
                           for ($y = 1; $y <= 3; $y=$y+1)
                           {
                              for ($x = 1; $x <= 3; $x=$x+1)
                              {
                                 $tt_element_position = ($y - 1) * 3 + $x;
                                 if ($tt_duel_info['element_'. $tt_element_position] != 0)
                                 {
                                    if ($tt_board_card_element[$x][$y] == $tt_duel_info['element_'. $tt_element_position])
                                    {
                                       $tt_board_card_up[$x][$y] -= 1;
                                       $tt_board_card_down[$x][$y] -= 1;
                                       $tt_board_card_left[$x][$y] -= 1;
                                       $tt_board_card_right[$x][$y] -= 1;
                                    }
                                    else
                                    {
                                       $tt_board_card_up[$x][$y] += 1;
                                       $tt_board_card_down[$x][$y] += 1;
                                       $tt_board_card_left[$x][$y] += 1;
                                       $tt_board_card_right[$x][$y] += 1;
                                    }
                                 }
                              }
                           }
                        }
                     }
悠久の風伝説

User avatar
Pappapishu
Compañero de fatigas
Compañero de fatigas
Posts: 11986
Joined: 31 Jan 2010, 10:43
PSN ID: Pappaìshu
Twitter: @Pappapishu
STEAM: pappapishu
Location: Puerto Pollo, Isla Plunder
Contact:

Re: Triple Triad

Post by Pappapishu » 01 Mar 2010, 18:47

Suponiendo que

$tt_board_card_up[$tt_x][$tt_y] + $tt_board_card_down[$tt_x][$tt_y - 1] == $tt_board_card_right[$tt_x][$tt_y] + $tt_board_card_left[$tt_x + 1][$tt_y]

sea lo que creo que es...en ningun lugar veo que haya una comprobación previa de que exista una carta en el espacio con el que se compara, por lo que lo lógico s que no enceuntre valor y se quede con el valor predeterminado (0 en este caso). Este problema no se presenta nunca con la regla Same (Igual) porque jamás habrá un 0=0 pero con la suma si se puede producir el ya mítico 5+1 = 6+0

por lo que yo creo que la solución sería una de las siguientes

1 - if (carta1 = true AND carta2 = true AND $tt_board_card_up[$tt_x][$tt_y] + $tt_board_card_down[$tt_x][$tt_y - 1] == $tt_board_card_right[$tt_x][$tt_y] + $tt_board_card_left[$tt_x + 1][$tt_y])


2 - más sencillo aún para pensarlo ya que no hay que buscar campos, pero más largo de programar (de hecho puedes copiarlo y pegarlo para el primer caso cambiando el AND por lo que se use en el php que ahora no me apetece mirarlo en googleXD, habría que hacer lo mismo para los otros 3 casos)

if ($tt_board_card_up[$tt_x][$tt_y] != 0 AND $tt_board_card_down[$tt_x][$tt_y - 1] != 0 AND $tt_board_card_right[$tt_x][$tt_y] != 0 AND $tt_board_card_left[$tt_x + 1][$tt_y] != 0 AND $tt_board_card_up[$tt_x][$tt_y] + $tt_board_card_down[$tt_x][$tt_y - 1] == $tt_board_card_right[$tt_x][$tt_y] + $tt_board_card_left[$tt_x + 1][$tt_y])
Image
https://www.instagram.com/madridwolvesqt/

User avatar
Black Flare
Plumaje Fénix
Plumaje Fénix
Posts: 796
Joined: 18 Jan 2010, 13:35
Location: Pitágoras.

Re: Triple Triad

Post by Black Flare » 01 Mar 2010, 22:50

O como dice pappa de ponerle que en cada vez que se quiera verificar que exista la carta, o lo que creo que puede ser algo más sencillo que es que los valores de los laterales de las posiciones vacias valga -10 en vez de 0 (No he mirado a fondo y no se exactamente si sería capaz de llevarlo a cabo), ya que siendo la mayor jugada de A (10), nunca valdría más de 0 y no se podría dar la suma.

Pero bueno, si no está diseñado como yo pienso entonces la solución de pappa me parece buena :ugeek:
Image

User avatar
Pappapishu
Compañero de fatigas
Compañero de fatigas
Posts: 11986
Joined: 31 Jan 2010, 10:43
PSN ID: Pappaìshu
Twitter: @Pappapishu
STEAM: pappapishu
Location: Puerto Pollo, Isla Plunder
Contact:

Re: Triple Triad

Post by Pappapishu » 01 Mar 2010, 23:20

Es que no es que los laterales valgan 0 si no que no tienen valor así que toma el valor por defecto, 0. No creo que se le pueda asignar un valor a un campo inexistente y en caso se hacerlo solo se podría hacer en los casos en los que se diera el caso de ese campo por lo que habría que hacer las mismas comprobaciones que yo he propuesto para, posteriormente, darle ese valor. Algo que no sería necesario ya que ya se conocería que no hay valorXD
Image
https://www.instagram.com/madridwolvesqt/

Post Reply