Moin, für die Prüfungsvorbereitung haben wir folgende Aufgabe bekommen, die wir (so ähnlich) in der Prüfung auf Papier lösen müssen: Schreiben Sie eine Methode nach CCD-Aspekten, welche ein Feld eines Springers (e4 = 54) erhält und alle möglichen Züge zurückgibt.
Nun habe ich mich da mal dran gewagt, aber finde meine Lösung viel zu umfangreich und ich bin mir sicher, dass man das noch vereinfachen kann, stehe aber total auf dem Schlauch. Hat jemand dazu eine Idee? Thema ist Verfahren & Werkzeuge moderner Softwareentwicklung, Stichwort: Clean Code.
Danke schon mal für Eure Hilfe!!
Nun habe ich mich da mal dran gewagt, aber finde meine Lösung viel zu umfangreich und ich bin mir sicher, dass man das noch vereinfachen kann, stehe aber total auf dem Schlauch. Hat jemand dazu eine Idee? Thema ist Verfahren & Werkzeuge moderner Softwareentwicklung, Stichwort: Clean Code.
Danke schon mal für Eure Hilfe!!
Java:
package schach;
import java.util.Map;
import java.util.TreeMap;
public class Main {
public static Map<String, String> springer(String s, int n1, int n2){
String schachbrett[][] =
{
{"a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8"},
{"b1", "b2", "b3", "b4", "b5", "b6", "b7", "b8"},
{"c1", "c2", "c3", "c4", "c5", "c6", "c7", "c8"},
{"d1", "d2", "d3", "d4", "d5", "d6", "d7", "d8"},
{"e1", "e2", "e3", "e4", "e5", "e6", "e7", "e8"},
{"f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8"},
{"g1", "g2", "g3", "g4", "g5", "g6", "g7", "g8"},
{"h1", "h2", "h3", "h4", "h5", "h6", "h7", "h8"},
};
int x = n1 - 1;
int y = n2 - 1;
Map<String, String> zuege = new TreeMap<>();
for(int i = 1; i < 9; i++){
switch(i){
case 1: zuege.put((x+1) + "" + (y-2), schachbrett[x+1][y-2]);
break;
case 2: zuege.put((x+1) + "" + (y+2), schachbrett[x+1][y+2]);
break;
case 3: zuege.put((x-1) + "" + (y-2), schachbrett[x-1][y-2]);
break;
case 4: zuege.put((x-1) + "" + (y+2), schachbrett[x-1][y+2]);
break;
case 5: zuege.put((x+2) + "" + (y-1), schachbrett[x+2][y-1]);
break;
case 6: zuege.put((x+2) + "" + (y+1), schachbrett[x+2][y+1]);
break;
case 7: zuege.put((x-2) + "" + (y-1), schachbrett[x-2][y-1]);
break;
case 8: zuege.put((x-2) + "" + (y+1), schachbrett[x-2][y+1]);
break;
}
}
return zuege;
}
public static void main(String[] args) {
System.out.println(springer("e4", 5, 4));
}
}