Highscore Syntax-Problem

Status
Nicht offen für weitere Antworten.

ollestrat

Mitglied
Hallo, mein erster Beitrag (lasst Gnade walten;) ):

ich möchte für ein kleines Spiel ein Highscoreliste erstellen und habe nachdem ich hier im Forum mir ein paar Beiträge zu dem Thema durchgelesen habe einen vergleichsweise einfachen Ansatz gefunden. Es existiert noch eine Klasse Spieler für den Namen und den Punktestand. Es scheint aber irgendein grundlegendes Syntaxproblem zu geben (--> //NullPointerException). Jemand eine Idee?


Code:
public class Highscore {

	static Spieler [] array = new Spieler[10]; 

	
		public static void main (String[]args)
		{
			Spieler hans = new Spieler("Hans", 10);
			Spieler klaus = new Spieler("Klaus", 13);
			Spieler ina = new Spieler("Ina", 0);
			Spieler ole = new Spieler("Ole", 78);
			Spieler kalle = new Spieler("Kalle", 10);
			Highscore hs = new Highscore();
			hs.einfügen(hans); // NullPointerException!!!
			hs.einfügen(klaus);
			hs.einfügen(ina);
			hs.einfügen(ole);
			hs.einfügen(kalle);
						
		}
	
	public void einfügen(Spieler s)
	{
		for (int i = 0; i<=array.length-1;i++ )
			if (array[0].getPunkte()< s.getPunkte())
				{
				array[i] = s; 
				break;
				}
	}
	public void anzeigen()
	{
		for (int i = 0; i<=array.length-1;i++ )
			System.out.println(array[i].getName() + " " + array[i].getPunkte());
	}
}
[/code]
 

Gandave

Mitglied
Hallo ollestrat,

Das Problem ist, dass dem Array zwar schon eine Größe zugewiesen wurde (10), aber er ansonsten leer ist.
Deine Schleife in 'einfügen' versucht jetzt vom Element an Stelle 0 (müsste das nicht i sein?) die Punkte zu ermitteln. Da an der Stelle 0 (wie an den anderen Stellen auch) noch kein Element ist, bzw. das Element 'null', kann die Methode 'getPunkte()' nicht ausgeführt werden.

Mögliche Lösung:

Code:
public static void main(String[] args)
{
  for (int i = 0; i < array.length(); i++)
  {
    array[i] = new Spieler();
  }
  // ... ab da normal weiter
}

Dann musst du aber in der Klasse 'Spieler' eine entsprechende Initalisierung erlauben. Oder du erstellst einen neuen Spieler mit "leeren" Werten, also 'new Spieler("leer", 0)'.

Nebenbei, bei deiner einfügen-Schleife wird meiner Meinung nach der neue Spieler an der Stelle eingesetzt, an der der letzte Spieler war, der schlechter als dieser Spieler war. Aber eigentlich müsste der alte Spieler und alle, die nach ihm kommen nach unten verschoben und nur der letzte gelöscht werden!
Mein Vorschlag: nimm einen Vector!
Damit umgehst du nebenbei auch das Problem mit der NullPointerException.

Ich hoffe, das war verständlich.

Mit freundlichen Grüßen
Gandave
 

Joker

Bekanntes Mitglied
ein Syntaxproblem ist es nicht, aber ein Logikproblem ;)

Schau dir mal Zeile 25 an. Du versuchst hier auf das Element am Index 0 zuzugreifen obwohl da noch überhaupt kein Element liegt.

Besser ist aber sowas hier:
Code:
public class Highscore {
    private List<Spieler> players;
    
    public Highscore() {
        players = new ArrayList<Spieler>();
        
        einfuegen(new Spieler("Hans", 10));
        einfuegen( new Spieler("Klaus", 13));
        einfuegen(new Spieler("Ina", 0));
        einfuegen(new Spieler("Ole", 78));
        einfuegen(new Spieler("Kalle", 10));     
        anzeigen();
    }
    
    public void einfuegen(Spieler s) {
        players.add(s);
      
    }
    
    public void anzeigen() {
        sortPlayer();
        for(Spieler s:players) {
            System.out.println(s.getName()+"  "+s.getPoints());
        }
    }
    
    public void sortPlayer() {
        Collections.sort(players, new Comparator() {

            public int compare(Object o1, Object o2) {
                Integer p1 = ((Spieler) o1).getPoints();
                Integer p2 = ((Spieler) o2).getPoints();

                return p2.compareTo(p1);
            }
        });
    }
    
    public static void main(String[] args ){
        new Highscore();
    }
}

edit: Da war jemand schneller, man sollte halt die Threads nicht in Tabs öffnen um sie dann in der Reihenfolge abzuarbeiten ohne das man vorher prüft ob schon eine Antwort da ist ;)

ps.: wieso Vector, hier ist doch nichts Multithreaded. ArrayList ist da besser, da hier die Methoden nicht synchronized sind.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
G highscore arry Java Basics - Anfänger-Themen 7
M Input/Output Objekte in einer Textdatei ablegen (Highscore) Java Basics - Anfänger-Themen 9
J Highscore-Liste abspeichern Java Basics - Anfänger-Themen 6
S Highscore Java Basics - Anfänger-Themen 3
A Highscore mit Textdokument Java Basics - Anfänger-Themen 16
F Highscore erstellen Java Basics - Anfänger-Themen 4
D Syntax-Highlighting im Frontend Java Basics - Anfänger-Themen 3
J Syntax-Fehler? Java Basics - Anfänger-Themen 2
pkm Problem mit der JSP-Syntax Java Basics - Anfänger-Themen 2
M Datentypen Generische Datentypen - Syntax Java Basics - Anfänger-Themen 25
C Überprüfen eines Queltextes auf Syntax-Fehler und Laufzeitfehler Java Basics - Anfänger-Themen 2
L SQLITE - Syntax error Java Basics - Anfänger-Themen 3
W Wie vermerke ich diese Struktogramm Passage in Java Syntax? Java Basics - Anfänger-Themen 8
Aprendiendo [JAVA-Syntax] (int... variable) bei einem Konstruktor Java Basics - Anfänger-Themen 8
wilmaed OOP Syntax beim Instanziieren mit new Java Basics - Anfänger-Themen 6
D Datentypen Datentyperstellung | Kompiler sagt Syntax Error doch ich find keine Lösung Java Basics - Anfänger-Themen 2
J Syntax error on token ";",, expected Java Basics - Anfänger-Themen 2
C Erste Schritte Syntax Error Java Basics - Anfänger-Themen 23
J java syntax verständnis Java Basics - Anfänger-Themen 6
D Erste Schritte Fehlermeldung "Syntax error on token ";", { expected after this token" Java Basics - Anfänger-Themen 13
1 Bei if-Anweisung: Syntax error on token Java Basics - Anfänger-Themen 5
D Fehler in der Syntax? Java Basics - Anfänger-Themen 6
L Nachkommastellen Runden, Problem mit Syntax " }" Java Basics - Anfänger-Themen 2
X Wann schreibt man diese Syntax zeichen { } Java Basics - Anfänger-Themen 8
V MasterMind Syntax Probleme Java Basics - Anfänger-Themen 5
P AUTO_INCREMENT Syntax-Fehler Java Basics - Anfänger-Themen 2
M Syntax error on token ";", { expected after this token Java Basics - Anfänger-Themen 3
K Erste Schritte eclipse syntax error token Java Basics - Anfänger-Themen 5
B Erste Schritte HILFE Brauche ein Beispiel für korrekte Syntax mit Semantikfehlern Java Basics - Anfänger-Themen 6
P Erste Schritte if Syntax Java Basics - Anfänger-Themen 19
S Syntax Error - source level Java Basics - Anfänger-Themen 12
B Syntax error Java Basics - Anfänger-Themen 6
K Input/Output Einsteiger Syntax Frage Java Basics - Anfänger-Themen 6
R Syntax error on token "}", delete this token Java Basics - Anfänger-Themen 2
S Syntax error on token "connect" Java Basics - Anfänger-Themen 4
K Klassen this-Referenz und Klassen/Methodenaufruf Syntax Java Basics - Anfänger-Themen 3
T Syntax für .split mit Klammern Java Basics - Anfänger-Themen 2
F Syntax- oder Semantikfehler? Java Basics - Anfänger-Themen 29
S Frage zu einem Syntax Java Basics - Anfänger-Themen 2
Luk10 Problem mit der Syntax von "+=" Java Basics - Anfänger-Themen 10
T Einen Syntax Checker programmieren Java Basics - Anfänger-Themen 3
J Datentypen Array Syntax Java Basics - Anfänger-Themen 2
S Anfängerproblem Syntax if Schleife Java Basics - Anfänger-Themen 13
Screen Problem mit der Syntax bei ActionListener Java Basics - Anfänger-Themen 3
U Dringend: Syntax error on token "else" Java Basics - Anfänger-Themen 8
E Verständnisfrage Syntax: frame.getContentPane().add(button) Java Basics - Anfänger-Themen 11
Y Anfängerfrage zu array(-Syntax) Java Basics - Anfänger-Themen 6
G Richtige Syntax für Bruch Java Basics - Anfänger-Themen 12
S Generic Methode: syntax klemmt Java Basics - Anfänger-Themen 10
C Frage zu Syntax-,Laufzeit-, Semantikfehler Java Basics - Anfänger-Themen 3
N Anfängerfrage richtige Syntax und Frage zu Vector Java Basics - Anfänger-Themen 7
K Erklärung der Syntax Java Basics - Anfänger-Themen 6
G nicht bekannter Java-Syntax Java Basics - Anfänger-Themen 4
H wieso syntax error bei else ? Java Basics - Anfänger-Themen 3
T klasse objekt, syntax Java Basics - Anfänger-Themen 2
G Problem mit JTextField.setText(); Syntax Java Basics - Anfänger-Themen 3
S Syntax frage Java Basics - Anfänger-Themen 4
K java syntax: wofür steht super(screen)? Java Basics - Anfänger-Themen 5
L Syntax von subString Java Basics - Anfänger-Themen 19
B Syntax error on token ";", { expected after this t Java Basics - Anfänger-Themen 7
J Syntax Java Basics - Anfänger-Themen 14
C Verstehe die Syntax nicht! Java Basics - Anfänger-Themen 2
M Suche einen ganz einfachen Editor (syntax Highlighting+comp) Java Basics - Anfänger-Themen 7
M Komische Syntax bei Double-Buffering-Beispiel Java Basics - Anfänger-Themen 2
H Fehlermeldung bei korrekter Syntax Java Basics - Anfänger-Themen 2
G Syntax der if-Anweisung (Thema getrennt!) Java Basics - Anfänger-Themen 7
S RegEx Syntax - ich verstehe sie einfach nicht! Java Basics - Anfänger-Themen 3
H Syntax Frage. Java Basics - Anfänger-Themen 5
X Syntax bei != Java Basics - Anfänger-Themen 4
L setCharAt Syntax ? Java Basics - Anfänger-Themen 6
D page forward (?) suche syntax Java Basics - Anfänger-Themen 25
S syntax error variable declarator ID expected Java Basics - Anfänger-Themen 3
E Komische Syntax Java Basics - Anfänger-Themen 3
C Syntax Probleme mit Runtime javascript Java Basics - Anfänger-Themen 9
N Code-Editoren mit Syntax-Highlighting Java Basics - Anfänger-Themen 7
R Best Practice Problem mit (einfacher) Doppelt-Schleife Java Basics - Anfänger-Themen 53
K Verständnis Problem bei Server/Client Java Basics - Anfänger-Themen 2
I WildFily - unterschiedliche Libs im Projekt verursachen Problem Java Basics - Anfänger-Themen 11
imocode Vererbung Problem mit Vererbung Java Basics - Anfänger-Themen 2
L Taschenrechner Problem Java Basics - Anfänger-Themen 4
I Applikationsserver (WildFly) - Zugriff auf Ressourcen.. Problem mit Pfade Java Basics - Anfänger-Themen 10
A ScheduledExecutorService problem Java Basics - Anfänger-Themen 7
marcelnedza Problem mit Weltzuweisung, JavaKarol Java Basics - Anfänger-Themen 13
XWing Methoden rückgabe Problem? Java Basics - Anfänger-Themen 6
M Erste Schritte Collatz Problem max int Java Basics - Anfänger-Themen 3
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
C GLOOP Problem beim Erstellen der Kamera Java Basics - Anfänger-Themen 9
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
L Problem bei Rechnung mit Math.pow Java Basics - Anfänger-Themen 13
A Thread-Schreibe-Lese-Problem Java Basics - Anfänger-Themen 4
SUPERTJB return Problem Java Basics - Anfänger-Themen 3
sserio BigInteger Problem Java Basics - Anfänger-Themen 4
JordenJost Taschenrechner problem Java Basics - Anfänger-Themen 5
K Problem mit "Random" Java Basics - Anfänger-Themen 5
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
sserio Problem beim Anzeigen Java Basics - Anfänger-Themen 5
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
sserio Liste erstellt und ein Problem mit dem Index Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben