Vectoren

ichebem

Mitglied
Jo, ich mal wieder... also wenn ich das jetzt richtig verstanden habe, sind vectoren so ziemlich endlos!

Bsp: Ichmache ne Statistik über Hunde und deren Gewicht........... und das soll nachher als eine lange liste ausgegeben werden.

Dafür bräuchte ich meiner Logik nach dann 2Vectoren

der erste heißt namensvector und der 2te gewichstvector.... wenn ich jetzt beiden vectoren jeweils auf die gleich position [1] und [1] Name und gewicht eingebe, sind dieses gespeicherte.

Frage 1: wie mache ich es, dass bei der nächsten Dateneingabe immer in das nächste "Feld" geschrieben wird? also [1] beim ersten mal und beim 2ten mal automatisch [2].


Frage 2: wie lese ich Vectoren wieder aus, also nach Eingabe aller Daten soll es möglich sein alles eingegeben abzufuren

Frage 3:ist es möglich die eingegeben Daten zu sortieren, also zum beispiel zuerst der schwerste, dann der 2t schwerstee.....

ich sag schonmal danke ;)

mfg
 
Hallo,

Zu 1
Wie du schon sagst, automatisch. Da brauchst du nichts zu tun.

Zu 2
Da kann dir die API helfen. Da kannst du nachlesen welche Operationen alle beim Vector möglich sind
http://java.sun.com/j2se/1.5.0/docs/api/

Eine Möglichkeit ist zum Beispiel get(). Wie halt die Methode von der Bezeichnung her aussagt.

Zu 3
Ja, ist es. Die Klasse Collections enthält nützliche Methoden, die man auf jede Collection (also auch Vectoren) anwenden kann.
Wenn du die Daten direkt sortiert einfügen möchtest, solltest du dir mal das TreeSet anschauen.

Ich würde dir empfehlen eine ArrayList statt einem Vector zu nehmen, da diese westenlich schneller ist.
Weiterhin würde ich dir empfehlen eine Klasse zu schreiben, die den Namen des Hundes enthält und das Gewicht. So brauchst du nur eine ArrayList, in der die Objecte deiner Klasse speichern kannst. So kannst du auch sicher sein, dass du zu dem Namen immer das richtige Gewicht hast.

MFG

zEriX
 
gut gut..mache es mit arrylist... atm sieht mein code so aus:

Java:
import java.io.*;
import java.util.*;

public class score {

	public static void scored(String nam, long endtime) 
	throws IOException {

	BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));
	
	System.out.println (nam + "'s Zeit: " + endtime);

	List namensliste = new ArrayList();
	namensliste.add(nam);

	List zeitliste = new ArrayList();
	zeitliste.add(endtime);
	
	System.out.println ("----------------");
	System.out.println (nam + "'s neue Zeit: " + endtime);
	System.out.println ("----------------");
	System.out.println ("Aktuelle Highscore (Level unabhängig)");
	System.out.println ("----------------");
	
	for (int i = namensliste.size() - 1; i >= 0; i--) {

		String ausgabe1 = (String) namensliste.get(i);
		String ausgabe2 = (String) zeitliste.get(i);
		System.out.println (ausgabe2 +": " + ausgabe1);
		System.out.println ("----------------");
	}
	

	}
}

soll also eigentlich was anzeigen, noch unsortiert, zum sortieren suche ich später noch die operatoren... frage wäre ob da pls mal einer drübergucken könnte, da ist nämlich i-was falsch!

Fehlermeldung:
.\score.java uses unchecked or unsafes operations
Recompile with -Xlint: unchecked for details

außerdem mag er das wie ich die arralist starte i-wie net
 
Das ist kein Fehler sondern nur eine Warnung.

Finde ich gut, wie du Tipps beherzigst. Siehe eigene Klasse, um 2 Listen zu vermeiden.

MFG

zEriX
 
das ist es ja.. ich weiß es nicht.. ich kriege auf einmal diese fehlermeldung, da steht net mehr und net weniger, aber ich verstehe sie net, war auf einmal da ohne das ich was geändert habe, davor hatte ich immer die Fehlermeldungen:

./score.java:12 : cannot find symbol
symbol: class arraylist
location: class score


list.namensliste = new arraylist.....

