123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- 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) {
- int rockPosition = findNextRock(view);
- if (rockPosition != -1) {
- System.out.println(counter + "| RockPosition: " + rockPosition);
- return testForWagon(view, rockPosition);
- } else {
- ++counter;
- if (counter < 8)
- return testForWagon(view, rockPosition);
- else {
- if (view.data.charAt(10) == '*' || view.data.charAt(11) == '*') {
- counter = 0;
- return '>';
- } else if (view.data.charAt(13) == '*' || view.data.charAt(14) == '*') {
- counter = 0;
- return '<';
- }else{
- if(leftOrRight.nextBoolean() == true) {
- counter = 0;
- return '<';
- }else {
- counter = 0;
- return '>';
- }
- }
- }
- }
- }
- throw new Exception("Quit");
- }
-
-
- private char determineNextStep(int rockPosition,View view) {
- if (rockPosition < 10)
- return '^';
- else if(rockPosition == 13 || rockPosition == 14 || rockPosition == 18 || rockPosition == 19 || rockPosition == 23 || rockPosition == 24 && !(view.data.charAt(13) != '*' && view.data.charAt(14) != '*'))
- return '>';
- else if((rockPosition == 10 || rockPosition == 11 || rockPosition == 15 || rockPosition == 16 || rockPosition == 20 || rockPosition == 21) && !(view.data.charAt(10) != '*' && view.data.charAt(11) != '*'))
- return '<';
- else return '^';
- }
-
- private int findNextRock(View view) {
- return view.data.indexOf('@');
- }
-
- private char testForWagon(View view, int rP){
- char move = ' ';
- if (view.data.charAt(7) == '*'){
- if(view.data.charAt(11) == '*' || view.data.charAt(13) == '*'){
- if(view.data.charAt(11) == '*' || view.data.charAt(10) == '*'){
- return '>';
- }else if(view.data.charAt(13) == '*' || view.data.charAt(14) == '*'){
- return '<';
- }
- }else if(view.data.charAt(11) != '*' && view.data.charAt(13) != '*'){
- if(view.data.charAt(8) == '*' || view.data.charAt(9) == '*'){
- if(view.data.charAt(10) == '*'){
- return '>';
- }else if(view.data.charAt(14) == '*'){
- return '<';
- }
- }else if(view.data.charAt(5) == '+' || view.data.charAt(6) == '*'){
- if(view.data.charAt(10) == '*'){
- return '>';
- }else if(view.data.charAt(14) == '*'){
- return '<';
- }
- }
- }
- }else{
- move = determineNextStep(rP, view);
- }
- System.out.println(move);
- return move;
- }
-
- public static void main(String args[]){
- Bot sbot = new SnakeBot(args);
- sbot.run();
- }
- }
|