Identifier Expected

Status
Nicht offen für weitere Antworten.

danielita

Mitglied
Ich habe mir ein paar Dateien zum Üben heruntergeladen, sie gehören zu einem Spiel. Die untenstehende ist die Hauptdatei.

Um das Spiel zu starten, soll man ein neues Objekt der Klasse Game erzeugen und darauf die Methode play anwenden. Dies habe ich (wie ich dachte), auch in der Klasse GameTest (unten) gemacht. Leider sagt der Compiler: identifier expected...:noe:

Kann mir jemand bitte helfen? Vielen Dank :)

Java:
/**
 * Class Game - the main class of the "Zork" game.
 *
 * Author:  Michael Kolling
 * Version: 1.1
 * Date:    March 2000
 * 
 *  This class is the main class of the "Zork" application. Zork is a very
 *  simple, text based adventure game.  Users can walk around some scenery.
 *  That's all. It should really be extended to make it more interesting!
 * 
 *  To play this game, create an instance of this class and call the "play"
 *  routine.
 * 
 *  This main class creates and initialises all the others: it creates all
 *  rooms, creates the parser and starts the game.  It also evaluates the
 *  commands that the parser returns.
 */

class Game 
{
    private Parser parser;
    private Room currentRoom;
        

    /**
     * Create the game and initialise its internal map.
     */
    public Game() 
    {
        createRooms();
        parser = new Parser();
    }

    /**
     * Create all the rooms and link their exits together.
     */
    private void createRooms()
    {
        Room outside, lab, tavern, gblock, office;
      
        // create the rooms
        outside = new Room("outside G block on Peninsula campus");
        lab = new Room("a lecture theatre in A block");
        tavern = new Room("the Seahorse Tavern (the campus pub)");
        gblock = new Room("the G building");
        office = new Room("the computing admin office");
        
        // initialise room exits
        outside.setExits(null, lab, gblock, tavern);
        lab.setExits(null, null, null, outside);
        tavern.setExits(null, outside, null, null);
        gblock.setExits(outside, office, null, null);
        office.setExits(null, null, null, gblock);

        currentRoom = outside;  // start game outside
    }

    /**
     *  Main play routine.  Loops until end of play.
     */
    public void play() 
    {            
        printWelcome();

        // Enter the main command loop.  Here we repeatedly read commands and
        // execute them until the game is over.
                
        boolean finished = false;
        while (! finished)
        {
            Command command = parser.getCommand();
            finished = processCommand(command);
        }
        System.out.println("Thank you for playing.  Good bye.");
    }

    /**
     * Print out the opening message for the player.
     */
    private void printWelcome()
    {
        System.out.println();
        System.out.println("Welcome to Zork!");
        System.out.println("Zork is a new, incredibly boring adventure game.");
        System.out.println("Type 'help' if you need help.");
        System.out.println();
        System.out.println(currentRoom.longDescription());
    }

    /**
     * Given a command, process (that is: execute) the command.
     * If this command ends the game, true is returned, otherwise false is
     * returned.
     */
    private boolean processCommand(Command command) 
    {
        if(command.isUnknown())
        {
            System.out.println("I don't know what you mean...");
            return false;
        }

        String commandWord = command.getCommandWord();
        if (commandWord.equals("help"))
            printHelp();
        else if (commandWord.equals("go"))
            goRoom(command);
        else if (commandWord.equals("quit"))
        {
            if(command.hasSecondWord())
                System.out.println("Quit what?");
            else
                return true;  // signal that we want to quit
        }
        return false;
    }

    // implementations of user commands:

    /**
     * Print out some help information.
     * Here we print some stupid, cryptic message and a list of the 
     * command words.
     */
    private void printHelp() 
    {
        System.out.println("You are lost. You are alone. You wander");
        System.out.println("around at Monash Uni, Peninsula Campus.");
        System.out.println();
        System.out.println("Your command words are:");
        parser.showCommands();
    }

    /** 
     * Try to go to one direction. If there is an exit, enter the new
     * room, otherwise print an error message.
     */
    private void goRoom(Command command) 
    {
        if(!command.hasSecondWord())
        {
            // if there is no second word, we don't know where to go...
            System.out.println("Go where?");
            return;
        }

        String direction = command.getSecondWord();

        // Try to leave current room.
        Room nextRoom = currentRoom.nextRoom(direction);

        if (nextRoom == null)
            System.out.println("There is no door!");
        else 
        {
            currentRoom = nextRoom;
            System.out.println(currentRoom.longDescription());
        }
    
}

}

class GameTest{
	public static void main(){
	Game g = new Game();
	g.play();}
	}
 
S

SlaterB

Gast
das ist nicht nachvollziehbar, steht noch was bei den ...?

bei mir kompiliert mit entsprechenden Hilfsklassen am Ende

Java:
public class Test
{
    public static void main(String[] args)
    {
       
    }
}

class Game
{
    private Parser parser;
    private Room currentRoom;


    /**
     * Create the game and initialise its internal map.
     */
    public Game()
    {
        createRooms();
        parser = new Parser();
    }

    /**
     * Create all the rooms and link their exits together.
     */
    private void createRooms()
    {
        Room outside, lab, tavern, gblock, office;

        // create the rooms
        outside = new Room("outside G block on Peninsula campus");
        lab = new Room("a lecture theatre in A block");
        tavern = new Room("the Seahorse Tavern (the campus pub)");
        gblock = new Room("the G building");
        office = new Room("the computing admin office");

        // initialise room exits
        outside.setExits(null, lab, gblock, tavern);
        lab.setExits(null, null, null, outside);
        tavern.setExits(null, outside, null, null);
        gblock.setExits(outside, office, null, null);
        office.setExits(null, null, null, gblock);

        currentRoom = outside; // start game outside
    }

    /**
     * Main play routine. Loops until end of play.
     */
    public void play()
    {
        printWelcome();

        // Enter the main command loop. Here we repeatedly read commands and
        // execute them until the game is over.

        boolean finished = false;
        while (!finished)
        {
            Command command = parser.getCommand();
            finished = processCommand(command);
        }
        System.out.println("Thank you for playing.  Good bye.");
    }

    /**
     * Print out the opening message for the player.
     */
    private void printWelcome()
    {
        System.out.println();
        System.out.println("Welcome to Zork!");
        System.out.println("Zork is a new, incredibly boring adventure game.");
        System.out.println("Type 'help' if you need help.");
        System.out.println();
        System.out.println(currentRoom.longDescription());
    }

    /**
     * Given a command, process (that is: execute) the command. If this command ends the
     * game, true is returned, otherwise false is returned.
     */
    private boolean processCommand(Command command)
    {
        if (command.isUnknown())
        {
            System.out.println("I don't know what you mean...");
            return false;
        }

        String commandWord = command.getCommandWord();
        if (commandWord.equals("help"))
            printHelp();
        else if (commandWord.equals("go"))
            goRoom(command);
        else if (commandWord.equals("quit"))
        {
            if (command.hasSecondWord())
                System.out.println("Quit what?");
            else
                return true; // signal that we want to quit
        }
        return false;
    }

    // implementations of user commands:

    /**
     * Print out some help information. Here we print some stupid, cryptic message and a
     * list of the command words.
     */
    private void printHelp()
    {
        System.out.println("You are lost. You are alone. You wander");
        System.out.println("around at Monash Uni, Peninsula Campus.");
        System.out.println();
        System.out.println("Your command words are:");
        parser.showCommands();
    }

    /**
     * Try to go to one direction. If there is an exit, enter the new room, otherwise
     * print an error message.
     */
    private void goRoom(Command command)
    {
        if (!command.hasSecondWord())
        {
            // if there is no second word, we don't know where to go...
            System.out.println("Go where?");
            return;
        }

        String direction = command.getSecondWord();

        // Try to leave current room.
        Room nextRoom = currentRoom.nextRoom(direction);

        if (nextRoom == null)
            System.out.println("There is no door!");
        else
        {
            currentRoom = nextRoom;
            System.out.println(currentRoom.longDescription());
        }

    }

}


class GameTest
{
    public static void main()
    {
        Game g = new Game();
        g.play();
    }
}


class Parser
{

    public Command getCommand()
    {
        return null;
    }

    public void showCommands()
    {
    }
}


class Room
{

    public Room(String string)
    {
    }

    public void setExits(Object object, Room lab, Room gblock, Room tavern)
    {
    }

    public char[] longDescription()
    {
        return null;
    }

    public Room nextRoom(String direction)
    {
        return null;
    }
}


class Command
{

    public boolean isUnknown()
    {
        return false;
    }

    public String getSecondWord()
    {
        return null;
    }

    public boolean hasSecondWord()
    {
        return false;
    }

    public String getCommandWord()
    {
        return null;
    }
}
 

Leroy42

Top Contributor
In der Zeile 164, da, wo g.play(); steht.

Zeile 164 ist eine Leerzeile.

Meinst du

Java:
    public static void main(){
        Game g = new Game();
        g.play();}
    }

Hier kann ich mir nicht vorstellen, daß der Compiler identifier expected
meldet, da g ja eine Zeile zuvor definiert wird. :bahnhof:

Aber dir Methode müßte sowieso heißen:

Java:
    public static void main(String[] args){...}
 

danielita

Mitglied
Jetzt ging das Kompilieren auf einmal, allerdings bekomme ich jetzt einen nosuchmethod-Error wegen der Mainmethode. Habe die Methode allerdings abgeändert, so wie du gesagt hast, Leroy.???:L

Java:
class GameTest{
	public static void main(String[] args){
	Game g = new Game();
	g.play();}
	}
 
S

SlaterB

Gast
main-Methoden machen nur in public-Klassen sind, die dann auch genauso wie die Datei heißen

andererseits kannst du es ruhig nochmal probieren, wenn alles erst verzögert funktioniert ;)
 

danielita

Mitglied
Vielen Dank! Jetzt gehts :D ich habe eine separate Datei mit dem Namen GameTest angelegt und die Klasse als public gekennzeichnet.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
monsterherz error: <identifier> expected Java Basics - Anfänger-Themen 2
C error: <identifier> expected Java Basics - Anfänger-Themen 13
P <identifier> expected Java Basics - Anfänger-Themen 3
L Methoden Zugriff <identifier> expected Java Basics - Anfänger-Themen 13
W Compiler-Fehler Fehler - <identifier> expected, wo liegt mein Fehler? Java Basics - Anfänger-Themen 4
P <identifier> expected Fehler bitte um Hilfe Java Basics - Anfänger-Themen 5
J identifier expected Java Basics - Anfänger-Themen 2
K <identifier> expected Java Basics - Anfänger-Themen 18
L Polymorphie <identifier> expected trotz "Angabe" Java Basics - Anfänger-Themen 2
2 <identifier> expected - Problem Java Basics - Anfänger-Themen 2
I identifier und ) expected Java Basics - Anfänger-Themen 3
G <identifier> expected bei public void final Java Basics - Anfänger-Themen 3
D "identifier expected" und "cannot find symbol Java Basics - Anfänger-Themen 4
G Blue J - Fehlermeldung - identifier expected - illegal start Java Basics - Anfänger-Themen 6
zilti identifier expected bei Threads Java Basics - Anfänger-Themen 2
E <identifier> expected in List Java Basics - Anfänger-Themen 8
G "Identifier expected" Java Basics - Anfänger-Themen 9
H <identifier> expected Java Basics - Anfänger-Themen 19
G array list - identifier expected Java Basics - Anfänger-Themen 4
M Fehler Identifier Expected Java Basics - Anfänger-Themen 4
N Fehler <identifier> expected. Weiss nicht was falsch i Java Basics - Anfänger-Themen 2
K identifier expected | problem mit variable Java Basics - Anfänger-Themen 6
G identifier expected Java Basics - Anfänger-Themen 2
J Fehler identifier expected Java Basics - Anfänger-Themen 10
M Problem mit "<identifier> expected" in Actio Java Basics - Anfänger-Themen 4
R Compiler-Fehler identifier error? Java Basics - Anfänger-Themen 3
H unexpected identifier Java Basics - Anfänger-Themen 1
T Expression Tree.. identifier + Grundaufbau? Java Basics - Anfänger-Themen 2
A Variabler Identifier Java Basics - Anfänger-Themen 6
G Was ist ein Identifier? Java Basics - Anfänger-Themen 5
M error: '.class' expected switch(char) Java Basics - Anfänger-Themen 32
franzi.ska Blue-j: ‘]‘ expected Java Basics - Anfänger-Themen 1
J Compiler-Fehler Illegal Start of expression / '/'expected Java Basics - Anfänger-Themen 3
Z Klassen Error: ';' expected - was mache ich falsch? Java Basics - Anfänger-Themen 4
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
J Syntax error on token ";",, expected Java Basics - Anfänger-Themen 2
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
D Compiler-Fehler error: .class expected Java Basics - Anfänger-Themen 2
S Compiler-Fehler error: ';' expected (finde Fehler nicht) Java Basics - Anfänger-Themen 10
D Erste Schritte Fehlermeldung "Syntax error on token ";", { expected after this token" Java Basics - Anfänger-Themen 13
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
B Compiler-Fehler 86:11: error: ';' expected obwohl kein ";" hingehört! Java Basics - Anfänger-Themen 10
F .class expected Java Basics - Anfänger-Themen 3
M Syntax error on token ";", { expected after this token Java Basics - Anfänger-Themen 3
0 .class expected Arrays -- warum? Java Basics - Anfänger-Themen 9
P Compiler-Fehler "class, interface, or enum expected" Java Basics - Anfänger-Themen 5
K class, interface or enum expected Java Basics - Anfänger-Themen 14
S expected java.lang.string but found char Java Basics - Anfänger-Themen 5
R Switch Abfrage: Found boolean but expected int? Java Basics - Anfänger-Themen 7
T class, interface, or enum expected Java Basics - Anfänger-Themen 2
O Fragezeichenoperator assert expected Java Basics - Anfänger-Themen 7
S Methode mit zweidimensionalem Array als Parameter: '.class' expected Java Basics - Anfänger-Themen 2
H einfaches Array -> ']' expected Java Basics - Anfänger-Themen 9
W '.class' expected Java Basics - Anfänger-Themen 5
J class, interface, or enum expected - finde Fehler nicht. Java Basics - Anfänger-Themen 4
I ';' expected, kann den Fehler nicht finden... Java Basics - Anfänger-Themen 2
D class, interface or enum expected Java Basics - Anfänger-Themen 2
J class expected Java Basics - Anfänger-Themen 4
M return Fehler .class expected Java Basics - Anfänger-Themen 19
J class, interface, or enum expected Java Basics - Anfänger-Themen 4
T class, interface or enum expected Java Basics - Anfänger-Themen 3
D "Illegal Start of Expression" und "; expected Java Basics - Anfänger-Themen 3
T .class expected Java Basics - Anfänger-Themen 5
NoXiD ; Expected Java Basics - Anfänger-Themen 2
P public enum ";"expected Java Basics - Anfänger-Themen 7
G sinnlos >>> "]" expected Java Basics - Anfänger-Themen 9
S idetifier expected Java Basics - Anfänger-Themen 3
P Wieso kommt die Fehlermeldung ".class expected"? Java Basics - Anfänger-Themen 2
B Syntax error on token ";", { expected after this t Java Basics - Anfänger-Themen 7
J [JavaKara] '.' expected import JavaKaraProgram Java Basics - Anfänger-Themen 2
K Array deklarieren und befüllen; "]" expected Java Basics - Anfänger-Themen 7
K 'class' or 'interface' expected Java Basics - Anfänger-Themen 3
G Fehlermeldung ']' expected, Objekterstellung in Laufzeit Java Basics - Anfänger-Themen 8
B Compiler Fehler "{" expected, kann doch nich sein? Java Basics - Anfänger-Themen 9
S syntax error variable declarator ID expected Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben