Fecha y hora actual: Sábado 24 Ago 2019 05:09
Índice del Foro

Foros de programación informática, diseño gráfico y Web

En esta comunidad intentaremos dar soporte de programación a todos los niveles, desde principiantes a profesionales de la informática, desarrollo de programas, programación web y mucho más.

Programando desde 0: 13- Un proyecto dificil: Master Mind.

Responder al Tema Ir a página Anterior1234567Siguiente

Índice del Foro > Programación en general > Programando desde 0: 13- Un proyecto dificil: Master Mind.

Autor Mensaje
Kyshuo Ayame
Moderador Global


Registrado: 07 Ene 2011
Mensajes: 1043

Mensaje Publicado: Domingo 30 Oct 2011 16:46

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

Bien, lo de RANDOMIZE lo has solucionado solo. Como ves, si no lo usas, el procedimiento RANDOM no genera nada al azar.

El segundo problema radica en la condición de salida de tu WHILE principal

Código:
while ( cont_opor<oportu) or (contbuena=4) do


Es una condición OR. El operador OR es verdadero (TRUE) si al menos una de ambas condiciones es verdadera y la evlua por circuito corto. Es decir, mira la primera condicion, si es TRUE, el OR devolverá TRUE y no mirará la segunda porque ya no importa su valor. Si la primera es FALSE ahí sí mirará la segunda condición y si esta es TRUE el OR devolverá TRUE, en caso contrario devolverá FALSE.

Entonces, tu OR mira primero si cont_opor<oportu, como eso será TRUE ya ni mirará la segunda condición, devolverá TRUE y por ende el WHILE volverá a entrar al bucle.

Tienes dos formas de solucionar eso, una es modificando apenas ese OR que tienes ahí, y otra es utilizando un AND en vez de un OR aunque con mucho cuidado.

Te dejaré pensar un poco más. Si aún no puedes solucionar tu problema, dímelo y te daré la solución explícita.

Saludos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
sr floyd
Usuario Activo


Registrado: 05 Sep 2011
Mensajes: 196

Mensaje Publicado: Domingo 30 Oct 2011 20:56

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

solucionado!! jeje corregí el condicional y queda asi:

Código:
while (contbuena < 4 ) and ( cont_opor<oportu)


Ok

Le reduje el rango al pensador, ahora los valores están en el rango [a,j] ya que 27 posibilidades eran demasiadas jeje.
solo falta un pequeño detallito, al reducirle el rango a [a,j] la posibilidad de que el random repita caracteres en el mismo arreglo aumentan, entonces lo obligaré a que no lo haga y asimismo advertir al usuario de lo mismo.
te estaré comentando si tengo alguna dificultad en ello...
Mientras, sigo leyendo las demás lecciones las cuales están muy interesantes!
nos vemos, voy para la de funciones Fumao

Volver arriba
Ver perfil del usuario Enviar mensaje privado MSN Messenger
Kyshuo Ayame
Moderador Global


Registrado: 07 Ene 2011
Mensajes: 1043

Mensaje Publicado: Domingo 30 Oct 2011 21:37

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

Muy buen trabajo, estaré a tu disposición.

Saludos amigo.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
sr floyd
Usuario Activo


Registrado: 05 Sep 2011
Mensajes: 196

Mensaje Publicado: Lunes 31 Oct 2011 21:51

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

hola profe ! aqui está el código que he redactado para tal fin.
lo he ejecutado varias veces y efectivamente no me ha arrojado caracteres repetidos; sin embargo, mi duda está en el else ya que no sé si al llegar allí la función random redefina el valor de np[j] capturado en la linea 23 o si lo deja igual. Me refiero a:

Código:
else
         NP[j]:= chr(random(10)+97);


muchas gracias kishuo!

Volver arriba
Ver perfil del usuario Enviar mensaje privado MSN Messenger
sr floyd
Usuario Activo


Registrado: 05 Sep 2011
Mensajes: 196

Mensaje Publicado: Lunes 31 Oct 2011 21:54

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

este es el código:

Código:
program random_prueba;


const
largo_cod = 4;

type
arreglo= array[1..largo_cod] of char;

var
n,j: integer;
np: arreglo;

begin
randomize;
np[1]:=chr(random(10)+97);



for j:=2 to largo_cod do
begin

np[j]:=chr(random(10)+97);
n:=1;
 repeat
 if np[j]<>np[n] then
 n:=n+1
 else
 np[j]:=chr(random(10)+97);
 until n=j;

end;

for j:=1 to largo_cod do
write(np[j]);
readln;

end.
[/code]

Volver arriba
Ver perfil del usuario Enviar mensaje privado MSN Messenger
sr floyd
Usuario Activo


Registrado: 05 Sep 2011
Mensajes: 196

Mensaje Publicado: Lunes 31 Oct 2011 22:22

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

ya sé donde pueod estar cometiendo un grave error; estoy utilizando el operador "<>" entre variables tipo char y no núméricas, creo que en ese sentido debería arrojar en algún momento un error el código.
entonces deberia colocar asi:



Código:
 repeat
 if ord(np[j])<>ord(np[n]) then
 n:=n+1


para pasar la variable tipo char a numérica.
lo probaré asi a ver que pasa . . .[/b]

Volver arriba
Ver perfil del usuario Enviar mensaje privado MSN Messenger
sr floyd
Usuario Activo


Registrado: 05 Sep 2011
Mensajes: 196

Mensaje Publicado: Martes 01 Nov 2011 02:30

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

ok después de ese pequeño cambio lo he ejecutado 33 veces y no me dió ningún error, de todas maneras como dices tu, eso no quiere decir que no lo va a haber después.

Volver arriba
Ver perfil del usuario Enviar mensaje privado MSN Messenger
sr floyd
Usuario Activo


Registrado: 05 Sep 2011
Mensajes: 196

Mensaje Publicado: Sábado 05 Nov 2011 09:00

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

aqui está el código 8creo que terminado) del master mind....

Código:
program master_ultimate;

const
largo_cod=4;
oportu=10;

type
arreglo= array[1..largo_cod] of char;

var
i,j: integer;
contreg,contbuena,n: integer;
cont_opor: integer;
boleano,exito,error: boolean;
u: integer;
NA,NP: arreglo;

BEGIN
randomize;

//// MENSAJE DE INTRODUCCION///
write('              DISPONE DE ',oportu,' OPORTUNIDADES PARA ACERTAR');
writeln;
write('Rango de posibilidades = [a,j]');
writeln;
//*******************************///

//ASIGNACION DE VALORES A NP[j]///
NP[1]:= chr(random(10)+97);

for j:=2 to largo_cod do
begin
NP[j]:=chr(random(10)+97);
n:=1;
repeat
if ord(NP[j])<>ord(NP[n]) then
n:=n+1
else
NP[j]:= chr(random(10)+97);
until n=j;
end;

// INICIO DE CICLOS///
//******************//
cont_opor:=0;

WHILE (contbuena <4) and (cont_opor<oportu) do

Begin
cont_opor:=cont_opor+1;
//Lectura y escritura de NA[i] ///
// emite un error mientras hayan letras repetidas en el arreglo
repeat
error:=false;
write(cont_opor,') ');
write('digite na: ');
for i:=1 to largo_cod do
read(NA[i]);
readln;
i:=1;

 while (i<=largo_cod-1) and (error= false) do
 begin
 u:=1;
 i:=i+1;

    while (u<=i-1) and (NA[u]<>NA[i]) do

    u:=u+1;
    if u<=i-1 then
    begin
    error:= true;
    writeln('error');
    end
    else
    error:= false;

 end;

until error=false;


writeln;
for i:=1 to largo_cod do
write(NA[i]);
contbuena:=0;
contreg:=0;
writeln;
//**********************************///

i:=0;
while(i<(largo_cod+1)) do
begin
i:=i+1;
j:=0;

repeat
j:=j+1;
if (NA[i]=NP[j]) and (i<>j) then
contreg:= contreg+1
else
if (NA[i]=NP[j]) and (i=j) then
contbuena:=contbuena+1;
until (j=largo_cod) or (contbuena=4);
end;
write('buenas: ',contbuena,' ');
write('regulares: ',contreg);
writeln;
writeln;

END; // end del while superior

if contbuena=4 then
write('HAS GANADO!! LAS LETRAS A ADIVINAR ERAN: ')
else
write('Has perdido las letras a adivinar eran: ');

for j:=1 to largo_cod do
write(NP[j]);
readln;