was auch gar nicht gehen konnte, weil ich die class arralist nicht habe, wie mir gerade aufgefallen ist, das muss ich ändern, wie starte ich ne arraylist? ich werde mal ein bischen danach rumsuchen, aber das erklärt auch nicht die aktuelle fehlermeldung

Das ist kein Fehler sondern nur eine Warnung.

Finde ich gut, wie du Tipps beherzigst. Siehe eigene Klasse, um 2 Listen zu vermeiden.

MFG

zEriX

sorry, habe das schon gelesen, aber mir ist leider nicht klar, wie ich ne long und String variable zu einer einzigen zusammenführen kann ;)
 
Hab ich ja geschrieben. Du sollst dir eine eigene Klasse schreiben. Wenn du dir die Grundlagen mal angeschaut hättest, was du wie es aussieht nicht möchtest, wüsstest du wie man eine Klasse schreibt.

Es wird vor allem gut, wenn du deine Listen nachher sortieren möchtest. Wie willst du denn die Namensliste in die gleiche Reihenfolge sortieren, wie die Punkte/GewichtsListe?

MFG

zEriX
 
@zerix.... ich hätte zum Sortieren nochmal ne Frage! atm habe ich 2 ArrayListe, aber die kann ich bei derzeitigem Quellcode leicht zusammenschließen.
Du hast irgendwas von Java-Funktionen und einer Sortierklasse gesagt.... jetzt nochmal ganz genau: wie sortiere ich eine ArrayList?

und an alle die es interessiert, ja man siehe, das habe ich ohne weitere Hilfe alles hingekriegt (für die Frage irrelevant):

Java:
import java.io.*;
import java.util.*;

public class start  {											// | Start der Start-Klasse								

	public static void main (String[] args) 							// | Start der Main-Methode					
	throws IOException {
	name testklasse = new name();									// | 
	int a = 0;											// | 
	int c = 0;											// | 
													// | Initialisierung einiger Variablen
	List zeitliste1 = new ArrayList();								// | (z.B. der ArrayLists für die Rangliste,....)					
	List namensliste1 = new ArrayList();								// | 								
	List zeitliste2 = new ArrayList();								// | 				
	List namensliste2 = new ArrayList();								// | 	
	List zeitliste3 = new ArrayList();								// | 		
	List namensliste3 = new ArrayList();								// | 						
	
	String nam = "Unknown";										// | Spielername wird auf "Unknown" festgelegt	
											
	while (a == 0) {										// | "Eigentlicher" Programmstart mit Beginn der While-Schleife
		
		System.out.println ("----------------");						// | 			
		System.out.println ("--- Spielername:" + nam + "---");					// | Ausgabe des Hauptmenüs							
		System.out.println ("-----<Menu>-----");						// | und Eingabeaufforderung	
		System.out.println ("(1) Spiel starten");						// | zum Aussuchen einer der Optionen
		System.out.println ("(2) Highscore anschauen");						// | 
		System.out.println ("(3) Name umbenennen");						// | 		
		System.out.println ("(4) Programm beenden");						// | 		
		System.out.println ("----------------");									
	
		BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));		// | Initialisierung der "bin"-Variablen um Auslesen von Usereingaben zu ermöglichen

		String menuwahl = bin.readLine();							// | Auslesen der Usereingabe
		int menuewahl = Integer.parseInt(menuwahl);						// | Umwandeln der String-Variable zu Int, um If-Abfrage zu ermöglichen

		if (menuewahl == 1) {									// | 								
			spiel.Levelw(nam, namensliste1, zeitliste1, 					// | Aufruf der Spiel-Klasse
				namensliste2, zeitliste2, namensliste3, zeitliste3);			// | 							
			
		} else if (menuewahl == 2) {								// | 
			rang.ring(namensliste1, zeitliste1, 						// | Aufruf der Rang-Klasse
				namensliste2, zeitliste2, namensliste3, zeitliste3);			// | 	

		} else if (menuewahl == 3) {								// | 	
			nam = testklasse.neingabe(nam);							// | Aufruf der Name-Klasse
	
		} else if (menuewahl == 4) {								// | 
			System.out.println ("----------------");					// | Abfrage ob wirklich beendet werden soll					
			System.out.println("(0) Zurueck");						// | 	
			System.out.println("(1) Beenden");						// | 	
			System.out.println ("----------------");					// | 	

			String ab = bin.readLine();							// | Änderung der a-Variablen, um While-Schleife
			a = Integer.parseInt(ab);							// | zu beenden / bzw. weiterlaufen zu lassen

		} else {										// | 
			System.out.println ("----------------");					// | Hinweis auf Fehler bei Auswahl der Optionen
			System.out.println ("Error bei der Eingabe, Bitte neu wählen.");   		// |   	
			System.out.println ("----------------");					// | 
		}
	
	}												// | Ende der While-Schleife
	
	}												// | Ende der Main-Methode

}													// | Ende der Start-Klasse
Java:
import java.io.*;
import java.util.*;

public class spiel {															// | Spiel-Klasse

	public static void Levelw(String nam, List zeitliste1, List namensliste1, List zeitliste2, 					// | Levelw-Methode, aufgerufen aus der Mainmethode in der Start-Klasse
		List namensliste2, List zeitliste3, List namensliste3)                                                                          
	throws IOException {														
		System.out.println ("----------------");										// |		
		System.out.println("Bitte suchen sie ein Level aus (1-3)");    								// | Eingabeaufforderung an den User					
		System.out.println ("----------------");										// |

		BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));						// | Initialisierung der "bin"-Variablen um Auslesen von Usereingaben zu ermöglichen

		String level = bin.readLine();												// | Auslesen der Usereingabe	
		int levelw = Integer.parseInt(level);											// | Umwandeln der String-Variable zu Int, um If-Abfrage zu ermöglichen
		
		long hightime = 0;													// | Initialisierung der "Hightime" Variablen

		if (levelw == 1) {													// | If-Abfrage, welche die zuvor vom User gewählte Option ausführt
			System.out.println ("----------------");
			System.out.println("Level 1, tippen sie einfach die Zahlenreihe schnellstmoeglich ab!(Start = >Enter<)");
															
			int multiplikator = 1000;											// | Festlegung des Mulitplikators für Level 1
									
			code.coden1(multiplikator, nam, namensliste1, zeitliste1);							// | Aufruf der "eigentlichen" Spielmethode für Level 1 
			

		}else if (levelw == 2) {
			System.out.println ("----------------");
			System.out.println("Level 2, tippen sie einfach die Zahlenreihe schnellstmoeglich ab!(Start = >Enter<)");

			int multiplikator = 10000;											// | Festlegung des Mulitplikators für Level 2

			code.coden2(multiplikator, nam, namensliste2, zeitliste2);							// | Aufruf der "eigentlichen" Spielmethode für Level 2 
			

		}else if (levelw == 3) {
			System.out.println ("----------------");
			System.out.println("Level 3, tippen sie einfach die Zahlenreihe schnellstmoeglich ab!(Start = >Enter<)");
			
			int multiplikator = 100000;											// | Festlegung des Mulitplikators für Level 3

			code.coden3(multiplikator, nam, namensliste3, zeitliste3);							// | Aufruf der "eigentlichen" Spielmethode für Level 3 
			

		}else {
			System.out.println ("----------------");									// | Meldung einer falschen Eingabe	
			System.out.println("Error bei der Levelwahl");									// | bei der Auswahl der Optionen
			System.out.println ("----------------");									// | 
		}
															
	
	}																// | Beenden der Levelw-Methode
											
}																	// | Beenden der Spielklasse, Rückkehr in die While-Schleife der Start-Klasse
Java:
import java.io.*;
import java.util.*;

public class code {																// | Start der Code-Klasse

	public static void coden1(int multiplikator, String nam, List namensliste1,List zeitliste1) 						// | Start der Coden1-Methode für Level 1
	throws IOException {															// | 

		BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));							// | Initialisierung der "bin"-Variablen um Auslesen von Usereingaben zu ermöglichen
		String menuwahl = bin.readLine();												// | Durch "beliebige" Taste wird der Code-Berechner gestartet

		int zahl= (int) (Math.random() * multiplikator);										// | Zufallszahl wird errechnet und mit "Level"-Multiplikator multipliziert
		
		System.out.println ("----------------");											// | 	
		System.out.println( zahl );													// | Ausgabe der Zufallszahl
		System.out.println ("----------------");											// | 

		long zeit1 = System.currentTimeMillis();											// | Beginn der "Zeitnahme"											

		String eingabe = bin.readLine();												// | Warten auf Usereingabe	
		int einzahl = Integer.parseInt(eingabe);											// | 
			
		long zeit2 = System.currentTimeMillis();											// | Ende der "Zeitnahme"	

		long zwzeit = zeit2-zeit1;													// | Berechnen der vergangenen Zeit	
		long zeit = zwzeit/1000 ;													// | Umwandlung der Zeit von Milisekunden in Sekunden

		if (einzahl == zahl) {														// | Kontrolle ob Zufallszahl mit Usereingabe übereinstimmt
			System.out.println("Richtig! Deine Zeit war: " + zeit + " Sekunde(n)! //oder// " +zwzeit + "  Milisekunden!");		// | 
			
		score.scored1(nam, zwzeit, namensliste1, zeitliste1);										// | Start der Score-Klasse für Level 1
			
			if (zeit <= 1) {													// | 
				System.out.println("Sehr gut, " + nam + "!");									// | 
			} else if (zeit <= 2) {													// | Kurze Userbewertung durch das Programm
				System.out.println("Auch gut, " + nam + "!");									// | 
			} else if (zeit <= 4) {													// | 
				System.out.println("Naja, gerade erst aufgestanden " + nam + "?");						// | 
			} else if (zeit <= 7) {													// | 
				System.out.println("jaja, Brille vergessen stimmts? Nicht wahr " + nam +"?");					// | 
			} else {														// | 
				System.out.println("Sind sie in der ersten Klasse " + nam + "?");						// | 
			}							
			System.out.println("Super! Neues Spiel!");										// | Informationen an den User --> Rückkehr in die While-Schleife der Startklasse
		} else {
			System.out.println("Falsch! Neuer Versuch!Macht nichts " + nam + "!");							// | Informationen an den User --> Rückkehr in die While-Schleife der Startklasse
		}

    	}																	// | Ende der Coden1-Methode

	public static void coden2(int multiplikator, String nam, List namensliste2,List zeitliste2) 						// | Start der Coden2-Methode (Erklärung des Quellcodes siehe Coden1-Methode)
	throws IOException {
		
		BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));	
		String menuwahl = bin.readLine();

		int zahl= (int) (Math.random() * multiplikator);
		
		System.out.println ("----------------");
		System.out.println( zahl );
		System.out.println ("----------------");

		long zeit1 = System.currentTimeMillis();

		String eingabe = bin.readLine();
		int einzahl = Integer.parseInt(eingabe);
			
		long zeit2 = System.currentTimeMillis();

		long zwzeit = zeit2-zeit1;
		long zeit = zwzeit/1000 ;

		if (einzahl == zahl) {
			System.out.println("Richtig! Deine Zeit war: " + zeit + " Sekunde(n)! //oder// " +zwzeit + "  Milisekunden!");
			
		score.scored2(nam, zwzeit, namensliste2, zeitliste2);
			
			if (zeit <= 1) {
				System.out.println("Sehr gut, " + nam + "!");
			} else if (zeit <= 2) {
				System.out.println("Auch gut, " + nam + "!");
			} else if (zeit <= 4) {
				System.out.println("Naja, gerade erst aufgestanden " + nam + "?");
			} else if (zeit <= 7) {
				System.out.println("jaja, Brille vergessen stimmts? Nicht wahr " + nam +"?");
			} else {
				System.out.println("Sind sie in der ersten Klasse " + nam + "?");
			}
			System.out.println("Super! Neues Spiel!");	
		} else {
			System.out.println("Falsch! Neuer Versuch!Macht nichts " + nam + "!");
		}
    	}																	// | Ende der Coden2-Methode für Level 2

	public static void coden3(int multiplikator, String nam, List namensliste3,List zeitliste3) 						// | Start der Coden3-Methode (Erklärung des Quellcodes siehe Coden1-Methode) 
	throws IOException {
		
		BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));	
		String menuwahl = bin.readLine();

		int zahl= (int) (Math.random() * multiplikator);
		
		System.out.println ("----------------");
		System.out.println( zahl );
		System.out.println ("----------------");

		long zeit1 = System.currentTimeMillis();

		String eingabe = bin.readLine();
		int einzahl = Integer.parseInt(eingabe);
			
		long zeit2 = System.currentTimeMillis();

		long zwzeit = zeit2-zeit1;
		long zeit = zwzeit/1000 ;

		if (einzahl == zahl) {
			System.out.println("Richtig! Deine Zeit war: " + zeit + " Sekunde(n)! //oder// " +zwzeit + "  Milisekunden!");
			
		score.scored3(nam, zwzeit, namensliste3, zeitliste3);
			
			if (zeit <= 1) {
				System.out.println("Sehr gut, " + nam + "!");
			} else if (zeit <= 2) {
				System.out.println("Auch gut, " + nam + "!");
			} else if (zeit <= 4) {
				System.out.println("Naja, gerade erst aufgestanden " + nam + "?");
			} else if (zeit <= 7) {
				System.out.println("jaja, Brille vergessen stimmts? Nicht wahr " + nam +"?");
			} else {
				System.out.println("Sind sie in der ersten Klasse " + nam + "?");
			}
			System.out.println("Super! Neues Spiel!");	
		} else {
			System.out.println("Falsch! Neuer Versuch!Macht nichts " + nam + "!");
		}
    	}																	// | Ende der Coden3-Methode für Level 3

}																		// | Ende der Code-Klasse
Java:
import java.io.*;
import java.util.*;

public class score {											// | Start der Score-Klasse

	public static void scored1(String nam, long zwzeit, List namensliste1, List zeitliste1) 	// | Start der scored1-Methode
	throws IOException {
	
		System.out.println (nam + "'s Zeit: " + zwzeit + " Milisekunden");			// | Ausgabe der Daten, die eingetragen werden

		namensliste1.add(nam);									// | 
		String time = Long.toString(zwzeit);							// | Eintragen der Daten in die Highscore
		zeitliste1.add(time);									// | 

	}												// | Ende der scored3-Methode

	public static void scored2(String nam, long zwzeit, List namensliste2, List zeitliste2)         // | Start der scored2-Methode  (siehe scored1-Methode)
	throws IOException {
	
		System.out.println (nam + "'s Zeit: " + zwzeit+ " Milisekunden");					

		namensliste2.add(nam);									
		String time = Long.toString(zwzeit);							
		zeitliste2.add(time);
	}												// | Ende der scored3-Methode

	public static void scored3(String nam, long zwzeit, List namensliste3, List zeitliste3) 	// | Start der scored3-Methode (siehe scored1-Methode)
	throws IOException {
	
		System.out.println (nam + "'s Zeit: " + zwzeit+ " Milisekunden");

		namensliste3.add(nam);
		String time = Long.toString(zwzeit);
		zeitliste3.add(time);
	}												// | Ende der scored3-Methode


}													// | Ende der Score-Klasse --> Rückkehr in die jeweilige if-Abfrage der coden-Methoden
Java:
import java.io.*;
import java.util.*;

public class rang {										 // | Start der rang-Klasse

	public static void ring(List namensliste1, List zeitliste1, List namensliste2, 		 // | Start der ring-Methode
		List zeitliste2, List namensliste3, List zeitliste3) 				
	throws IOException {
 
	System.out.println ("----------------");						 // | 	
	System.out.println ("Aktuelle Highscore");						 // | 	
	System.out.println ("----------------");						 // | Informationen an den User	
	System.out.println ("Waehlen sie aus fuer welches Level (1-3)");			 // | +Aufforderung zur Auswahl				
	System.out.println ("----------------");						 // | 				
	
	BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));		 // | 
	String rang123 = bin.readLine();							 // | Auslesen der Auswahl des Users
	int rang = Integer.parseInt(rang123);							 // | 
	

	if (rang == 1) {									 // | if-Abfrage zur Auswahl welche Highscore angezeigt werden soll
	
	System.out.println ("----------------");						 // | 
	System.out.println ("Score Level 1: (unsortiert)");					 // | Informationen an den User
	System.out.println ("----------------");						 // | 

		for (int i = namensliste1.size() - 1; i >= 0; i--) {				 // | for-Schleife, mit "i" um alle Daten der Highscore wiederzugeben

			String ausgabe1 = (String) namensliste1.get(i);				 // | 
			String ausgabe2 = (String) zeitliste1.get(i);				 // | Auslesen der Highscore
			System.out.println ("----------------");				 // | 
			System.out.println ("Zeit: " + ausgabe1 +" von " + ausgabe2);		 // | Ausgeben der Highscore
			System.out.println ("----------------");				 // | 

		}										 // | Ende der for-Schleife 
	


	} else if (rang == 2) {									 // | Vergleiche oben

	System.out.println ("----------------");
	System.out.println ("Score Level 2: (unsortiert)");
	System.out.println ("----------------");

		for (int i = namensliste2.size() - 1; i >= 0; i--) {

			String ausgabe1 = (String) namensliste2.get(i);
			String ausgabe2 = (String) zeitliste2.get(i);
			System.out.println ("----------------");
			System.out.println ("Zeit: " + ausgabe1 +" von " + ausgabe2);
			System.out.println ("----------------");
		}	
	


	} else if (rang == 3) {									 // |  Vergleiche oben

	System.out.println ("----------------");
	System.out.println ("Score Level 3: (unsortiert)");
	System.out.println ("----------------");

		for (int i = namensliste3.size() - 1; i >= 0; i--) {

			String ausgabe1 = (String) namensliste3.get(i);
			String ausgabe2 = (String) zeitliste3.get(i);
			System.out.println ("----------------");
			System.out.println ("Zeit: " + ausgabe1 +" von " + ausgabe2);
			System.out.println ("----------------");
		}
	
	} else {										 // | wenn nichts ausgewählt
		System.out.println ("----------------");
		System.out.println ("Error bei der Auswahl!");					 // | Information an den User
		System.out.println ("----------------");
	}

	}											 // | Ende der ring-methode

}												 // | Ende der rang-Klasse --> Zurück in die While-Schleife der Main-Methode
Java:
import java.io.*;

public class name {									// | Start der Name-Klasse

	public static String neingabe(String nam) 					// | Start der neingabe-Methode
	throws IOException {

	BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));	// | Initialiserung einiger notwendiger Variablen	
	int b = 0;									// | 

	while (b == 0) {								// | Start der While-Schleife zur Namensänderung 
	
		System.out.println ("----------------");				// | 
		System.out.println("Derzeitiger Name: " + nam );			// | 
		System.out.println ("(0) Umbenennen");					// | Informationen an den User 
		System.out.println("(1) Zurueck");					// | 
		System.out.println ("----------------");				// | 
		
		String namenn = bin.readLine();						// | Auswahl der Optionen durch Eingabe durch den User
		int ncheck = Integer.parseInt(namenn);					// | 

		if (ncheck == 0) {							// | if-Abfrage zur Kontrolle der vom User gewählten Option

			System.out.println ("----------------");			// | 
			System.out.println("Geben sie nun den neuen Namen ein!");	// | Informationen an den User 
			System.out.println ("----------------");			// | 
			
			nam = bin.readLine();						// | Übernahme des eingegeben Usernamens
			
						
		} else if (ncheck == 1){						// | 
			b = b + 1;							// | Beenden der While-Schleife durch Änderung von "b"

		} else {
			System.out.println ("----------------");			// | 
			System.out.println("Error bei der Auswahl");			// | Informationen an den User
			System.out.println ("----------------");			// | 
		}
	}
	return (nam);									// | Rückgabewert des Spielernamens

	}										// | Ende der neingabe-Methode 

}											// | Ende der Name-Klasse --> Rückkehr in die While-Schleife der Main-Methode

+ausführlichere Dokumentation:
Java:
Dokumentation

Dieses Dokument soll der zusätzlichen Dokumentation, neben den Anmerkungen im Quellcode, der Java-Anwedung "Abtippen ultimativ" dienen.


Die Java-Anwendung ist im Stande, einen "Zufallscode" zu generieren, und die Zeit zu messen, welche benötigt wird, um den Code einzutippen. Anschließend wird die Zeit zusammen mit dem Namen, welcher änderbar ist in einer temporären Highscore gespeichert. Insgesamt verfügt das Spiel über drei Schwierigkeitsstufen, wobei es für jede Schwierigkeitsstufe eine einzelne Highscore gibt, welche jedoch nicht nach Bestzeiten sortiert ist.


Der programmiertechnische Aufbau:

Um diese Optionen auszuführen arbeitet die Anwendung mit 6 Klassen. Die "Main" Klasse ist die Start-Klasse, welche auch die Main-Methode enthält. Nach Initialisierung einiger Variablen beginnt eine While-Schleife, welche durch den Benutzer beendet werden kann, wobei somit die gesamte Anwendung beendet wird. Innerhalb der While-Schleife, in welcher das "Hauptmenü" der Anwendung ist, wählt der Benutzer nun eine der Optionen, wobei dann eine "Unterklasse" aufgerufen wird. Die Optionen werden durch eine Benutzereingabe aufgerufen, wobei durch eine if-Abfrage abgefragt wird, welche Option ausgeführt werden soll.


Die Unterklassen:


Spiel-Klasse:
In der Spiel-Klasse, wird der benutzer zunächst aufgefordert ein Level auszuwählen, dies geschieht ebenfalls durch eine if-Abfrage. Nach der Auswahl wird ein "Level"-Multiplikator festgelegt, und anschließend die Klasse zur Code-Generation gestartet.

Code-Klasse:
Die Code-Klasse besteht aus drei Methoden. Die Methoden sind gleich aufgebaut, lediglich einige Zahlen (z.B. Multiplikator,...) sind aufgrund der 3 Level verschieden. In der Methode wird eine Zufallszahl generiert, welche der Benutzer schnellstmöglich eingeben soll. Dabei wird die Zeit zwischen Generierung der Zufallszahl und Eingabe durch den Benutzer gemessen. Wurde die richtige Zahl eingetippt, so wird die nächste Klasse (Score-Klasse) aufgerufen, nachdem der Benutzer eine kurze Bewertung der Schnelligkeit bekommen hat. Wurde jedoch eine falsche Zahl eingegeben, wird die Methode beendet, und man kehrt ins "Hauptmenü", also die Start-Klasse, zurück.
 
Score-Klasse:
Die Score-Klasse, welche als einzige nicht in irgendeiner Weise durch den Benutzer bedient werden kann, speichert den aktuellen Spielernamen, und die benötigte Zeit in einer Array-List ab. Dabei gibt es ebenso drei Methoden für die einzelnen Level.



Rang-Klasse:
Die Rang-Klasse, welche durch das Hauptmenü aufgerufen wird, ist in der Lage die Highscore anzuzeigen. Dabei wird zunächst durch eine if-Abfrage geklärt, für welches Level die Highscore angezeigt werden soll. Anschließend werden die durch die Score-Klasse erzeugten Array-Lists abgebildet, wodurch eine Highscore entsteht, welche Namen und benötigte Zeit anzeigt. Allerdings ist die Highscore nicht nach Bestzeiten sortiert, sondern unsortiert. Außerdem wird die Highscore mit beenden des Programms resettet.

Name-Klasse:
Die Name-Klasse, welche ebenfalls durch das Hauptmenü aufgerufen wird, dient zur Änderung des aktuellen Spielernamens. Die Name-Klasse arbeitet neben der Start-Klasse als einzige Klasse mit einer While-Schleife, was bedeutet, dass sie durch eine Usereingabe beendet werden muss.

Zusammenfassung

Die oben aufgeführten Klassen arbeiten ohne bekannte Fehler. Das Programm läuft stabil, und kann nur durch von dem User absichtliche Falsch-Eingaben zum Absturz gebracht werden.

Also wer was lesen will, der kann jetzt gerne lesen, und sagen, was er davon hält, und vor allem was fehlt, damit es opjektorientiert ist.
Hat auch was gutes ohne I-net, ich habe das da oben echt alleine geschafft, und kann´s gar nicht glauben. Wegen der Netiquette habe ich mich diesmal extra bemüht!

Und auf die Frage da ganz ganz oben, brauche ich atm noch eine Antwort.

mfg ichebem
 
Zuletzt bearbeitet:
Von wegen alleine hinbekommen, du hast gestern hier noch Hilfe bekommen zu deinem Menu.

Edit:
Klassennamen schreibt man Gross und Variablen und Methodennamen klein!
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück