Ukončení hry – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Ukončení hry – Java – Fórum – Programujte.comUkončení hry – Java – Fórum – Programujte.com

 

Petrr0
Duch
25. 12. 2012   #1
-
0
-

Zdravím,

mám takový problém - tvořím textovou hru a chci aby se po vstupu do jedné místnosti/prostoru hra ukončila, ale aby to šlo vstoupit jen z místnosti/prostoru který s tím sousedí.

Takže mám třeba prostor náměstí, který sousedí s lesem a les sousedí s bažinou.

Když se budu vyskytovat v lese a napíšu jdi bažina - tak se hra ukončí

A když napíšu jdi bažina z náměstí (které s bažinou nesousedí) tak se napíše třeba: Odsud se tam jít nedá!

Jenže mě to dělá chybu, že mi stačí z kteréhokoliv prostoru napsat jdi bažina a je konec (já chci jen aby to šlo v těch sousedních)

if (smer.equals("bazina")) {
            hra.setKonecHry(true);
            return "Ztratil jsi se v bazine a zahynul jsi";
}

To je ta podmínka - prý tam mám nějako doplnit, že se tam musím v tom prostoru vyskytovat

Jenže vůbec to neumím vymyslet a nevím jak na to.

Neporadil by mi někdo?

Děkuji moc

Nahlásit jako SPAM
IP: 94.138.108.–
zlz
~ Anonymní uživatel
634 příspěvků
26. 12. 2012   #2
-
0
-

Nějak si musíš nadefinovat odkud se kam dá jít a kde jsi a podle toho se rozhodnout. A pravděpodobně toho bude více, než jen možnosti postupu. Můžeš to udělat nějak takhle (hodně zjednodušeno):

class Lokace {
	//popis ...
	//predmety ...
	Map<String,Lokace> cesty = new HashMap<String,Lokace>();
}
...
Lokace namesti = new Lokace();
Lokace les = new Lokace();
Lokace bazina = new Lokace();

namesti.cesty.put("les", les);
les.cesty.put("namesti", namesti);
les.cesty.put("bazina", bazina);
bazina.cesty.put("les", les);

Lokace lokace = namesti;
System.out.println("Lokace: namesti");

while (!(vstup = in.readLine()).equals("konec")) {
	String[] slova = vstup.split(" ");
	if (slova[0].equals("jdi")) {
		if (slova.length < 2) {
			System.out.println("Kam?");
		} else {
			if (!lokace.cesty.containsKey(slova[1])) {
				System.out.println("Tam se odtud neda jit.");
			} else {
				lokace = lokace.cesty.get(slova[1]);
				System.out.println("Lokace: " + slova[1]);
				//System.out.println(lokace.popis);
			}
		}
	} else {
		System.out.println("Neznamy prikaz.");
	}
}
Nahlásit jako SPAM
IP: 80.188.216.–
Mayor und Minor
~ Anonymní uživatel
2 příspěvky
5. 1. 2013   #3
-
0
-

#1 Petrr
myslím že chyba je

if(smer.equals("bazina") == true) {

      hra.setKonecHry(true);
            return "Ztratil jsi se v bazine a zahynul jsi";
}

Nahlásit jako SPAM
IP: 78.80.181.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

Podobná vlákna

Ukonceni nadpisu — založil Dex

Ukončení smyčky while — založil Pedro

Automatické ukončení — založil Miška

Ukončení náhody — založil Thanoss

Ukončení threadu — založil Jenda

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý