diff --git a/out/production/Prog3/Praktikum05/Bot$View.class b/out/production/Prog3/Praktikum05/Bot$View.class new file mode 100644 index 0000000..2447377 Binary files /dev/null and b/out/production/Prog3/Praktikum05/Bot$View.class differ diff --git a/out/production/Prog3/Praktikum05/Bot.class b/out/production/Prog3/Praktikum05/Bot.class new file mode 100644 index 0000000..1f71e12 Binary files /dev/null and b/out/production/Prog3/Praktikum05/Bot.class differ diff --git a/out/production/Prog3/Praktikum05/EscapeBot.class b/out/production/Prog3/Praktikum05/EscapeBot.class new file mode 100644 index 0000000..0130843 Binary files /dev/null and b/out/production/Prog3/Praktikum05/EscapeBot.class differ diff --git a/out/production/Prog3/Praktikum05/ManualBot.class b/out/production/Prog3/Praktikum05/ManualBot.class new file mode 100644 index 0000000..33e5f51 Binary files /dev/null and b/out/production/Prog3/Praktikum05/ManualBot.class differ diff --git a/src/Praktikum05/EscapeBot.java b/src/Praktikum05/EscapeBot.java index cdeb85f..271ecbb 100644 --- a/src/Praktikum05/EscapeBot.java +++ b/src/Praktikum05/EscapeBot.java @@ -1,20 +1,40 @@ package Praktikum05; +import java.util.Random; + public class EscapeBot extends Bot{ protected EscapeBot(String args[]){ super(args); } + + private Random schritte = new Random(); + + private int s = 5; + @Override protected char nextMove(View view) throws Exception { + boolean exit = false; + while(!exit){ + /*if(view.data.contains("o")){ - + }*/ + if(s == 5){ + for(int i = 1; i == s; i++ ){ + return '^'; + } + boolean turn = schritte.nextBoolean(); + if(turn == true){ + return '<'; + }else{ + return '>'; + } + } + } throw new Exception("Quit"); } - - public static void main(String args[]){ Bot ebot = new EscapeBot(args); ebot.run(); diff --git a/src/Praktikum05/ManualBot.java b/src/Praktikum05/ManualBot.java index a9a92b3..5beb11a 100644 --- a/src/Praktikum05/ManualBot.java +++ b/src/Praktikum05/ManualBot.java @@ -28,7 +28,7 @@ public class ManualBot extends Bot { case "d": return '>'; case "q": - exit = true; + command = null; break; default: System.out.println("Kommando nicht verfügbar bitte einen anderes Kommando eingeben"); diff --git a/src/Praktikum05/SnakeBot.java b/src/Praktikum05/SnakeBot.java new file mode 100644 index 0000000..3ec8220 --- /dev/null +++ b/src/Praktikum05/SnakeBot.java @@ -0,0 +1,75 @@ +package Praktikum05; + +import java.util.Random; +import java.util.Scanner; + +public class SnakeBot extends Bot { + + + protected SnakeBot(String[] args) { + super(args); + } + + public int counter = 0; + private Random leftOrRight = new Random(); + @Override + protected char nextMove(View view) throws Exception{ + boolean exit = false; + while(!exit){ + System.out.println(counter); + int rockPosition = findNextRock(view); + if(rockPosition != -1){ + testForWagon(view); + return determineNextStep(rockPosition); + }else{ + testForWagon(view); + ++counter; + if (counter < 8) + return '^'; + else{ + if(leftOrRight.nextBoolean() == true) { + counter = 0; + return '<'; + }else { + counter = 0; + return '>'; + } + } + } + } + throw new Exception("Beendet"); + } + + private char determineNextStep(int rockPosition) { + if (rockPosition < 10) + return '^'; + else if(rockPosition == 13 || rockPosition == 14 || rockPosition == 18 || rockPosition == 19 || rockPosition == 23 || rockPosition == 24) + return '>'; + else if(rockPosition == 10 || rockPosition == 11 || rockPosition == 15 || rockPosition == 16 || rockPosition == 20 || rockPosition == 21) + return '<'; + else return 0; + } + + private int findNextRock(View view) { + return view.data.indexOf('@'); + } + // test funktioniert nicht muss angepasst werden vielleicht als boolean oder so + private char testForWagon(View view){ + if (view.data.charAt(7) == '*'){ + if (view.data.charAt(11) != '*') { + return '<'; + }else { + if (view.data.charAt(13) == '*') { + return 'V'; + } else { + return '>'; + } + } + }else return 0; + } + + public static void main(String args[]){ + Bot sbot = new SnakeBot(args); + sbot.run(); + } +}