END.



cualquier corrección te agradeceria Kyshuo! Ok

Volver arriba
Ver perfil del usuario Enviar mensaje privado MSN Messenger
sr floyd
Usuario Activo


Registrado: 05 Sep 2011
Mensajes: 196

Mensaje Publicado: Jueves 10 Nov 2011 09:22

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

hola Kyshuo he revisado el codigo arriba y cometí un pequeño error al postearlo, pido el favor a la administracion de borrarlo y en su lugar dejar el código que sigue...muchas muchas gracias....

Volver arriba
Ver perfil del usuario Enviar mensaje privado MSN Messenger
sr floyd
Usuario Activo


Registrado: 05 Sep 2011
Mensajes: 196

Mensaje Publicado: Jueves 10 Nov 2011 09:32

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

hola Kyshuo, aqui el código de master mind (creo que finalizado) lo he revisado varias veces y me ha funcionado correctamente.... el código verifica que el arreglo generado por la máquina no contenga caracteres repetidos al igual que emite error si el usuario lo hace.
Además hay un sencillo menú que permite elegir nivel y de acuerdo al nivel el número de oportunidades...por fa verificalo y si tienes alguna sugerencia te lo agradezco!! gracias!!

Código:
program master_mind_ultimate;
uses crt;
const
largo_cod=4;


type
arreglo= array[1..largo_cod] of char;

var
aux_oportu: char;
oportu: integer;
i,j,u: integer;
contreg,contbuena,n: integer;
cont_opor: integer;
boleano,exito,error: boolean;
NA,NP: arreglo;

BEGIN
randomize;
clrscr;

/// MENSAJE DE INTRODUCCION///
writeln('ESGOJA NIVEL DE JUEGO: ');
writeln('nivel básico:   1');
writeln('nivel medio:    2');
writeln('nivel avanzado: 3');
write(': ');
read(aux_oportu);
readln;
case aux_oportu of
'1': oportu:=20;
'2': oportu:=15;
'3': oportu:=10;
end;
clrscr;
writeln('            DISPONE DE ',oportu,' OPORTUNIDADES PARA ACERTAR');
writeln;
writeln('rango de posibilidades = [a,j]');
writeln;

//ASIGNACION DE VALORES A NP[J] ////
repeat
error:= false;
for j:=1 to largo_cod do
NP[j]:= chr(random(10)+97);
j:=1;

 while(j<=largo_cod-1) and (error=false) do
 begin
 u:=1;
 j:=j+1;
      while(u<=j-1) and (NP[u]<>NP[j]) do
      u:=u+1;
      if u<=j-1 then
      error:=true
      else
      error:=false;
 end;
until error= false;
writeln;

//verificar valor con que finalizan variables//
//***************************************//
//           INICIO DE CICLOS     ////
cont_opor:=0;

WHILE (contbuena <4) and (cont_opor<oportu) do
BEGIN

cont_opor:=cont_opor+1;

// lectura y escritura de NA[i]
//evita repeticion de caracteres digitados
 repeat
 error:=false;
 write(cont_opor,') ');
 write('digite caracteres: ');
 for i:=1 to largo_cod do
 read(NA[i]);
 readln;
 i:=1;

  while(i<=largo_cod-1) and (error=false) do
  begin
  u:=1;
  i:=i+1;
    while (u<=i-1) and (NA[u]<>NA[i]) do
    u:=u+1;
    if u<=i-1 then
    begin
    error:= true;
    writeln('error digitos repetidos');
    end
    else
    error:=false;
  end;
until error=false;
writeln;
for i:=1 to largo_cod do
write(NA[i]);
writeln;


// ********fin lectura NA[i] *************///
contbuena:=0;
contreg:=0;
i:=0;
while(i<=largo_cod-1) do
begin
i:=i+1;
j:=0;
 repeat
 j:=j+1;
 if (NA[i]=NP[j]) and (i<>j) then
 contreg:=contreg+1
 else
 if (NA[i]=NP[j]) and (i=j) then
 contbuena:= contbuena+1;
 until (j=largo_cod) or ( contbuena=4);
 end; // end del while i<largo_cod

 write('buenas: ',contbuena,' ');
 write('regulares: ',contreg);
 writeln;
 writeln;
 end;

 //END del while superior ////

 if contbuena=4 then
 write('HAS ADIVINADO!! LAS LETRAS ERAN ')
 else
 write('Has perdido las letras a adivinar eran ');

 for j:=1 to largo_cod do
 write(NP[j]);

 readln;
END.

Volver arriba
Ver perfil del usuario Enviar mensaje privado MSN Messenger
Kyshuo Ayame
Moderador Global


Registrado: 07 Ene 2011
Mensajes: 1043

Mensaje Publicado: Jueves 10 Nov 2011 18:47

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

Al parecer todo funciona perfecto. Has hecho un gran trabajo y de verdad me alegra mucho que hayas logrado realizar este programa.

Te comento que dicho reto se planteó como primer proyecto en la asignatura Programación1 de Facultad de Ingeniería donde estudio. Luego pidieron que se pudieran ingresar caracteres repetidos.

Finalmente había que agregar al proyecto la posibilidad de jugar como pensador, es decir, que nosotros pensáramos un código y luego la cpu intentara adivinarlo basándose en las notas que nosotros le pasábamos.

Incluso la cpu debía darse cuenta si nosotros le estábamos haciendo trampa y las notas que le ingresábamos estaban mal. Igualmente, los proyectos planteados al final del curso de Pascal estan a ese nivel y corresponden a diseños de los profesores de facultad. Así que lo que vas aprendiendo está a nivel universitario.

Saludos.

P.D.: Publicaré tu código en las soluciones y pediré a la administración que envíe un correo a los apuntados al curso para que la vean.

Gracias por todo.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
sr floyd
Usuario Activo


Registrado: 05 Sep 2011
Mensajes: 196

Mensaje Publicado: Jueves 10 Nov 2011 19:25

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

Si hay alguien a quien agradecerle es a Kishuo !!

Volver arriba
Ver perfil del usuario Enviar mensaje privado MSN Messenger
Sebastián Marcos
Usuario Inquieto


Registrado: 04 Oct 2011
Mensajes: 133

Mensaje Publicado: Martes 27 Dic 2011 06:33

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

Hola a todos !!!. Luego de haber llegado a la lección 24, regresé a esta (lección13_ Un proyecto díficil: MASTER MIND), pues sabía que la tenía pendiente, y me alegro de haberlo hecho, pues se plantea un problema muy completo que sirve para consolidar los conocimientos dados en el curso hasta ahora.
Inclusive pienso realizar una versión del programa usando subprogramas. Para los que no están interiiorizados con lo que digo, ya lo verán a partir de la próxima lección.

Publicaré mi código, pero antes debo decir algunas cosas.
1) Despúes de haber dado muchas vueltas, la idea de cómo generar el código aleatorio la tomé del compañero Sr Floyd. Mi idea al principio era generar el código, usando la función random en cada una de las celdas de un arreglo de largo LARGO_CODIGO. Busqué bastante la forma de hacerlo de modo tal que si se repetía una letra usando la función random, se volviera a usar la misma función hasta que no se repetiera, sin la necesidad de obtener todo el código nuevamente con letras distintas (como hizo Sr Floyd). Creo que mi idea complicaba mucho las cosas, pero me quedé con la duda si se podía hacer de esa forma.

2) Si bien yo tomé una idea de un compañero, le dí muchas vueltas antes, y me permito aconsejarles a los que se dispongan a resolver este problema que no miren código de otros compañeros que ya realizaron el programa, por lo menos al principio, hay que sentarse, pensar, equivocarse, volver a empezar, etc. Traten de plasmar la idea que tengan en la cabeza, luego, si no es la forma más apropiada se cambiará. Esa es la forma de aprender, por lo menos así lo pienso yo.

3) Le hecho varias pruebas al programa y aparentemente no tiene fallos, claro está que ésto no es garantía de que nos los tenga.

Eso es todo. Un abrazo grande para todos, y por supuesto para nuestro profesor Kyshuo.

Aquí el código de Master Mind:

Código:
program MasterMind;

const
  MAXIMO_INTENTOS= 10;
  LARGO_CODIGO= 4;
  PRIMERA_LETRA= 'A';
  ULTIMA_LETRA= 'F';

type
  codigo= array[1..LARGO_CODIGO] of char;
                                             
var
  codigoPens: codigo;
  rango: integer;   //rango numérico de letras posibles para el código.
  i,j,k: integer;
  letraRep: boolean;   {booleano para el caso de que se repitan letras en
                    el código generado al azar y en el código del adivinador}
  error: boolean;  {booleano para checkear el código ingresado por el usuario}
  codigoAdiv: codigo;
  intento: integer;
  acierto: boolean;
  cuentaBuenos, cuentaReg: integer;

begin
  randomize;
  //rango numérico de letras del código.
  rango:=ord(ULTIMA_LETRA) - ord(PRIMERA_LETRA) + 1;

  repeat
  ///generamos un posible código (puede tener letras repetidas).
    for i:=1 to LARGO_CODIGO do
      codigoPens[i]:=chr(ord(PRIMERA_LETRA) + random(rango));

    i:=1;
    repeat
      i:=i+1;
      j:=1;
      while (j <= i-1) and (codigoPens[j] <> codigoPens[i]) do
        j:=j+1;
      //chequeamos por qué se salió del while.
      if j <= i-1 then
        letraRep:=true
      else
        letraRep:= false;
    until (i= LARGO_CODIGO) or (letraRep= true);

  until not letraRep;  {Salimos del repeat cuando se genere un código sin
                         letras repetidas}
  writeln();

  ///Lectura y validación del código del adivinador.
  intento:=0;
  writeln('Rango: [',PRIMERA_LETRA,'...',ULTIMA_LETRA,']');
  writeln('Largo del código: ',LARGO_CODIGO);
  writeln();
  writeln('Dispone de ',MAXIMO_INTENTOS,' intentos para adivinar.');
  writeln();

  repeat
    error:= false;
    intento:=intento+1;
    repeat
      i:=0;
      write(intento,') ');
      //Con este while vemos si el código ingresado tiene el largo correcto.
      while (not eoln) and (i<=LARGO_CODIGO - 1) do
      begin
        i:=i+1;
        read(codigoAdiv[i]);
      end;

      {Vemos por qué se salió del while}
      if (eoln) and (i= LARGO_CODIGO) then  {Si el código ingresado tiene el
                                            largo correcto}
      begin
        readln();    //Consumimos el caracter de fin de linea.

        {Vemos si los carácteres del código ingresado están en el rango
        correcto.}
        i:=1;
        while (i<= LARGO_CODIGO) and (codigoAdiv[i] >= PRIMERA_LETRA) and
                  (codigoAdiv[i] <= ULTIMA_LETRA) do
          i:=i+1;
        {Observar que al evaluar por circuito corto, si todas las letras
        del código están en el rango, al salir del ciclo anterior se tiene
        el valor i= LARGO_CODIGO + 1}

        //Chequeamos que no haya carácteres repetidos.
        //Reutilizamos el código usado para chequear el código generado
        //al azar.
        j:=1;
        repeat
          j:=j+1;
          k:=1;
          while (k <= j-1) and (codigoAdiv[k] <> codigoAdiv[j]) do
            k:=k+1;
            //chequeamos por qué se salió del while.
            if k <= j-1 then
               letraRep:=true
            else
              letraRep:= false;
        until (j= LARGO_CODIGO) or (letraRep= true);

        if (i> LARGO_CODIGO) and (not letraRep) then
        begin
           error:=false;

          //Contamos buenos y regulares.
          //Primeros los buenos.
          cuentaBuenos:=0;
          acierto:=false;
          for j:=1 to LARGO_CODIGO do
          begin
            if codigoAdiv[j]= codigoPens[j] then
              cuentaBuenos:=cuentaBuenos + 1;
            if cuentaBuenos= LARGO_CODIGO then
              acierto:=true
            else
              acierto:=false;
          end;
          //Contamos los regulares.
          cuentaReg:=0;
          for j:=1 to LARGO_CODIGO do
            for k:=1 to LARGO_CODIGO do
              if (codigoAdiv[k]= codigoPens[j]) and (k <> j) then
                cuentaReg:=cuentaReg + 1;
          //Mostramos el número de buenos y regulares.
          writeln(cuentaBuenos,' ',cuentaReg);
        end
        else
        begin
          error:=true;
          writeln('ERROR');
        end;
        end
        else     {O, si el código ingresado NO tiene el largo correcto}
        begin
          error:=true;
          writeln('ERROR');
          readln;
        end;
    until (not error)  or (acierto);
  until (acierto) or (intento=MAXIMO_INTENTOS);

  {Mostramos resultados}
  if acierto then
  begin
    writeln('Correcto. Ha acertado');
    writeln('Fin del juego');
  end
  else
  begin
    writeln('Se alcanzó el número máximo de intentos');
    write('El código era: ');
    for j:=1 to LARGO_CODIGO do
      write(codigoPens[j]);
    writeln();
    writeln('Fin del juego');
  end;

