Przechodzenie do następnego obrotu pętli po naciśnięciu przycisku

0

Mam takie pytanie odnośnie programu w Delphi.

Muszę napisać program i sytuacja wygląda tak. Po naciśnięciu przycisku następuje rzucenie kością, przesunięcie pionka o podaną ilość pól oraz zmiana gracza na następnego. I teraz to wszystko wykonuje się w pętli repeat...until, aż nie zostanie spełniony jakiś warunek (dopóki jeden z graczy nie wygra)

Mniej więcej chodzi o to, że struktura wygląda tak

 
repeat
    for i:=1 to 4 do begin
          {tutaj następuje rzucenie koscią i przesunięcie pionka}
    end;
until {aż któryś z graczy nie wygra}

i teraz pytanie jak zrobić, aby każdy obrót pętli for wykonywał się dopiero po naciśnięciu przycisku od rzucania kością?

0

Hmm... delphi bazuje na zdarzeniach. Do konkretnej kontrolki podpinasz zdarzenie (tutaj np losowanie+przesunięcie+zmiana gracza). Po każdym wywołaniu tego zdarzenia sprawdzasz np jakąś funkcją, czy gra została zakończona (ktoś wygrał). Absolutnie nie pakujesz tego do kręcącej sie na stałe pętli, bo wtedy aplikacja przestaje odpowiadać na komunikaty z systemu, wiesza sie itp.

0

W Delphi nigdy nic nie pisałem, a teraz zostałem zmuszony..
Mam procedurę

procedure TForm1.Button1Click(Sender: TObject);
begin
end;

I jeśli dobrze rozumiem, to w niej daję losowanie + przesunięcie pionka + zmiana gracza i jak to dalej zrobić?

0

Nie rozumiem za bardzo w czym problem. Na logikę. Musisz pozekać na naciśnięcie klawisza - odczytywać go przed kolejną iteracją pętli, po wszystkich czynnościach pożądanych przed jego naciśnięciem. O to Ci chodzi?

A widzę, że problem jest z podstawami. My za Ciebie tej gry nie napiszemy. A do obsługi naciskanych klawiszy służą inne zdarzenia, tak btw. Ale oczywiście grę powinieneś podzielić na procedury lub też późnej klasy. W nich wszystko obsłużysz. Jednak jeśli nic nie pisałeś w Delphi to pora siąśc do kursu (może być ten na 4p). Ogarnąć postawy i dopiero brać się za pisanie gier.

I na koniec UWAGA
__PYTANIA O PODSTAWY ZADAJEMY W DZIALE NEWBIE!!!_

Wiem, drugi raz dzisiaj się drę, ale może wtedy dotrze ;)

0

Ale spokojnie.
Nie wymagam ani nawet nie proszę, żeby ktoś za mnie napisał, bo sam algorytm gry mam już gotowy, po prostu teraz chodzi tylko o grafikę.
I większość wiem jak zrobić tylko cały czas chodzi mi o to, w jaki sposób przy każdej iteracji pętli czekać na naciśnięcie tego buttona, i tyle. Resztę umiem.

0
feihung napisał(a)

Nie wymagam ani nawet nie proszę, żeby ktoś za mnie napisał, bo sam algorytm gry mam już gotowy, po prostu teraz chodzi tylko o grafikę.

IHMO jeśli miałbyś już algorytm gry gotowy, to wiedziałbyś dokładnie gdzie umiejscowić instrukcje służące do malowania pionków, pól itd.; Nie masz tego, dlatego nie masz się jak na razie nad czym zastanawiać;

Pokaż więcej kodu a coś się wymyśli.

1 użytkowników online, w tym zalogowanych: 0, gości: 1