Se trata de una aplicación que pide genera dos números aleatorios y pide al usuario introducir la suma de esos dos números, y cuenta el número de intentos, aciertos y fallos.
El código.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
Elementos=record
aciertos:integer;
fallos:integer;
intentos:integer;
end;
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
elemento:Elementos;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
elemento.aciertos:=0;
elemento.fallos:=0;
elemento.intentos:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
alea1,alea2:integer;
begin
randomize;
alea1:=random(102)-25;
alea2:=random(102)-22;
Edit1.Text:=inttostr(alea1);
Edit2.Text:=inttostr(alea2);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
numero,suma:integer;
begin
numero:=strtoint(InputBox('Introduce resultado','Aqui:',''));
{ShowMessage('Introduciste: '+ inttostr(numero)); }
suma:=strtoint(Edit1.Text)+strtoint(Edit2.Text);
if suma = numero then
begin
{aqui deberia incrementarse el valor}
elemento.aciertos:=elemento.aciertos+1;
elemento.intentos:=elemento.intentos+1;
Edit4.Text:=inttostr(elemento.aciertos);
Edit5.Text:=inttostr(elemento.fallos);
Edit6.Text:=inttostr(elemento.intentos);
end
else
begin
{aqui deberia incrementarse el valor}
elemento.fallos:=elemento.fallos+1;
elemento.intentos:=elemento.intentos+1;
Edit4.Text:=inttostr(elemento.aciertos);
Edit5.Text:=inttostr(elemento.fallos);
Edit6.Text:=inttostr(elemento.intentos);
end
end;
end.
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls;
type
Elementos=record
aciertos:integer;
fallos:integer;
intentos:integer;
end;
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
elemento:Elementos;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormCreate(Sender: TObject);
begin
elemento.aciertos:=0;
elemento.fallos:=0;
elemento.intentos:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
alea1,alea2:integer;
begin
randomize;
alea1:=random(102)-25;
alea2:=random(102)-22;
Edit1.Text:=inttostr(alea1);
Edit2.Text:=inttostr(alea2);
end;
procedure TForm1.Button2Click(Sender: TObject);
var
numero,suma:integer;
begin
numero:=strtoint(InputBox('Introduce resultado','Aqui:',''));
{ShowMessage('Introduciste: '+ inttostr(numero)); }
suma:=strtoint(Edit1.Text)+strtoint(Edit2.Text);
if suma = numero then
begin
{aqui deberia incrementarse el valor}
elemento.aciertos:=elemento.aciertos+1;
elemento.intentos:=elemento.intentos+1;
Edit4.Text:=inttostr(elemento.aciertos);
Edit5.Text:=inttostr(elemento.fallos);
Edit6.Text:=inttostr(elemento.intentos);
end
else
begin
{aqui deberia incrementarse el valor}
elemento.fallos:=elemento.fallos+1;
elemento.intentos:=elemento.intentos+1;
Edit4.Text:=inttostr(elemento.aciertos);
Edit5.Text:=inttostr(elemento.fallos);
Edit6.Text:=inttostr(elemento.intentos);
end
end;
end.
Tengo una duda sobre pascal. Con las funciones chr y ord puedo pasar de un código ascii al carácter y viceversa. Que funciones uso para obtener códigos utf-8?
ResponderEliminarTal vez revisando la documentación de FreePascal tengas más alternativas http://www.freepascal.org/docs-html/
ResponderEliminar