Pętla Graczy

0

Piszę grę w której 2 lub więcej graczy musi na zmianę dokonywać ruchu. W jaki sposób można to rozwiązać? Nie mam kompletnie pomysłu. Musi się to odbywać cały czas. Myślałem o użyciu do while ale to bez sensu raczej.

Nie wiem też jak rozwiązać właśnie "dynamicznie" ilość graczy. Aktualnie statycznie stworzyłem 2 obiekty graczy i na tym staram się pracować jednak chciałbym aby działo się to automatycznie po wyborze ilości graczy.

ogólny zamysł:
gracz 1 -> rzut koscia - > ruch na dany obszar -> wykonanie polecenia -> koniec tury -> gracz 2 -> rzut koscia itp..

0

Taki prosty przykład z kółko i krzyżyk

 if (cureentlyPlayer == true) {
                    clickedButton.setText("X");
                    cureentlyPlayer = false;
 
 
                } else {
 
                    clickedButton.setText("O");
                    cureentlyPlayer = true;
0

wystarczy że każdy player będzie wiedział kto jest po nim i będzie miał pole Player nextPlayer
po ruchu w pętli programu ustawiasz currentPlayer = currentPlayer.nextPlayer i tyle

może to być też tablica i operacjami ruch modulo ilość_graczy wybrać gracza ale to mniej obiektowe podejście

1
import java.io.*;

class Ideone
{
	public static void main(String[] args)
	{
		final int playersCount = 4, testsCount = 4*6+1;
		for(int i = 0; i < testsCount; ++i)
			System.out.println("Player id: "+i%playersCount);
	}
}

out:

Player id: 0
Player id: 1
Player id: 2
Player id: 3
Player id: 0
Player id: 1
Player id: 2
Player id: 3
Player id: 0
Player id: 1
Player id: 2
Player id: 3
Player id: 0
Player id: 1
Player id: 2
Player id: 3
Player id: 0
Player id: 1
Player id: 2
Player id: 3
Player id: 0
Player id: 1
Player id: 2
Player id: 3
Player id: 0
0

Dzięki wielkie :)

spartanPAGE czyli muszę zrobić taką klasę jak napisałeś + dodać do klasy player pole które będzie zawierać ID gracza i metodę zwrotu tej wartości tak?

0

Cała magia w tym, że nie musisz nic. ID graczy moze byc jego polozeniem w tablicy, więc w tej sytuacji jest on calkowicie bierny.

0

Pojawił się kolejny problem. Chce aby po rzucie kostką wynik rzutu + aktualna pozycja ( liczba całkowita ) były zapisywane w obiekcie ruch.
tzn. stoje na polu nr. 2 i wyrzuciłem 5 , więc przesuwam się na pole o numerze 7 i Numer aktualnej pozycji zmienia się na 7 itd. az do 40, po czym zmienna się zeruje i zaczyna zliczać od 1. I tak w kółko.

Moja klasa ruch. Wywołuje ją przez podanie za n liczby oczek wyrzuconych podczas rzutu.

 class ruch
{
	public ruch(int n)
	{
		LiczbaOczekNaKostce =n;
	}
	
	public int NumerAktualnejPozycji()
	{
	return	NumerAktualnejPozycjiNaPlanszy;
	}
	
	private int NumerAktualnejPozycjiNaPlanszy;
	private int LiczbaOczekNaKostce;
	private static int NumerAktualnejPozycji;
	
	static
	{
		NumerAktualnejPozycji = 1;
	}
	
	{
		NumerAktualnejPozycji += LiczbaOczekNaKostce;
		NumerAktualnejPozycjiNaPlanszy = NumerAktualnejPozycji;
		
	}
}
1

Ten kod to jest kpina

0

Sorry dopiero zaczynam przygodę z Java tak więc proszę o wyrozumiałość. W jaki sposób w takim razie to można rozwiązać?

0

spartanPAGE to ma być eurobussines. No i właśnie podczas pisania kodu znajduję coraz więcej problemów. Głównie właśnie nie wiem jak rozwiązać ten problem z poruszaniem się po planszy i chyba najważniejszy w jaki sposób przypisywać państwa do poszczególnych graczy i sprawdzać które do kogo należy.
Grę robię niestety na razie tylko w konsoli.. Tak wiem że bezsens ale nie mam czasu na zabawę z grafiką( dodam w późniejszym czasie ).

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