Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 13:46

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Mein Kleines Programm

Discussion on Mein Kleines Programm within the Java forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2015
Posts: 44
Received Thanks: 8
Exclamation Mein Kleines Programm

Hallo,

ich habe ein kleines Programm geschrieben, wo man verschiedene Schwierigkeiten wählen kann.

Da ich dies alles mit Absicht sehr ausführlich schreibe, habe ich manche Codes doppelt etc.. (Also nicht wundern).

Nun funktioniert alles in dem Schwierigkeitsgrad Einfach wunderbar.
Jedoch wenn ich auf den Schwierigkeitsgrad Mittel gehen möchte, wird das Programm nicht weiter ausgeführt.

Anbei seht ihr den Code.

Code:
package erstesSpiel;

import javax.swing.JOptionPane;

import org.omg.CORBA.TIMEOUT;

public class erstesSpiel {

	private static final String String = null;

	public static void main(String[] args) {

		int startergeldEinfach = 10;
		double startergeldMittel = 5;
		double startergeldSchwer = 2;

		JOptionPane.showMessageDialog(null, "Herzlich-Willkommen bei meinem kleinen Spiel.");

		String input = JOptionPane.showInputDialog(null, "Du befindest dich nun in dem Startmenü\n\n"
				+ "Wähle\n\n 1 für Spiel starten\n2 für Spielbeschreibung\n" + "3 für die Credits.\n\n");

		if (input.equals("starten")) {
			String schwierigkeit = JOptionPane.showInputDialog(null,
					"Bitte wäle nun deinen Schwierigkeitsgrad\n\n" + "Einfach\n" + "Mittel\n" + "Schwer\n");
			while (schwierigkeit.equals("Einfach")) {

				double startergeld = 10;

				String einfach = JOptionPane.showInputDialog(null,
						"Du hast den Schwierigkeitsgrad Einfach gewählt.\n" + "Dein Startkapital beträgt "
								+ startergeldEinfach + " Credit´s.\n" + "in was möchtest du investieren?\n"
								+ "Dir stehen folgende Investitionen zur Verfügung:\n" + "\n" + "Automobilbranche\n"
								+ "IT-Branche\n" + "Pharmabranche\n" + "Musikindustrie\n" + "Uhrenindustrie\n"
								+ "Illegale geschäfte.");
				if (einfach.equals("Automobilbranche")) {
					JOptionPane.showMessageDialog(null, "Du hast in die Automobilbranche investiert.\n\n"
							+ "Du erhältst zu deinem Kapital einen Bonus von einem Credit.");

					JOptionPane.showMessageDialog(null, "Dein Kapital beträgt nun: " + ++startergeldEinfach);

				}

				if (einfach.equals("IT-Branche")) {
					JOptionPane.showMessageDialog(null,
							"Du hast in die IT-Branche investiert. Dein Kapital erhöht sich um zwei Credits.");

					JOptionPane.showMessageDialog(null, "Dein Kapital beträgt nun: " + (startergeldEinfach + 2));
					++startergeldEinfach;
					++startergeldEinfach;

				}

				if (einfach.equals("Pharmabranche")) {
					JOptionPane.showMessageDialog(null,
							"Du hast in die Pharmabranche investiert. Dein Kapital erhöht sich um drei Credits.");

					JOptionPane.showMessageDialog(null, "Dein kapital beträgt nun: " + (startergeldEinfach + 3));
					++startergeldEinfach;
					++startergeldEinfach;
					++startergeldEinfach;
				}

				if (einfach.equals("Musikindustrie")) {
					JOptionPane.showMessageDialog(null,
							"Du hast in die Musikindustrie investiert. Dein Kapital erhöht sich um vier Credits.");

					JOptionPane.showMessageDialog(null, "Dein Kapital beträgt nun: " + (startergeldEinfach + 4));
					++startergeldEinfach;
					++startergeldEinfach;
					++startergeldEinfach;
					++startergeldEinfach;
				}

				if (einfach.equals("Uhrenindustrie")) {
					JOptionPane.showMessageDialog(null,
							"Du hast in die Uhrenindustrie investiert. Dein Kapital erhöht sich um 5 Credits.");

					JOptionPane.showMessageDialog(null, "Dein Kapital beträgt nun: " + (startergeldEinfach + 5));
					++startergeldEinfach;
					++startergeldEinfach;
					++startergeldEinfach;
					++startergeldEinfach;
					++startergeldEinfach;

				}

				if (einfach.equals("Illegale Geschäfte")) {
					JOptionPane.showMessageDialog(null,
							"Du hast in illegale Geschäfte investiert. Dein Kapital erhöht sich um 6 Credits.");

					JOptionPane.showMessageDialog(null, "Dein Kapital beträgt nun: " + (startergeldEinfach + 6));
					++startergeldEinfach;
					++startergeldEinfach;
					++startergeldEinfach;
					++startergeldEinfach;
					++startergeldEinfach;
					++startergeldEinfach;
				}

				else {
					JOptionPane.showMessageDialog(null,
							"Bitte wähle eins der zur Verfügung stehenden Investitionen aus.");

				}

				while (schwierigkeit.equals("Mittel")) {
					
					String mittel = JOptionPane.showInputDialog(null,
							"Du hast den Schwierigkeitsgrad Einfach gewählt.\n" + "Dein Startkapital beträgt "
									+ startergeldMittel + " Credit´s.\n" + "in was möchtest du investieren?\n"
									+ "Dir stehen folgende Investitionen zur Verfügung:\n" + "\n" + "Automobilbranche\n"
									+ "IT-Branche\n" + "Pharmabranche\n" + "Musikindustrie\n" + "Uhrenindustrie\n"
									+ "Illegale geschäfte.");
					if (mittel.equals("Automobilbranche")) {
						JOptionPane.showMessageDialog(null, "Du hast in die Automobilbranche investiert.\n\n"
								+ "Du erhältst zu deinem Kapital einen Bonus von einem Credit.");

						JOptionPane.showMessageDialog(null, "Dein Kapital beträgt nun: " + ++startergeldMittel);

					}

					if (mittel.equals("IT-Branche")) {
						JOptionPane.showMessageDialog(null,
								"Du hast in die IT-Branche investiert. Dein Kapital erhöht sich um zwei Credits.");

						JOptionPane.showMessageDialog(null, "Dein Kapital beträgt nun: " + (startergeldMittel + 2));
						++startergeldMittel;
						++startergeldMittel;

					}

					if (mittel.equals("Pharmabranche")) {
						JOptionPane.showMessageDialog(null,
								"Du hast in die Pharmabranche investiert. Dein Kapital erhöht sich um drei Credits.");

						JOptionPane.showMessageDialog(null, "Dein kapital beträgt nun: " + (startergeldMittel + 3));
						++startergeldMittel;
						++startergeldMittel;
						++startergeldMittel;
					}

					if (mittel.equals("Musikindustrie")) {
						JOptionPane.showMessageDialog(null,
								"Du hast in die Musikindustrie investiert. Dein Kapital erhöht sich um vier Credits.");

						JOptionPane.showMessageDialog(null, "Dein Kapital beträgt nun: " + (startergeldMittel + 4));
						++startergeldMittel;
						++startergeldMittel;
						++startergeldMittel;
						++startergeldMittel;
					}

					if (mittel.equals("Uhrenindustrie")) {
						JOptionPane.showMessageDialog(null,
								"Du hast in die Uhrenindustrie investiert. Dein Kapital erhöht sich um 5 Credits.");

						JOptionPane.showMessageDialog(null, "Dein Kapital beträgt nun: " + (startergeldMittel + 5));
						++startergeldMittel;
						++startergeldMittel;
						++startergeldMittel;
						++startergeldMittel;
						++startergeldMittel;

					}

					if (mittel.equals("Illegale Geschäfte")) {
						JOptionPane.showMessageDialog(null,
								"Du hast in illegale Geschäfte investiert. Dein Kapital erhöht sich um 6 Credits.");

						JOptionPane.showMessageDialog(null, "Dein Kapital beträgt nun: " + (startergeldMittel + 6));
						++startergeldMittel;
						++startergeldMittel;
						++startergeldMittel;
						++startergeldMittel;
						++startergeldMittel;
						++startergeldMittel;
					}

					else {
						JOptionPane.showMessageDialog(null,
								"Bitte wähle eins der zur Verfügung stehenden Investitionen aus.");

					}

				}

			}

		}

	}
}
Vielen dank für eure Hilfe im Voraus.

Mit freundlichen Grüßen



TheRealLenon
TheRealLenon is offline  
Old 10/20/2015, 14:46   #2
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,547
Received Thanks: 1,418
Die Schleife für Einfach beginnt in Zeile 25 und endet in Zeile 187.
Die Schleife für Mittel beginnt in Zeile 106 und endet in Zeile 185.

Die Schleife für Mittel befindet sich also in der Schleife für Einfach. Die Schleife für Einfach wird aber nicht ausgeführt wenn Mittel ausgewählt wurde.

Ich würde dir empfehlen jetzt deinen Code aufzuräumen und den doppelten Code so weit wie möglich zu entfernen. Das wird später nur mehr Arbeit und ist eine unnötig große Fehlerquelle.
ComputerBaer is offline  
Old 10/20/2015, 15:47   #3
 
elite*gold: 0
Join Date: Oct 2015
Posts: 44
Received Thanks: 8
Ah Okey.. Well ****.. Danke! Hab ewig danach gesucht haha..
TheRealLenon is offline  
Old 10/21/2015, 00:59   #4
 
.SkyneT.'s Avatar
 
elite*gold: 273
Join Date: Sep 2010
Posts: 1,831
Received Thanks: 786
Quote:
Originally Posted by TheRealLenon View Post
Da ich dies alles mit Absicht sehr ausführlich schreibe, habe ich manche Codes doppelt etc.. (Also nicht wundern).
Ich würde das gar nicht erst machen, es ist nämlich nicht ausführlich sondern unnötig und redundant. Gewöhn dir so einen Code gar nicht erst an. Um einen Code "ausführlich" und leserlich zu schreiben, kann man immer noch Kommentare hinzufügen.

Soetwas ist einfach nicht nötig:
Code:
++startergeldMittel;
++startergeldMittel;
++startergeldMittel;
++startergeldMittel;
(versuch doch mal startergeldMittel um 168183 zu erhöhen, viel Glück.)

So sollte das aussehen:
Code:
startergeldMittel += 4;
das ist leicht verständlich, übersichtlich und du musst sogar weniger tippen.
.SkyneT. is offline  
Thanks
1 User
Old 10/21/2015, 08:58   #5
 
elite*gold: 0
Join Date: Oct 2015
Posts: 44
Received Thanks: 8
Quote:
Originally Posted by .SkyneT. View Post
Ich würde das gar nicht erst machen, es ist nämlich nicht ausführlich sondern unnötig und redundant. Gewöhn dir so einen Code gar nicht erst an. Um einen Code "ausführlich" und leserlich zu schreiben, kann man immer noch Kommentare hinzufügen.

Soetwas ist einfach nicht nötig:
Code:
++startergeldMittel;
++startergeldMittel;
++startergeldMittel;
++startergeldMittel;
(versuch doch mal startergeldMittel um 168183 zu erhöhen, viel Glück.)

So sollte das aussehen:
Code:
startergeldMittel += 4;
das ist leicht verständlich, übersichtlich und du musst sogar weniger tippen.
Das mite dem startergeldMittel=+4; hatte ich zuerst. jedoch wurde dies in der while schleife nicht erhöht.
TheRealLenon is offline  
Old 10/21/2015, 09:44   #6
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,547
Received Thanks: 1,418
Quote:
Originally Posted by TheRealLenon View Post
Das mite dem startergeldMittel=+4; hatte ich zuerst. jedoch wurde dies in der while schleife nicht erhöht.
Dann hattest du wahrscheinlich "startergeldMittel = 4;", dann kann sich da auch nichts erhöhen. Bei "startergeldMittel += 4;" oder länger "startergeldMittel = startergeldMittel + 4;" muss es sich erhöhen.
ComputerBaer is offline  
Old 10/21/2015, 14:36   #7
 
elite*gold: 0
Join Date: Oct 2015
Posts: 44
Received Thanks: 8
Wenn ich startergeldMittel = startergeldMittel + 4; eingegeben habe, kam immer, das die Variable doppelt deklariert wurde.
TheRealLenon is offline  
Old 10/21/2015, 14:46   #8
Moderator


 
elite*gold: 558
Join Date: Feb 2010
Posts: 6,547
Received Thanks: 1,418
Nur "startergeldMittel = startergeldMittel + 4;" und nicht "double startergeldMittel = startergeldMittel + 4;". Beim zweiten deklarierst du sie dann nämlich wirklich doppelt. Aber "startergeldMittel += 4;" muss auch funktionieren und ist etwas besser zu lesen.
ComputerBaer is offline  
Old 10/22/2015, 11:09   #9
 
XxharCs's Avatar
 
elite*gold: 34
Join Date: Apr 2011
Posts: 1,475
Received Thanks: 1,228
So viele if-Anweisungen
Nimm doch bitte enums und verwende diese, mithilfe eines switch-cases.

