ui.. ich verstehe was du meinst. als erstes:
randomize; ist ein befehl der dafür sorgt dass die folgenden aufrufe von random auch wirklich dem zufall entsprechen.
random(range:integer) ist eine funktion die dir einen zufälligen wert zwischen 0 und range-1 zurückliefert. (oder wenn ohne parameter benutzt einen wert zwischen 0 und 1 (real).
du könntest dein wort in einer String variable auslagern und dann per
Delphi-Quelltext
1: 2:
| i:=random(wortlänge+1); MyWort[i] |
auf den buchstaben zugreifen
das ist recht kompliziert... da du auf einzelne buchstaben des edits nicht schreiben, sondern nur lesen kannst (Edit.Text[3]:='x'; klappt nicht...)
jo! mit einem array of string gehts ^^ (vll bietet sich ein dynamischer array an, da man seine länge verändern kann, je nach wort...)
schnapp dir 2 arrays, den ersten mit dem entsprechenden wort, den 2. mit lauter -
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| const dasWort : String = 'Delphi'; var Wort,Striche : Array [1..6] of String;
procedure Create; var i : integer; begin for i := 1 to lenth(daswort) do begin Wort[i] := Daswort[i]; Striche[i]:='-'; end; end; |
als nächstes schreibst du den ganzen Striche array in edit1.Text:
Delphi-Quelltext
1: 2:
| Edit1.Text:=''; for i:=0 to length(dasWort) do Edit1.Text:=Edit1.Text+Striche[i]; |
wenn dann einige sekunden vergangen sind, wählst du eine zufällige zahl aus (i) und:
Delphi-Quelltext
als nächstes nochmal den ganzen striche array in das edit übertragen (siehe oben). du musst natürlich überprüfen, ob der Buchstabe schoneinmal freigegeben wurde, speichere alle i werte in ein dynamisches array und überprüfe alle, bevor du die zahl verwendest. falls sie schoneinmal benutzt wurde, einfach nochmal random benutzen...
(dabei bin ich die ganze zeit vom EDIT als ausgamefeld mit strichen ausgegangen... einfach das edit1.text mit label1.caption (oder wie auch immer) ersetzen ^^)
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.