Schachbrett

Status
Nicht offen für weitere Antworten.

Pazago

Mitglied
Guten Abend ich wollte mir noch mal mein Schachbrett spiel (hatte vor längerer Zeit schon mal eins eröffnet) auspacken nur hab ich es nicht mehr gefunden macht ja nix neues Programmieren nur bekomme ich als Ausgabe immer Feld 5 warum?

Zur Erklärung auf Feld 1 Liegt ein Korn auf Feld 2 zwei auf Feld 3 vier auf Feld 4 acht etc.
Man sollte die Anzahl der Körner eingeben können und dann das Feld aus gegben bekommen.

Java:
package schach1;

import javax.swing.*;

public class Brett1 {

	public static void main (String[]args)
	{
	String Eingabe = ""; float Korn = 2	;
	Eingabe = JOptionPane.showInputDialog("Welches Korn willst du wissen?");
	float Korn1 = Float.parseFloat(Eingabe);
	int Feld = 0 ;
	
	do {
		Feld = (int) (Korn * Korn) ;
		Feld++ ;
	}
			while (Korn==Feld);
		System.out.println("Korn liegt auf Feld " +Feld);
	}// main
}// class

Vielen Dank schon mal im Voraus 😀

Lg Pazago
 
warum sollte es denn nicht so sein, was ist deiner Meinung nach der Ablauf bzw. wie wünscht du ihn dir?
welche Variable soll auf welche wirken, welche Schleife soll warum wie lange laufen, was passiert in jedem Durchlauf usw?
für mindestens zwei unterschiedliche Eingaben?

ich könnte dir natürlich sagen, was aktuell passiert, aber wäre es nicht sinnvoller wenn dir das selber überlegst?
es steht dir frei, mit Kopf oder System.out.prinlnt()-Ausgaben deine Überlegungen/ die Programmzwischenstände zu überprüfen,
ansonsten wird schon jemand sagen, welche Stelle nicht hinhaut
 
Guten Abend ich wollte mir noch mal mein Schachbrett spiel (hatte vor längerer Zeit schon mal eins eröffnet) auspacken nur hab ich es nicht mehr gefunden macht ja nix neues Programmieren nur bekomme ich als Ausgabe immer Feld 5 warum?

Zur Erklärung auf Feld 1 Liegt ein Korn auf Feld 2 zwei auf Feld 3 vier auf Feld 4 acht etc.
Man sollte die Anzahl der Körner eingeben können und dann das Feld aus gegben bekommen.

Java:
package schach1;

import javax.swing.*;

public class Brett1 {

	public static void main (String[]args)
	{
	String Eingabe = ""; float Korn = 2	;
	Eingabe = JOptionPane.showInputDialog("Welches Korn willst du wissen?");
	float Korn1 = Float.parseFloat(Eingabe);
	int Feld = 0 ;
	
	do {
		Feld = (int) (Korn * Korn) ;
		Feld++ ;
	}
			while (Korn==Feld);
		System.out.println("Korn liegt auf Feld " +Feld);
	}// main
}// class

Vielen Dank schon mal im Voraus 😀

Lg Pazago
 
Wenn Korn = 2 und Feld = 0;

dann Feld = 4
Code:
(int) (Korn * Korn)
und dann 5
Code:
Feld++;

Feld != Korn und dann beendet das programm.
 
Es soll die vom Benutzer Eingegeben Variabel Korn solange mal genommen werden bis sie dann mit der vom Nutzer übereinstimmt und die Anzahl wie es mit sich selbst mal genommen wurde möchte ich dann als Feld ausgeben.
Geht das so nicht? ???:L:noe:???:L
 
die Benutzereingabe landet in Korn1, eine Variable für die sich das Restprogramm nicht interessiert

deine Schleifenbedingung lautet [c]while (Feld == irgendwas);[/c] während in der Schleife Feld geändert wird,
das kann ja auch maximal zweimal gutgehen, eine zweite Runde nur, wenn bei der ersten Feld genau auf den Vergleichswert berechnet wird
 
Zuletzt bearbeitet von einem Moderator:
Status
Nicht offen für weitere Antworten.

Zurück
Oben