procedure TForm1.Button1Click(Sender: TObject);
var x : integer;
begin
x:=random(100);
Edit1.Text:=intToStr(x);
end;
end.
kun painan kolme kertaa nappia..se arpoo aina samat numerot.. 0, 3, 86. Miten saisin tuon arpomaan ihan randomina kaikki?
Jaa? Mikähän kieli mahtaa olla kyseessä? Käytä kooditageja ks. Ohjeet.
Asiaan. Luultavasi siksi, että et ole alustanut randomin siementä.
Käytän Borland Delphi 7
Randomize; alustaa satunnaislukugeneraattorin, eli joko FormCreate-proseduuriin tai vaikeammin sinne projektin koodiin ennen riviä Application.Initialize (muistaakseni), vaikka tuskin tiedät, mistä se löytyy :)
Juu..Se piti laittaa Randomize; ton x:=random(100) :n yläpuolelle. Miks toi Sleep(500); pysäyttää koko ohjelman? Mä haluisin sellasen Että Kun painaa nappulaa niin Edit1 näyttää tekstiä..ja sitten kestää vähän aikaa .. ja sitten se näyttää toista tekstinpätkää.. Tiedän että se onnistuis Timerillä, mutta se Timer on huono tohon ohjelmaan mitä teen
No koska Sleep nyt sattuu pysäyttämään koko säikeen. Ei siinä paljon muuta voi kuin laittaa timerin.
Ei kannata laittaa Randomizea tuohon samaan proseduuriin, vaan vain kerran ohjelman alkuun.
Ja yritä ihmeessä nimetä havainnollisemmin nuo komponentit. Edit1 ei ole kiveen kirjoitettu totuus, sitä voi kyllä muuttaa.
var x, y : Integer;
a, b : integer;
isku : real;
begin
isku:=StrToFloat(Label4.Caption);
x:=200;
y:=200;
randomize;
a:=random(100);
b:=random(50);
begin
Edit1.Text:='Iskit viholliseen: ' +intToStr(a);
Label4.Caption:=intToStr(y - a);
Edit2.Text:='Vihollinen iski sinuun: ' +intToStr(b);
Label2.Caption:=intToStr(x - b);
begin
Repeat
Label5.Caption:=intToStr(a + a);
Until(isku=0);
end;
end;
end;
end.
Mä teen tollasta tekstipeliä.. Ja olisin tehnyt silleen että Edit1 näyttää kummatkin lyönnit..Mutta nyt on toi ongelmana että miten saan noista energioista aina miinustettua sen lyönti iskun?
1. Käytä kooditageja.
2. Lue Pascal-opassarja.
3. Käytä standardin mukaista vähennyslaskun merkintätapaa (-
) ja Pascalin sijoitusoperaattoria (:=
).
Miten voi yhden luvun vähentäminen olla niin kovin vaikeaa? Ja jos tekstipelin teet, niin tee edes tekstipohjaisena äläkä mihinkään laatikkoon. Eli tee Console Application.
Joo.. Tiedän, Console Application on parempi.. Muttakun en tajua sitä "Cin >> b" juttua. (Toi oli siis C++:sta)
Olen lukenut Pascal oppaat tuolta, mutta en varmaankaan niin ajatuksen kanssa :/
Älä nyt C++:ssaa tähän sotke. Pascal on paljon helpompi. Mutta niin kauan kuin et opi konsoliohjelmaa tekemään, niin on hieman tyhmää säätää tekstilaatikoilla. Niskasta kiinni ja kaikessa rauhassa opettelemaan.
Joo..Tarkoitin sitä tuolla C++:lla että mikä on se CIN >> B; käännettynä Pascalille?
No mene nyt kiltisti lukemaan opassarja. Periaatteesta en nyt suostu neuvomaan aivan perusasioita, jotka lukevat suoraan oppaassa.
Edit: Hyvä on, myönnetään, että se on hieman kaukana, nimittäin neljännessä osassa tiedostonkäsittelyn lomassa.
WriteLn('Anna luku: '); ReadLn(A); WriteLn('Antamasi luku on ', A, ', eli suunnilleen 2 * ', A div 2);
Edit2: Muokkaisin oppaita oitis hieman n00b-ystävällisempään muotoon eli niin, että ruudulle tulostus tulisi aiemmin, mutta tallennus ei näköjään toimi juuri nyt ^^. Eli joskus toiste pitää yrittää muistaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.