juego memoria en c++

Iniciado por jperez2016, 4 Junio 2014, 00:45 AM

0 Miembros y 3 Visitantes están viendo este tema.

jperez2016

buenas noches gente
como puedo hacer para cargar una matriz de 10x10 con 50 pares de numeros o caracteres aleatorios sin repetir en C++?
ayuda por favor

:)

engel lex

Qué sabes de c++ y que llevas hecho? Donde tienes la duda de como continuar
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

jperez2016

while(aleatorio1<50)
    {
      randomize();
      num1=random(10);
      num2=random(10);
      num3=random(10);
      num4=random(10);
      num5=random(50);
      if(num1==num3&&num2==num4)
        eselmismo='s';
      if (eselmismo='n')
        {
          for(i=0;i<TAM;i++)
            {
              for(j=0;j<TAM;j++)
                {
                  if(simbolos1[j]==num5)
                    repite++;
                }
            }
        }
      if (repite<2)
        {
          simbolos1[num1][num2]=num5;
          simbolos1[num3][num4]=num5;
          aleatorio1++;
        }
      repite=0;
    }

  for(i=0;i<TAM;i++)
    {
      for(j=0;j<TAM;j++)
        {
          cout<<"     "<<simbolos1[j];
        }
      cout<<"\n";
    }
  /*while(aleatorio1<50)
    {
      while(num<60||num>255)
        {
          srand(time(0));
          num=rand();
          letra=(char)num;
        }
      while(num1<0||num1>TAM||num2<0||num2>TAM||num3<0||num3>TAM||num4<0||num4>TAM||(num1==num3 && num2==num4))
        {
          srand(time(0));
          num1=rand();

          num2=rand();

          num3=rand();

          num4=rand();
        }
      for(i=0;i<50;i++)
        {
          if(cargados==letra)
            {
              serepite='s';
            }
        }
      if(serepite=='n')
        {
          simbolos1[num1][num2]=letra;
          simbolos1[num3][num4]=letra;
          num5=num-60;
          cargados[num5]=letra;
          aleatorio1++;
        }
    }

esto queda en un loop infinito :(

ivancea96

Pusiste al principio if(eselmismo='n') cuando deberias poner ==

srand(time(0)); se coloca solo 1 vez al principio del programa, y nada más.

Bueno son un par de cosas que vi. Tienes varias cosas que revisar en el código :o


PD: La próxima vez, coloca las etiquetas GeSHi del foro para colocar códigos:

Código (cpp) [Seleccionar]
int main(){
    return 0;
}

jperez2016

como colocos las etiquetas GeSHI esas? :huh:

ivancea96

Donde los botones de negrita, cursiva, etc tienes a la derecha del todo GeSHi.

jperez2016

aún poniendo srand(time(0)) no funciona :(

ivancea96

Te voy a dejar un truquito para no tener que poner ese tremendo while() con todas las condiciones de los aleatorios. Eso podría dejar el programa ahí indefinidamente.

Código (cpp) [Seleccionar]
int num = rand()%(MAX-MIN+1)+MIN;

Eso genera un valor entre MAX y MIN, ambos incluídos.

El operador % devuelve el resto de una división. Poner rand()%num va a devolver un número que será el resto de rand()/num. El resto va desde 0 hasta num-1, eso ya son matemáticas.

Lo de mínimo ya solo es un arreglo matemático de fácil comprensión.

Suerte. Si implementas eso, y revisas el código, quizás te vaya.

jperez2016

Tengo un problema, cuando ingreso una letra en el jugador entro en un loop infinito. Me pueden ayudar?

Código (cpp) [Seleccionar]
do //ciclo hacer mientras el jugador ingresado sea incorrecto.
  {

    cout<<"\n";
    cout<<"Que jugador comienza? ";   //pregunta que jugador comienza.
    cin>>jug;   //guardo el jugador.
    getch();
    if (jug!=1&&jug!=2) //me fijo si ingreso un jugador que es incorrecto.
      {
        cout<<"No existe ese jugador. ";  //muestro que no es un jugador válido.
        cin>>jug;
      }
    else   //si el jugador es correcto.
   jug_correcto='s';
  }while(jug_correcto=='n');

rir3760

Cita de: jperez2016 en 14 Junio 2014, 03:47 AMTengo un problema, cuando ingreso una letra en el jugador entro en un loop infinito.
Cuando tengas una duda o problema con uno de tus programas por favor publica el código fuente completo.

En el fragmento que publicas la segunda lectura (cuando el valor de "jug" es diferente de 1 y 2) es innecesaria y deberías evitar el uso de la biblioteca conio de Borland, mas información en la pagina |Lo que no hay que hacer en C/C++. Nivel basico|

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language