tô loco

15/03/2003

0

Tipo, eu tava precisando fazer uma coisa tipo assim....

Eu quero gravar num arquivo de texto 30 numeros soteados... mais isso no meio de um arquivo jah existente... entaum eu fiz assim:

If Dinheiro >= 250 then
begin
Randomize;
AssignFile(F3,´bd/dcart.dmg´);
Reset(F3);
Readln(F3,Linha);
TCartas:= StrToInt(DCrip(Linha));
CloseFile(F3);
AssignFile(F3,´bd/´ + Nick + ´.tmp´);
Rewrite(F3);
AssignFile(F4,´bd/´ + Nick + ´.dmu´);
Reset(F4);
Linha:=´´;
I:=1;
While DCrip(Linha) <> ´!Cartas´ do
begin
Readln(F4,Linha);
If I=4 then Writeln(F3,Crip(IntToStr(Dinheiro-250)))
Else If I=5 then Writeln(F3,Crip(IntToStr(nCartas+30)))
Else Writeln(F3,Linha);
I:=I+1;
end;
CloseFile(F3);
Append(F3);
I:=0;
While I<30 do
begin
Carta:= Random(TCartas + 1);
S:=Crip(IntToStr(Carta));
Writeln(F3,S);
i:=i+1;
end;
While not EOF(F4) do
begin
Readln(F4,Linha);
Writeln(F3,Linha);
end;
CloseFile(F3);
CloseFile(F4);
//Erase(F4);
nCartas:= nCartas + 30;
Dinheiro := Dinheiro - 250;
MessageDlg(´Booster comprado com sucesso. Agora você tem mais 30 cartas.´, mtInformation,
[mbOk], 0);
//Rename(F2,´bd/´ + Nick + ´.dmu´);
//Atualizar status
lblNome.Caption := Nick;
lblCartas.Caption := IntToStr(nCartas);
lblBaralhos.Caption := IntToStr(nBaralhos);
lblDinheiro.Caption := IntToStr(Dinheiro);
gbStatus.Visible := True;
end
Else
Begin
MessageDlg(´Dinheiro Insuficiente.´, mtWarning,
[mbOk], 0);
end;

Eis meu problema... casa hora ele grava uma quantidade de numeros diferentes... uma hora 5 outra 10 outra 29... assim naum dah!!! Eu jah to fikando loko!!!

Naum reparem na minha logica... eu sei q ela é um lixo...






Nem Tudo é Verdade


Anonymous

Anonymous

Responder

Posts

15/03/2003

Anonymous

Exemplo prático:

var
{Coordenadas de dois objetos}
X1,Y1,X2,Y2 : integer;

begin
{Se a coordenada X + largura do objeto for igual à coordenada X do outro objeto, significa que eles se colidiram}
If X1 + Objeto1.Width = X2 then
begin
{Colisão horizontal - Objeto um na esquerda, Objeto dois na direita}
end;
{A outra possibilidade de colisão horizontal}
If X2 + Objeto2.Width = X1 then
begin
{Colisão horizontal - Objeto um na direita, Objeto dois na esquerda}
end;
{Se Y1 + altura do Objeto um for igual à Y2, então os dois objetos tão colidindo}
If Y1 + Objeto1.Height = Y2 then
begin
{Colisão vertical - Objeto um em cima, Objeto dois em baixo}
end;
{Outra possibilidade de colisão vertical}
If Y2 + Objeto2.Height = Y1 then
begin
{Colisão vertical - Objeto um em baixo, Objeto dois em cima}
end;

Tudo isso sem nem usar o DelphiX. O DX tem um esquema de efeito de colisão usando o TSprite, classes e tudo mais, mas pode crer que esse jeito é melhor (eu acho melhor, pelo menos).


Yahiko Myoujin,


Responder

15/03/2003

Carnette

Ô malucos sô.....Num tendi nadica de nada de nenhum dos dois...É..Acho que está na hora de rever meus conceito.... :lol:


Responder

16/03/2003

Anonymous

:shock: Será que para o que é estas rotinas, para que serve :lol:


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar