Ahoi Leute!
Ich bin dabei ein Brettspiel (ein Rennspiel aus einem Magazin) zu programmieren.
Es wird nach der Reihe gewürfelt und gezogen. Dies ist kein Problem bisher. Doch gibt es spezielle Aktionen auf bestimmten Feldern. Kommt der Spieler auf ein Feld, so muss er nochmals Würfeln, um eine Aktion auszulösen oder auch nicht, halt je nachdem, was er würfelt.
folgendes ist die Würfelfuntion...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| function TBrett.wurf():integer; var cube:integer; begin randomize;sleep(500); cube:=random(6)+1; wurf:=cube; form1.label0.caption:=IntToStr(cube); end; |
und das passiert, wenn man auf den würfel klickt: (dran, ist die spieler-id des Spielers, der dran ist.)
Delphi-Quelltext
1: 2: 3: 4:
| procedure TForm1.Button1Click(Sender: TObject); begin Maxim.setzen(Maxim.dran,Maxim.wurf); end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TBrett.duell(angreifer, verteidiger: integer); begin showmessage('DUELL'); showmessage('Verteidiger Bitte');
showmessage('Angreifer Bitte'); end;
procedure TBrett.setzen(spielerid,anzahl:integer); var nochzusetzen,tfeld,i: integer; begin [...habe hier mal einiges ausgespart...] for i:=1 to 4 do begin if Spieler[i].position=Spieler[spielerid].position-1 then duell(spielerid,i); end;
end; |
sind 2 spieler auf dem selben feld, wird ein Duell ausgeführt und geguckt, ob das Überholmanöver erfolgreich ist oder nicht. Dabei würfelt erst der verteidiger, dann der Angreifer.
in der duell prozudur wäre es natürlich leicht, einfach 2x den computer würfeln zu lassen, doch wie kann ich es anstellen, dass der benutzer 2x auf würfeln klicken muss und dann erst fortgefahren wird?
mfg und schöne Grüße
Barny