prikazJdi jsem opravil takhle...
package logika;
/**
* Třída PrikazJdi implementuje pro hru příkaz jdi.
* Tato třída je součástí jednoduché textové hry.
*
*@author
*@version pro školní rok 2014/2015
*/
class PrikazJdi implements IPrikaz {
private static final String NAZEV = "jdi";
private HerniPlan plan;
private Hra hra;
/**
* Konstruktor třídy
*
* @param plan herní plán, ve kterém se bude ve hře "chodit"
*/
public PrikazJdi(HerniPlan plan) {
this.plan = plan;
this.hra = hra;
}
/**
* Provádí příkaz "jdi". Zkouší se vyjít do zadaného prostoru. Pokud prostor
* existuje, vstoupí se do nového prostoru. Pokud zadaný sousední prostor
* (východ) není, vypíše se chybové hlášení.
*
*@param parametry - jako parametr obsahuje jméno prostoru (východu),
* do kterého se má jít.
*@return zpráva, kterou vypíše hra hráči
*/
@Override
public String proved(String... parametry) {
if (parametry.length == 0) {
// pokud chybí druhé slovo (sousední prostor), tak ....
return "Kam mám jít? Musíš zadat jméno východu";
}
String smer = parametry[0];
// zkoušíme přejít do sousedního prostoru
Prostor sousedniProstor = plan.getAktualniProstor().vratSousedniProstor(smer);
if (sousedniProstor == null) {
return "Tam se odsud jít nedá!";
}
if (sousedniProstor.isZamcena()) {
return "Místnost: '" + sousedniProstor.getNazev() + "' je uzamčena, musíš jí napřed odemknout";
}
else {
if (sousedniProstor.getNazev().equals("tmavaJeskyne")) {
if (plan.getBatoh().obsahujeVec("!sekeraDrakobijce")) {
plan.setAktualniProstor(sousedniProstor);
return sousedniProstor.dlouhyPopis();
}
else {
hra.setKonecHry(true);
return "Prohral jsi.";
}
}
else {
plan.setAktualniProstor(sousedniProstor);
return sousedniProstor.dlouhyPopis();
}
}
}
/**
* Metoda vrací název příkazu (slovo které používá hráč pro jeho vyvolání)
*
* @ return nazev prikazu
*/
@Override
public String getNazev() {
return NAZEV;
}
}
no hodi mi to chybu tady jak je ui.hraj(); a rika furt null pointer exception in prikazJdi..
package main;
import logika.*;
import uiText.TextoveRozhrani;
/*******************************************************************************
* Třída {@code Start} je hlavní třídou projektu,
* který ...
*
* @author
* @version
*/
public final class Start
{
/***************************************************************************
* Metoda, prostřednictvím níž se spouští celá aplikace.
*
* @param args Parametry příkazového řádku
*/
public static void main(String[] args)
{
IHra hra = new Hra();
TextoveRozhrani ui = new TextoveRozhrani(hra);
if(args.length == 0)
{
ui.hraj();
}
else
{
ui.hrajZeSouboru(args[0]);
}
}
private Start(){}
}
ja jsem z toho uplne debil..zkousel jsem to i nejak jinak napsat, ale nejde mi to..