if-Bedingungen in C und Java

Status
Nicht offen für weitere Antworten.
J

JavaAPP

Gast
Habe mich mal an ein Spiel (Zahlen-Springen) herangewagt, bei dem ich ein Problem habe.

Zum Spiel: Auf einem sechseckigen Spielbrett (Werte,siehe Quellcode) soll ein Spielstein so viele Felder in gerader Linie weiterspringen, wie die Zahl auf dem Feld, auf dem er steht, angibt. Begonnen wird auf dem Feld in der Mitte (3). Der Anfangszug darf in eine beliebige der sechs möglichen Richtungen erfolgen. Bei jedem weiteren Zug darf jeweils nur in derselben Richtung weitergehüpft werden - oder in eine rechts oder links benachbarte Richtung. Die Hüpferei ist erfolgreich zu Ende, wenn das Ausgangsfeld wieder erreicht wird.

Richtungen: NW,NO,W,O,SW;SO

Aufgabe: Schreibe ein ´Programm, welches einen erfolgreichen Hüpfweg sucht und ein Protokoll des Weges ausgibt.
Zum Finden eines Weges wird das Speilbrett systematisch durchsucht, und zwar rekursiv. Dabei wird jedoch eine Einschränkung beachtet: Ein Feld darf in einem Hüpfweg nicht zweimal von der gleichen Richtung kommend betreten werden. Damit werden möglicherweise endlose Rundläufe vermieden.


Code:
public class Matr  {
	

	static int  Brett [][] = {{2,4,1,5,4,0,0,0,0},  //Werte des Spielbretts
							  {1,4,5,2,3,2,0,0,0},
							  {2,1,3,3,2,5,2,0,0},
							  {2,1,3,2,1,2,2,4,0},
							  {4,3,4,3,3,4,2,3,2},
							  {0,2,2,1,3,2,2,1,2},
							  {0,0,2,2,2,3,4,3,2},
							  {0,0,0,1,3,1,2,1,4},
							  {0,0,0,0,2,1,6,3,2}
							  
							  };
	
	
	
	public static abstract class  Directions
	{
		public static final int O =  0;
		public static final int SO = 1;
		public static final int SW = 2;
		public static final int W =  3;
		public static final int NW = 4;
		public static final int NO = 5;
	}
	
	
		
		public static final String O = "O"; 
		public static final String SO = "SO"; 
		public static final String SW = "SW"; 
		public static final String W = "W"; 
		public static final String NW = "NW";
		public static final String NO = "NO";  
		
	
	
	public static final String bezeichner[] = {O, SO,SW,W,NW,NO};
	
	
	
	
	

	int []B = new int [100];
	
	static int bewegung [][] = {{1,0},{1,1},{0,1},{-1,0},{-1,-1},{0,-1}};  // dx und dy der sechs Bewegungsrichtungen
	
	static int weg [][]  = new int [100][2];    // speichert den gegangenen Weg
	static int besucht [][]  = new int [9][9];	// benötigt zur Markierung besuchter Felder
	
	
	public static  void suche (int x, int y , int ausrichtung, int tiefe)
	{
		
		int z =0;
		int newx=0;
		int newy=0;
		
		if (x==4 && y==4 && tiefe!=0)
		{
			
			
			for (z=0; z < tiefe; z++)
			
			{
				
				System.out.println (weg[z][1]);
			    System.out.println ( bezeichner [weg[z][0]] );
				System.out.println (z < tiefe -1 ?" ," :"\n"); 
				
				
			}
			
			
			
		}
		// Fortsetzung der Suche in alle drei möglichen Richtungen
		for (z= (ausrichtung + 5)%6;
			z!=(ausrichtung +2)%6;
		z= (z + 1)%6) ;
		
		
		{
			weg [tiefe][0]=z;	// Speichern von Ausrichtung und 
			weg [tiefe][1]= Brett [y][x];  // Sprungweite für spätere Ausgabe
			
			newx = x + Brett [y][x]*bewegung[z][0];	         //neue x-Koordinate	
			newy = y + Brett [y][x]*bewegung[z][1];			 //neue y-Koordinate
			
			
			//Prüfung, ob die neue Position innerhalb des Bretts leigt
			// unf noch nicht in gleiche Richtung gegangen worden ist:
			
			if ( newx >=0 && newy >=0 && newx<=8 && newy <=8  )
			{
				if (Brett [newy] [newx] != (besucht [newy] [newx]) )
				{
					if (Brett [newy] [newx] != 1<<z)
					{
						besucht [newy][newx] ^=1<<z;	//Markierung setzen
						suche (newx, newy,z,tiefe+1);		//rekursiver Aufruf
						besucht [newy][newx] ^=1<<z;	//Markierung entfernen
						
						
					}
					
					
				}
				
				
				
			}
			
			
		}
		
		
		
		
		
		
	}
	
	
	public static void main(String[] args) {
		
		suche (4,4,Directions.O,0);		//Aufruf für die Startrichtung NO,O,SO
		suche (4,4,Directions.W,0);		//und zweiter Aufruf für NW,W,SW
		
		
		
		
		
			}
}
 
J

JavaAPP

Gast
Ich hatte den C - Quellcode vorliegen, und da wurden einige Sachen anders gemacht.




Code:
In C sieht das os aus:

if (newx >= 0 && newy >=0 && newx <= 8 && newy <=8 &&
            brett [newy] [newx] && ! (besucht [newy] [newx] & 1<<z))

{

      ...

}


Und so ahbe ich das in Java umgesetzt:

Code:
if ( newx >=0 && newy >=0 && newx<=8 && newy <=8  ) 
         { 
            if (Brett [newy] [newx] != (besucht [newy] [newx]) ) 
            { 
               if (Brett [newy] [newx] != 1<<z) 
               { 

                    ...


                }
Vielleicht leigt hier der Fehler.


Im C Quellcode steht in der Main-Methode noch

Code:
memset (besucht,0,sizeof (besucht));

Das habe ich in meiner Main-Methode weggelassen.
 

Griffin

Bekanntes Mitglied
Ich hab leider das eigentlich Probelm nicht verstanden? Läuft das Programm jetzt durch die veränderte IF-Abfrage nicht, oder wie soll dir geholfen werden?!?
 
J

JavaAPP

Gast
Das Programm gibt nur Unsinn aus:


Code:
3
SW
 ,
3
NW
 ,
3
O


3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O


3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O


3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O


3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O


3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O


3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O
 ,
3
SW
 ,
3
NW
 ,
3
O


3
SW
 ,
3
NW
 ,
3
O
 ,
3


Bei dem Code in meinem zweitem Post bin ich mir nicht sicher ob das von C in Java so umgesetzt wird.

Und wie ich das in Java umsetze weiß ich auch nicht

Code:
memset (besucht,0,sizeof (besucht));
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
T Mehrere if bedingungen ohne & Java Basics - Anfänger-Themen 2
B If Bedingungen kombinieren? Java Basics - Anfänger-Themen 5
B Semaphoren in Abhängigkeit an Bedingungen richtig setzen Java Basics - Anfänger-Themen 3
B Collections.sort mit zwei Bedingungen? Java Basics - Anfänger-Themen 4
D Wert des Arrays unter Bedingungen ändern Java Basics - Anfänger-Themen 1
A Bedingungen für Parameterwerte Java Basics - Anfänger-Themen 7
J Unit Testing mit vielen Bedingungen - Best Practice? Java Basics - Anfänger-Themen 9
S mehrere If Bedingungen Java Basics - Anfänger-Themen 5
U Schleife mit mehreren Bedingungen ? Java Basics - Anfänger-Themen 29
F Klassen Eigene Exception Bedingungen festlegen Java Basics - Anfänger-Themen 2
E Bedingungen abkürzen Java Basics - Anfänger-Themen 13
S Erste Schritte Begrüßung mit if-Bedingungen Java Basics - Anfänger-Themen 7
S Fragen zu Ausdrücken&Bedingungen Java Basics - Anfänger-Themen 5
G While schleife mit 2 Bedingungen geht nicht! Java Basics - Anfänger-Themen 15
H Bedingungen miteinander verknüpfen Java Basics - Anfänger-Themen 2
J if Bedingungen verknüpfen Java Basics - Anfänger-Themen 8
K Bedingungen else Java Basics - Anfänger-Themen 7
M Variablen Switch Bedingungen Java Basics - Anfänger-Themen 12
W for Schleife mit zwei bedingungen ? Java Basics - Anfänger-Themen 6
F Bedingungen mit Abfragen verknüpfen Java Basics - Anfänger-Themen 7
W Was tun die Operatoren ? und : (Bedingungen) Java Basics - Anfänger-Themen 15
T Scanner für char-wert/ if mit 2 bedingungen? Java Basics - Anfänger-Themen 5
Q If-Abfrage mit mehreren Bedingungen Java Basics - Anfänger-Themen 6
reno Bedingungen in Konfigurationsdatei Java Basics - Anfänger-Themen 2
K Bedingungen mit "und" trennen ? Java Basics - Anfänger-Themen 2
J Performance Vergleich von if-Abfragen mit mehreren Bedingungen Java Basics - Anfänger-Themen 9
M Kann man Bedingungen auch ohne Schleifen prüfen? Java Basics - Anfänger-Themen 5
C switch-case mit bedingungen? Java Basics - Anfänger-Themen 5
NightmareVirus 2 Abbruch Bedingungen in einer for-schleife Java Basics - Anfänger-Themen 2
G Schleifen mit mehreren Bedingungen Java Basics - Anfänger-Themen 4
G Mehrere If Bedingungen Java Basics - Anfänger-Themen 11
A Mehrere if Bedingungen untereinander? Java Basics - Anfänger-Themen 4
G if-Abfrage mit zwei Bedingungen Java Basics - Anfänger-Themen 6
C zwei Bedingungen in einer if Anweisung Java Basics - Anfänger-Themen 1
J Probleme mit drucken aus Java Java Basics - Anfänger-Themen 3
Gokul Java chart library suggestion for web application? Java Basics - Anfänger-Themen 2
D wie kann ich gcc aus einer .java datei heraus aufrufen? Java Basics - Anfänger-Themen 2
S Text Formatierung in Java Java Basics - Anfänger-Themen 2
B Erste Schritte yaml parsen in Java Java Basics - Anfänger-Themen 19
C Methoden Umlaute in Java Java Basics - Anfänger-Themen 18
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 3
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
K Java - Enums Java Basics - Anfänger-Themen 30
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
G Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
G Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben