From 9de3f327e5c6e1741399822afb81610f578ca0f3 Mon Sep 17 00:00:00 2001 From: leonmcfly Date: Tue, 23 Jan 2024 22:49:12 +0100 Subject: [PATCH] =?UTF-8?q?SnakeBot=20implementiert=20testForWagon=20Fehle?= =?UTF-8?q?rhaft=20wird=20noch=20=C3=BCberpr=C3=BCft?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Prog3/Praktikum05/Bot$View.class | Bin 0 -> 1426 bytes out/production/Prog3/Praktikum05/Bot.class | Bin 0 -> 2694 bytes .../Prog3/Praktikum05/EscapeBot.class | Bin 0 -> 1128 bytes .../Prog3/Praktikum05/ManualBot.class | Bin 0 -> 1753 bytes src/Praktikum05/EscapeBot.java | 26 +++++- src/Praktikum05/ManualBot.java | 2 +- src/Praktikum05/SnakeBot.java | 75 ++++++++++++++++++ 7 files changed, 99 insertions(+), 4 deletions(-) create mode 100644 out/production/Prog3/Praktikum05/Bot$View.class create mode 100644 out/production/Prog3/Praktikum05/Bot.class create mode 100644 out/production/Prog3/Praktikum05/EscapeBot.class create mode 100644 out/production/Prog3/Praktikum05/ManualBot.class create mode 100644 src/Praktikum05/SnakeBot.java diff --git a/out/production/Prog3/Praktikum05/Bot$View.class b/out/production/Prog3/Praktikum05/Bot$View.class new file mode 100644 index 0000000000000000000000000000000000000000..24473772cea1babb4e21f86e3195c73bffe4371d GIT binary patch literal 1426 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 literal 0 HcmV?d00001 diff --git a/out/production/Prog3/Praktikum05/ManualBot.class b/out/production/Prog3/Praktikum05/ManualBot.class new file mode 100644 index 0000000000000000000000000000000000000000..33e5f51f1e45e3254cdf39f88db010ee5ef65ca5 GIT binary patch literal 1753 zcmZuy-%}e^6#j0qVMDrw5Pr1S)`k|_BouL%R6mSh8)4d9#q zhCcYpjPhbfVWxES!5PP?GtM~UIOAhyeDl#^#s{bR-A%xN?Bwj-bMHOhJ?A^;+&p>q z=oD02&0EryX<2wU#Qy{;SD!$rWfAvTVy85$K5B%{(wy&1Au}7m``m zvFwFZd`3r5pv7CLxK<&V&6~C@okoOkOow6MIGO~)b(SBMU0D?HS++oX71AmtC+y{l zOH^qVQz7UGE00AE829l8|c6ZBGr37Y1$RD;Q1f06tF;R6{g;tZ)7vt8*#^QB_ZwC4w-A)G~2N0)(fI8S^pLIzT2D4;JZ zn1YJ57RN#MRHQE$xPXfSL0hi78OxReZL#?Oxeg(YgpM8qm(Y8VQZE@qSTxIvqosKw z_+#;jAd&)NP1(I@;4-c-n{tK3ln=RcEB8R=-Bf%oh^w?PgLs)kIfz#|%m+Noq$A7G{oR~ikU43qc&{0_j@JYN z`9i5&b(K{#x<{c$(AaujF1uFA4q}WfrllmJ8$udysJb{GV)Ff}c5fKCslfbBg(Pd$ z;F}eTQ*@D+R=hpF3Ylxd6r;3DSHv| z92FS4NWYI42)kHyAHV$2)D6O!47F)$YP~Jdvkj5hfj;{XjoWDc8j&wK@53bDO|$|U zX=e~GgehtrRXf}whI-oY7TzYRhAeJ#jp*Vt+BI-(*FSvvQ#^f$labR~cs}tJB3tO5 z>ir&1dIvS%K%i6GLhK6<=VQJD6q7PanWy9_E0l6gvK-eaS30#w-xm5m!MJ}Quz~B; zU-I+;P3isA2R!{kKYFhVN~L zhc?5jo8gg7F|~nXDx@KXwDC_@HL8&vq-P_qZ)5yh8u&f>(g^cAOj24%M}%~?lD;-x zXYKfbN%;|-_z9=*GtS@_URJ*%ir;uyJ>_-tI}iT@F^}>Do$BE3JDBkjvb#_IF5bbr zUXuUBEarI9U7mOr&40rup5cy;IDev'; + } + } + } 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(); + } +}