Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - anonimo3.0

#1
   Mmmm y un metodo mas normal? es que soy novato aun  :rolleyes:
#2
  Resulta que estoy haciendo el juego

http://www.subeimagenes.com/img/tic-tac-toe-326706.html

Pero necesito integrarle las tacticas para que no solo juegue al azar

Aqui esta el codigo: http://www.mediafire.com/?dq1ye1usdobr6t8

  He pensado en integrar jugadas como estas, pero nada me ha resultado :S

n1 hasta n9, son las casillas
el jugador humano marca un 0 y el computador marca con un 1.
Las casillas vacias se denotan con un 9..

if (n1 == 9){
  if (n2==n3==0 || n5==n9==0 || n4==n7==0 || n2==n3==1 || n5==n9==1 || n4==n7==1)
    n1 = jugador ; }

if (n2 == 9){
  if (n1==n3==0 || n5==n8==0 || n1==n3==1 || n5==n8==1)
    n2 = jugador ; }

if (n3 == 9){
  if (n1==n2==0 || n5==n7==0 || n6==n9==0 || n1==n2==1 || n5==n7==1 || n6==n9==1)
    n3 = jugador ; }


   
  Alguna sugerencia? :O
#3
Cita de: daniyo en  8 Julio 2012, 13:23 PM
No he leido el codigo, pero segun he entendido quieres hacer lo que haria un switch sin hacer un switch. Ademas los casos son 1, 2, 3, 4, 5, 6, ,7 ,8 y 9. Puedes hacer un bucle for para recorrer los casos del 1 al 9, y si el numero es igual haces lo que sea que quieras hacer y pones una sentencia break.

Saludos.

PD: ¿Porque metes srand(time(NULL)) en el while?


  Vaya! no sabia que se podía usar break sin el switch, jajaja siempre se aprende algo nuevo..
                                                                       
                                                                              //Gracias a todos por responder//  ;-)
#4
Cita de: Khronos14 en  8 Julio 2012, 00:48 AM
anonimo3.0, tienes mal planteado el algoritmo. Yo lo que haría sería un array y quedaría algo como esto:


while(fin_juego != 0){
        if (jugador == ficha_c){
            printf ( "Turno del Computador\n" ) ;
            jugada_ok = 1;
            while (jugada_ok != 0)
{
                jugada = rand() % 9;
if (t[jugada] == 9){
t[jugada] = jugador;
jugada_ok = 0;
}
}           
            }
}


Más simple, ¿verdad?

Lo que no entiendo es para que haces el bucle while de jugada_ok...

Saludos.



  jugada_ok  se supone que funciona de interruptor entre los distintos casos...la cosa es que no me permiten usar switch :( , y donde meto los if en ese algoritmo?
#5
  No lo copie y pegue porque le tengo otras variables xD, asi que no creo que sea eso

while(fin_juego != 0){
        if (jugador == computador) {
            printf ( "Turno del Computador\n" ) ;
            jugada_ok = 1;
            while (jugada_ok != 0){
                srand(time(NULL));
                jugada = rand()%9 +1;
                   if(jugada==1) {
                    if (n1 == 9){
                      n1 = jugador;
                      jugada_ok = 0; }
                   }
                   else if(jugada==2) {
                    if (n2 == 9){
                        n2 = jugador;
                        jugada_ok = 0; }
                     }
                   else if(jugada==3) {
                    if (n3 == 9){
                        n3 = jugador;
                        jugada_ok = 0; }
                      }
                   else if(jugada==4) {
                    if (n4 == 9){
                        n4 = jugador;
                        jugada_ok = 0; }
                       }
                   else if(jugada==5) {
                    if (n5 == 9){
                        n5 = jugador;
                        jugada_ok = 0; }
                        }
                   else if(jugada==6) {
                    if (n6 == 9){
                        n6 = jugador;
                        jugada_ok = 0; }
                        }
                   else if(jugada==7) {
                    if (n7 == 9){
                        n7 = jugador;
                        jugada_ok = 0; }
                        }
                   else if(jugada==8) {
                    if (n8 == 9){
                        n8 = jugador;
                        jugada_ok = 0; }
                        }
                   else if(jugada==9) {
                    if (n9 == 9){
                        n9 = jugador;
                        jugada_ok = 0; }
                        }
            }
#6
No funciona, cae en un ciclo repetitivo  :o me pide que ingrese el numero de casilla todo el tiempo, pero sin hacer nada


#7
  Necesito cambiar este switch a un if-else do-while o for si que se puede xD, pero de ninguna forma me a resultado, alguna sugerencia?
Aqui esta el codigo completo...
http://www.mediafire.com/?kdyjq36v5z62f9y
PD: esta en C (solito).

while(fin_juego != 0){
        if (jugador == ficha_c){
            printf ( "Turno del Computador\n" ) ;
            jugada_ok = 1;
            while (jugada_ok != 0){
                jugada = rand()%9 +1;
                switch ( jugada) {
                    case 1:    if (t1 == 9){
                        t1 = jugador; jugada_ok = 0;
                            }
                            break;
                    case 2: if (t2 == 9){
                                t2 = jugador;
                                jugada_ok = 0;
                            }
                            break;
                    case 3: if (t3 == 9){
                                t3 = jugador;
                                jugada_ok = 0;
                            }
                            break;
                    case 4:    if (t4 == 9){
                                t4 = jugador;
                                jugada_ok = 0;
                            }
                            break;
                    case 5:    if (t5 == 9){
                                t5 = jugador;
                                jugada_ok = 0;
                            }
                            break;
                    case 6:    if (t6 == 9){
                                t6 = jugador;
                                jugada_ok = 0;
                            }
                            break;
                    case 7:    if (t7 == 9){
                                t7 = jugador;
                                jugada_ok = 0;
                            }
                            break;
                    case 8:    if (t8 == 9){
                                t8 = jugador;
                                jugada_ok = 0;
                            }
                            break;
                    case 9:    if (t9 == 9){
                                t9 = jugador;
                                jugada_ok = 0;
                            }
                            break;
                }
            }