hi ich wollte mal fragen wie ich eine engine mache
das ist mein code der ist auch schon getestet und so und sollte für die engine ausreichen
also für den Anfang möchte ich erstmal einen brutal force algorithmus schreiben der einfach jeden move durchgeht und dann schaut ob man verliert oder nicht.
das ist mein erster Ansatz
jetzt hab ich gleich mehrere fragen
brauche ich für die engine in possiblemoves and makemove eine überladung mit zusätzlicher Board variable
kennt ihr vielleicht eine guten beitrag, tutorial für KI dann würde ich das nämlich auch mal mit einer KI probieren
ergibt mein Ansatz Sinn oder nicht(das mit rekursion blick ich noch net ganz)
was sollte die engine zurückgeben? eine LinkedList<LinkedList<Input>> um jede mögliche abfolge zu speichern und das hab ich jetzt noch net gemacht dann auf den ersten platz der LinkedList<Input> irgentwie eine 1 oder 0 für gewinnen oder verlieren zu machen oder eine void?
also schreibt mir bitte mal was ihr bei einer engine zurückgeben würdet
Danke schonma für euer Feedback
das ist mein code der ist auch schon getestet und so und sollte für die engine ausreichen
Java:
public class Board{
private HashMap<Coordinates, Figur> playingField;
private int brettGröße;
public LinkedList<Input> possibleMoves(int moveanzahl )
public LinkedList<Input> possibleMoves(int moveanzahl, Board board )
public void makeMove(Input input, Board board,int moveanzahl)
public void makeMove(Input input, int moveanzahl)
}
public record Coordinates(int x, int y){}
public record Figur(Color color, Typ typ){}
public class Input{
private Coordinates location;
private Coordinates goal;
public void getInput()// fragt den user nach input
}
also für den Anfang möchte ich erstmal einen brutal force algorithmus schreiben der einfach jeden move durchgeht und dann schaut ob man verliert oder nicht.
das ist mein erster Ansatz
Code:
public void engine(Board board, int moveanzahl) {
if(moveanzahl<1){
System.out.println("invalid Input for moveanzahl")
}
if(moveanzahl==50){
System.out.println("Done")
}else{
for(int i=0;i<board.possibleMoves(moveanzahl, board).size();i++) {
LinkedList<Input> moveFolgen=new LinkedList<Input>();
moveFolgen.add(board.possibleMoves(moveanzahl, board).get(i));
board.makeMove(board.possibleMoves(moveanzahl, board).get(i), board, moveanzahl);
engine(board, moveanzahl+1)
}
}
jetzt hab ich gleich mehrere fragen
brauche ich für die engine in possiblemoves and makemove eine überladung mit zusätzlicher Board variable
kennt ihr vielleicht eine guten beitrag, tutorial für KI dann würde ich das nämlich auch mal mit einer KI probieren
ergibt mein Ansatz Sinn oder nicht(das mit rekursion blick ich noch net ganz)
was sollte die engine zurückgeben? eine LinkedList<LinkedList<Input>> um jede mögliche abfolge zu speichern und das hab ich jetzt noch net gemacht dann auf den ersten platz der LinkedList<Input> irgentwie eine 1 oder 0 für gewinnen oder verlieren zu machen oder eine void?
also schreibt mir bitte mal was ihr bei einer engine zurückgeben würdet
Danke schonma für euer Feedback