Deine perfomance droppt, es ist unleserlich und generell schlecht mit vielen if's zu programmieren.
Ah btw. Klassennamen schreibt man groß.

Enum Beispiel:
Code:
public enum Entscheidung {
	
	STARTEN("Starten"),
	EINFACH("Einfach"),
	AUTOMOBILBRANCHE("Automobilbranche"); // usw.
	
	private final String text;
	
	private Entscheidung(final String text) {
		
		this.text = text;
	}
	
	public boolean equalsName(String otherText) { // optional, oder du ueberschreibst die equals Methode selbst
		
		return (otherText == null) ? false : text.equals(otherText);
	}
	
	@Override
	public String toString() {
		
		return text;
	}
}
Man sollte aber generell mit Numerischen Zahlen anstatt von Strings zu arbeiten.

Du kannst auch eine weitere Klasse erstellen, welche deinen Input checkt und dementsprechen das enstprechende enum typ/wert zurück liefert.

Beispiel:
Code:
public class EntscheidungChecker {

	public Entscheidung checkEntscheidung(String input) {
		
		if(input.isEmpty())
			return Entscheidung.EMPTY;
		
		String[] splittedInput = input.split(" ");
		
		switch(splittedInput[0]) {
		
		case "Starten":
			
			return Entscheidung.STARTEN;
			
		case "Einfach":
			
			return Entscheidung.EINFACH;
			
		case "Automobilbranche":
			
			return Entscheidung.AUTOMOBILBRANCHE;
		}
		
		return Entscheidung.FEHLER; // sowas ist immer gut, falls der user was dummes eingibt
	}
}
Das Enum sieht dann so aus:
Code:
public enum Entscheidung {

	STARTEN, EINFACH, AUTOMOBILBRANCHE, FEHLER, EMPTY;
}
In der Verwendung:
Code:
Entscheidung entscheidung = entscheidungCheck.checkEntscheidung(input);

switch(entscheidung) {

case STARTEN:
	
	// dein code
	break;

case EINFACH:
	
	// dein code
	break;
	
case AUTOMOBILBRANCHE:
	
	// dein code
	break;

case FEHLER:
	
	// dein code
	break;
	
}
XxharCs is offline  
Reply


Similar Threads Similar Threads
[S] Coder für ein kleines Programm
08/26/2015 - Coders Trading - 0 Replies
Das Programm soll Daten aus 2-3 Textdateien zufällig auswählen und mir anschließend anzeigen. Meldet euch bitte nur per PN bei mir! Dort besprechen wir dann auch die Bezahlung.
[Buying] kleines Programm
08/02/2015 - Coders Trading - 5 Replies
------
[c++] kleines Programm
01/13/2014 - C/C++ - 10 Replies
Hallo liebe E-Pvp- Community, da ich mir ein wenig c++ aneignen wollte, habe ich mir vorgenommen mit einem kleinen Programm eine Datenbank auszulesen. Nun taucht aber bei mir ein Fehler auf, den ich nicht selbst lösen kann und weis auch nicht wie. Ich bin gerade dabei erst einmal eine Verbindung zur Datenbank aufzubauen. Zum Programm (mit VS2013 geschreiben): - Konsolenanwendung - mysql.h wurde schon im Includeverzeichniss hinzugefügt - Lib wurde auch schon im Bibliotheksverzeichniss...
[S] Kleines Programm
07/23/2013 - elite*gold Trading - 3 Replies
Hallo, suche ein Programm das folgendes machen soll: Es soll 2 Buttons geben. Einmal View Page-->Öffnen der Seite Pietsmiet.tv Und einmal Start Zarfirbel Bot-->Enter drücken--> pietsmiet.tv schreiben --> Enter drücken, das ganze in einem Abstand von 3-5 Minuten. Das ganze soll dan Zarfirbel-Bot heißen. Evtl. Als Design das PietSmiet Zeichen. Zahle bis zu 100 E*G. Ich möchte die Rechte an dem Bot haben.
[S]Kleines VB Programm
09/18/2012 - Coders Trading - 2 Replies
Hallo, Ich suche ein kleines VB Programm. Undzwar brauche ich einen in VB intigrierten Browser wo ich mit 1 Klick die IP ändern und die Browser Cache leeren kann. Hoffe mir kann da jemand weiterhelfen. Sollte alles Funktionieren würde ich auch 60-70e*Gold dafür zahlen..



All times are GMT +2. The time now is 13:46.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.