Prueba y compara el rendimiento de tu PC con nuestro banco de pruebas.

Programación en C - Dudas sobre Conecta 4



  • Alguien puede ayudarme (exlicarme como hago para indicar que dos jugadores inicine el juego ,pero en forma aleatoria. Ya sea el uno oel dos. Se que tengo que usar randomize() y random, pero no se como aplicarlo.
    Gracias



  • Así sin saber cómo tienes hecho el código (supongo que estarás programando un Conecta 4), ni el lenguaje que estás utilizando ni ná de na…, pues es un poco difícil xD



  • estoy usando BORLAND.
    Programacion en C.
    Saludos



  • tengo la struct

    struct jug}
    char nombre [30];
    char Dni [20];
    char color [3];
    ;
    strcut jug jugador1;
    struct jug jugador2;

    aqui vienel el asunto

    randomize ();
    random ()%2+1;



  • no conozco ese randomize ni random.

    Se usa RAND (con la librería #include <stdio.h>).
    Devuelte un integer.

    turno=rand()%1; // Devolerá 0 o 1. Se ejecuta sólo al principio del juego.

    if (turno==1)
    {
    le toca al jugador 1

    // Todo el codigo q kieras y acabas con:
    turno=0;
    }
    else
    {
    al jugador 2

    ..

    turno=1;
    }</stdio.h>


  • Veteranos HL

    Randomize y random no son del C estándar, pero me suena que se usa en muchas implementaciones. Si son equivalentes a srand y rand respectivamente, lo único que hay que hacer es lanzar randomize al principio de la ejecución (para inicializar la semilla) y luego random ().

    Lo que no sé es como funciona la función (valga la redundancia) random. Lo normal es que devuelva un valor entre 0 y x que puede ser 1 o un valor máximo determinado por alguna constante. Lo lógico es que hicieras alguna comprobación tipo.

    SI random()>x/2
    ENTONCES Empieza el jugador 1
    SINO Empieza el jugador 2

    Poniendo en la x el valor máximo que puede devolver random (o el nombre de la constante correspondiente). Con esto aseguras que empieza uno u otro aleatoriamente, pero la probabilidad es del 50% en ambos casos.


Accede para responder