readln;
end.


Volver arriba
Ver perfil del usuario Enviar mensaje privado
Kyshuo Ayame
Moderador Global


Registrado: 07 Ene 2011
Mensajes: 1043

Mensaje Publicado: Martes 27 Dic 2011 16:56

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

Muchas gracias por este gran aporte amigo Sebastián, y por el trabajo realizado en este proyecto. Como todos podrán apreciar, quienes se lanzan a realizar los proyectos que propongo siempre destacan lo mucho que se aprende con ellos, y estoy seguro de que sienten que han consolidado mucho su forma de programar. Esto es por el simple hecho de que se han tenido que quemar las neuronas. Como bien saben, los problemas planteados son de gran complejidad y a veces uno puede pensar que no es posible hacerlos con las herramientas dadas, pero justamente sí lo es y la idea es explotar pocos recursos al máximo.

Muchos saludos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Sebastián Marcos
Usuario Inquieto


Registrado: 04 Oct 2011
Mensajes: 133

Mensaje Publicado: Martes 27 Dic 2011 18:02

Título del mensaje: Re: Programando desde 0: 13- Un proyecto dificil: Master Min

Responder citando

Muchas gracias a ti Kyshuo por este gran curso y por el apoyo constante.

Reitero una duda que me dejó el proyecto MasterMind, la pregunto pues tal vez es una técnica a generalizar en problemas donde se quiera generar un código aleatorio CON CARÁCTERES DISTINTOS (usando la función Random).
Cuando se quiere generar un tal código, por ejemplo con un arreglo, ¿conviene entrar en un bucle hasta que se obtengan todos los carácteres diferentes?. ¿Este procedimiento es más apropiado que analizar cada vez que se obtiene un caracter al azar si es repetido o no en relación a los anteriores, y modificarlo sin llegar a generar todo el código nuevamente?.
Pregunto, porque al principio lo quise hacer así en el proyecto, pero me complicaba bastante. En particular, había logrado que cada nuevo caracter generado se comparara con el anterior, y si era igual a éste, nuevamente se generaba un caracter al azar hasta que fuera distinto; pero lo que complicaba era que, por ejemplo, si estaba en el lugar cuatro del arreglo, chequeaba que el caracter fuera distinto al anterior, pero podía darse que los carácteres de los lugares uno y tres (por ejemplo) fueran iguales.

Muchas gracias y hasta pronto.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
Responder al Tema Ir a página Anterior1234567Siguiente
Mostrar mensajes anteriores:   
Ir a:  
Todas las horas están en GMT + 2 Horas

Temas relacionados

Tema Autor Foros Respuestas Publicado
El foro no contiene ningún mensaje nuevo

Buenas desde el sur del sur =)

Maugarni Preséntate a la comunidad 1 Jueves 22 Ago 2019 14:09 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Hola desde bcn

Dav2k6 Preséntate a la comunidad 2 Miércoles 26 Jun 2019 19:22 Ver último mensaje
El foro no contiene ningún mensaje nuevo

Existen problemas al descargar musica desde you...

SusanaP Tu PC 2 Martes 26 Mar 2019 19:22 Ver último mensaje
El foro no contiene ningún mensaje nuevo

hola!! los saludo desde argentina

mery Preséntate a la comunidad 2 Jueves 13 Dic 2018 17:28 Ver último mensaje
El tema está bloqueado: no pueden editarse ni agregar mensajes.

Solicito programadores para mi proyecto

alexpin Bolsa de trabajo 0 Miércoles 23 May 2018 22:53 Ver último mensaje
Panel de Control
No puede crear mensajes, No puede responder temas, No puede editar sus mensajes, No puede borrar sus mensajes, No puede votar en encuestas,