Użycie obiektu w innej klasie

0

Cześć, mam problem, ponieważ próbuje użyć w jednej z klas obiektu pochodzącego z innej klasy. Niestety coś nie działa jak należy. Może ktoś powiedzieć jak należy to rozwiązać? Bądź podać jakąś lepszą metodę. Chcę wykorzystując tą klasę sprawdzać czy dany gracz posiada wszystkie miasta z danego kraju i jeśli tak to automatycznie poprzez setIDkarty zwiększam koszt postoju na danym mieście *2. Gra to eurobussines, więc pewnie każdy kojarzy zasady

Tak deklaruję wszystkie karty panstw:

kartaPanstwa[] knation = new kartaPanstwa[28];
				getkartaPanstwa(knation);

W tej klasię próbuję użyć metody z klasy PLAYER oraz kartaPanstwa.

public static void getCheckPanstwa(Object Gracz, Object knation[])
	{
		if(((player) Gracz).getCheckGrecja()==1){   // działa dobrze
			((kartaPanstwa) knation[0]).setIDkarty(1);  // z tym jest problem
			((kartaPanstwa) knation[1]).setIDkarty(1);  
			System.out.println("Teren zabudowany grecja");
		}

Metoda z klasy player:

	public int getCheckGrecja()
	{
		if(this.myMap.contains(2) && this.myMap.contains(4))
		return 1;
		else
			return 0;
	}

Metoda z klasy kartaPanstwa:

	public void setIDkarty(int n) // ustawienie IDkarty po zakupie domu
	{
		if(this.IDkarty==6)
		System.out.println("Nie możesz kupić więcej domów");
		else
		this.IDkarty +=n;
0

A możesz napisać co to znaczy "z tym jest problem" ??

 ((kartaPanstwa) knation[0]).setIDkarty(1);  // z tym jest problem

rozumiesz że dostajesz

z_tym_jest_problemExcpetion

?

0

Programuję w javie od 2 miesięcy więc sorry za nie trzymanie się reguł.
Problem polega na tym, że chciałem aby automatycznie jeśli mam całe państwo zwiększało mi dwukrotnie opłatę za postój. Niestety teraz zwiększa mi 3 razy opłatę ale np jeśli stoję w danym mieście i zamiast płacić 70$ ( początkowo 35$) to płacę 140$.

0

Ale ja w tym kodzie nie widzę żadnego zwiększania opłat, nawet żadnego mnożenia o którym wspominasz :D

0

Chyba czegoś nie rozumiem. Tworzysz tablicę kart państw w których masz pola z ilu kart dane państwo się składa? Po co w getKartaPanstwa wrzucasz całą tablicę tych kart? a nie konkretną kartę Państwa? Nie lepiej zrobić obiekty Państw, które zawierają pola do konkretnych kart np. tablice(listy)? Deklarujesz liczbę Państwa z listą danych pól i potem przy generowaniu pól planszy wrzucasz referencję w konkretne pola Państwa żeby rozrzucić je po planszy. Klasa gracza tylko wtedy sprawdza czy dany obiekt Państwa ma w sobie wszystkie pola planszy przypisane do danego ID gracza (np. poprzez dodanie do pola Państwa mapy - pole planszy <ID pola, ID gracza> )

BTW : Razi! Nazwy klas dużą literą! Object w parametrze po co? Rzutowanie typu na ten sam typ po co?

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