Ver Mensaje Individual
  #5  
Antiguo 23-03-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Reputación: 24
Caro Va por buen camino
Cita:
Empezado por loadminds Ver Mensaje
bueno gente logre que funcione pero me quedo alguna que otra duda minima.
Antes de consultarles doy una idea mas o menos de como seria el Form, se ingresa una nueva palabra en un Tmaskedit de otro Form, que se almacena en un string y se visualiza su inicial y tantos guiones como letras resten en este formato 'L _ _ _ _ _ '. Tengo 6 Timages que voy mostrando y ocultando de acuerdo a los errores, que se contabilizan tambien en un Tedit y finalmente un boton por cada letra:

Tedit.Text:=palabra[1]; //inicial
for i:=2 to length(palabra) do
Tedit.Text:=Tedit.Text+' _ '; // resto de las letras separadas por espacio para poder contar la cant

y al ir adivinando letra a letra modifico la palabra en la posicion de la letra por un '_' y en una segunda variable string que contiene todos guiones por la o las letras adivinadas. Asi se me iria "formando" en la variable auxiliar la palabra letra a letra. Finalmente muestro la variable auxiliar con la inicial incluida en el Tedit de esta forma:

procedure actualizarletra(i:integer; letra:char);
begin
palabra[i]:='_';
palabramodificada[i]:=letra;
Tedit.Text:=palabramodificada;
end;

Al ser char, no puedo meter el espacio adelante ni atras para mantener el formato inicial y no quedar separacion entre los guiones ('L______' sin poder contar las q qdan) Se les ocurre alguna idea para lograrlo?me suena a demasiado sencillo pero no le encuentro la vuelta.
Y una ultima duda pero primordial, es como terminar el juego, (el gameover es facil, hay un limite en cantidad de errores) pero para ganarlo se me ocurre analizar la variable palabra verificando que sean todos guiones (la palabra ya se descubrio) o viceversa con la variable auxiliar, pero deberia hacerlo cada vez que clickeo una letra?
Hola de nuevo, no te endiendo muy bien, que recuerde este jueguito consiste si introduces o seleccionas una letra, se busca en todas las posiciones donde se encuentra y se reemplaza la letra en todas esas posiciones y también tienes la opción de indicar directamente toda la palabra, claro que tiene numero n de intentos.

Lo que se me ocurre es esto, digamos que introduces la letra desde un Edit y lo que se va formando lo muestras en un label.

Código Delphi [-]
var
 Aux, Palabra : String;
 Ind : Integer;
begin
  //En Aux estaría la palabra completa que viene de tu otro form
 Aux := 'Algo';
 //En tu label como dices tu, estaría la inicial y los guiones osea A___
 //y lo guardamos también en palabra
 Palabra := Label.Caption;
 
 //En edit1 esta la letra que ha introducido, buscamos y reemplazamos
 While Pos(Edit1.Text, Aux) > 0 do
  begin
   Ind := Pos(Edit1.Text, Aux);
   Aux[Ind] := '_';
   Palabra[Ind] := Edit1.Text[1];
  end;
 Label2.Caption := Palabra; //Actualizamos nuestro label
 Edit1.Clear;

Ahora para saber si ha ganado, en tu label no tendría que haber ningún guión, sería hacer un "Pos" , deberías también dar la opción de introducir toda la palabra y si es igual a la que tienes, entonces ya ha ganado sino, que siga introduciendo letras hasta el numero de veces que tu definas.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita