Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this template, choose Tools | Templates
- * and open the template in the editor.
- */
- package thegame.players;
- import java.util.List;
- import thegame.info.Info;
- import thegame.info.InfoDetail;
- import thegame.model.Command;
- import thegame.model.CommandType;
- /**
- *
- * @author beh01
- */
- public class Mocek implements IPlayer {
- private List<InfoDetail> grenades;
- private List<InfoDetail> enemies;
- private InfoDetail closest_shot1;
- private InfoDetail closest_shot2;
- @Override
- public Command planNextMove(Info info) {
- grenades=info.getGrenades();
- enemies=info.getEnemies();
- int lenX;
- int lenY;
- double ang1;
- double ang2;
- double angR1;
- double angR2;
- int indexOfClosestTank=0;
- int indexOfClosestShot=0;
- int newDir;
- int closestShotDistance=50000;
- if (enemies.size()>2)
- {
- indexOfClosestShot=999;
- //zjisteni nejblizsi strely ktera na me leti
- for(int i=0;i<grenades.size();i++)
- {
- if ((info.getX()<grenades.get(i).getX()) &&(info.getY()>grenades.get(i).getY()))
- {
- lenX=grenades.get(i).getX()-info.getX();
- lenY=info.getY()-grenades.get(i).getY();
- ang1=grenades.get(i).getDirection()-180;
- angR1 = Math.toRadians(ang1);
- ang2=grenades.get(i).getDirection()+15-180;
- angR2 = Math.toRadians(ang2);
- if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
- {
- lenX=Math.abs(info.getX()-grenades.get(i).getX());
- lenY=Math.abs(info.getY()-grenades.get(i).getY());
- if((lenX*lenX) + (lenY*lenY)<closestShotDistance)
- {
- closestShotDistance = (int) Math.sqrt((lenX*lenX) + (lenY*lenY));
- indexOfClosestShot=i;
- }
- }
- }
- if ((info.getX()>grenades.get(i).getX()) &&(info.getY()>grenades.get(i).getY()))
- {
- lenX=info.getX()-grenades.get(i).getX();
- lenY=info.getY()-grenades.get(i).getY();
- ang1=grenades.get(i).getDirection()-90;
- angR1 = Math.toRadians(ang1);
- ang2=grenades.get(i).getDirection()-15-90;
- angR2 = Math.toRadians(ang2);
- if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
- {
- lenX=Math.abs(info.getX()-grenades.get(i).getX());
- lenY=Math.abs(info.getY()-grenades.get(i).getY());
- if((lenX*lenX) + (lenY*lenY)<closestShotDistance)
- {
- closestShotDistance = (int) Math.sqrt((lenX*lenX) + (lenY*lenY));
- indexOfClosestShot=i;
- }
- }
- }
- if ((info.getX()>grenades.get(i).getX()) &&(info.getY()<grenades.get(i).getY()))
- {
- lenX=info.getX()-grenades.get(i).getX();
- lenY=grenades.get(i).getY()-info.getY();
- ang1=grenades.get(i).getDirection();
- angR1 = Math.toRadians(ang1);
- ang2=grenades.get(i).getDirection()-15;
- angR2 = Math.toRadians(ang2);
- if((lenY/lenX<Math.tan(ang1))&& (lenY/lenX>Math.tan(ang2)))
- {
- lenX=Math.abs(info.getX()-grenades.get(i).getX());
- lenY=Math.abs(info.getY()-grenades.get(i).getY());
- if((lenX*lenX) + (lenY*lenY)<closestShotDistance)
- {
- closestShotDistance = (int) Math.sqrt((lenX*lenX) + (lenY*lenY));
- indexOfClosestShot=i;
- }
- }
- }
- if ((info.getX()<grenades.get(i).getX()) &&(info.getY()<grenades.get(i).getY()))
- {
- lenX=grenades.get(i).getX()-info.getX();
- lenY=grenades.get(i).getY()-info.getY();
- ang1=grenades.get(i).getDirection()+90;
- angR1 = Math.toRadians(ang1);
- ang2=grenades.get(i).getDirection()-15+90;
- angR2 = Math.toRadians(ang2);
- if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
- {
- lenX=Math.abs(info.getX()-grenades.get(i).getX());
- lenY=Math.abs(info.getY()-grenades.get(i).getY());
- if((lenX*lenX) + (lenY*lenY)<closestShotDistance)
- {
- closestShotDistance = (int) Math.sqrt((lenX*lenX) + (lenY*lenY));
- indexOfClosestShot=i;
- }
- }
- }
- }
- //pravy horni kvadrant
- if(indexOfClosestShot!=999)
- {
- if ((info.getX()<grenades.get(indexOfClosestShot).getX()) &&(info.getY()>grenades.get(indexOfClosestShot).getY()))
- {
- lenX=grenades.get(indexOfClosestShot).getX()-info.getX();
- lenY=info.getY()-grenades.get(indexOfClosestShot).getY();
- ang1=grenades.get(indexOfClosestShot).getDirection()-180;
- angR1 = Math.toRadians(ang1);
- ang2=grenades.get(indexOfClosestShot).getDirection()+15-180;
- angR2 = Math.toRadians(ang2);
- if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
- {
- System.out.println("fck");
- if(grenades.get(indexOfClosestShot).getDirection()-180 > info.getDirection())
- {
- newDir = grenades.get(indexOfClosestShot).getDirection()-180-info.getDirection();
- if(info.getX()>50 || info.getY()>50)
- return new Command(CommandType.MOVE_BACK, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
- else if (info.getX()>1950 || info.getY()>1950)
- return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
- }
- else
- {
- newDir = info.getDirection()-grenades.get(indexOfClosestShot).getDirection()-180;
- if(info.getX()>50 || info.getY()>50)
- return new Command(CommandType.MOVE_BACK, CommandType.TURN_LEFT, newDir, CommandType.NONE);
- else if (info.getX()>1950 || info.getY()>1950)
- return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_LEFT, newDir, CommandType.NONE);
- }
- }
- }
- //levy horni kvadrant
- if ((info.getX()>grenades.get(indexOfClosestShot).getX()) &&(info.getY()>grenades.get(indexOfClosestShot).getY()))
- {
- lenX=info.getX()-grenades.get(indexOfClosestShot).getX();
- lenY=info.getY()-grenades.get(indexOfClosestShot).getY();
- ang1=grenades.get(indexOfClosestShot).getDirection()-90;
- angR1 = Math.toRadians(ang1);
- ang2=grenades.get(indexOfClosestShot).getDirection()-15-90;
- angR2 = Math.toRadians(ang2);
- if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
- {
- System.out.println("fck");
- if(grenades.get(indexOfClosestShot).getDirection()-90 > info.getDirection())
- {
- newDir = grenades.get(indexOfClosestShot).getDirection()-90-info.getDirection();
- if(info.getX()>50 || info.getY()>50)
- {
- System.out.println("LH");
- return new Command(CommandType.MOVE_BACK, CommandType.TURN_LEFT, newDir, CommandType.NONE);
- }
- else if (info.getX()>1950 || info.getY()>1950)
- {
- System.out.println("LH2");
- return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_LEFT, newDir, CommandType.NONE);
- }
- }
- else
- {
- newDir = info.getDirection()-grenades.get(indexOfClosestShot).getDirection()-90;
- if(info.getX()>50 || info.getY()>50)
- {
- System.out.println("LH3");
- return new Command(CommandType.MOVE_BACK, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
- }
- else if (info.getX()>1950 || info.getY()>1950)
- {
- System.out.println("LH4");
- return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
- }
- }
- }
- }
- //levy dolni kvadrant
- if ((info.getX()>grenades.get(indexOfClosestShot).getX()) &&(info.getY()<grenades.get(indexOfClosestShot).getY()))
- {
- lenX=info.getX()-grenades.get(indexOfClosestShot).getX();
- lenY=grenades.get(indexOfClosestShot).getY()-info.getY();
- ang1=grenades.get(indexOfClosestShot).getDirection();
- angR1 = Math.toRadians(ang1);
- ang2=grenades.get(indexOfClosestShot).getDirection()-15;
- angR2 = Math.toRadians(ang2);
- if((lenY/lenX<Math.tan(ang1))&& (lenY/lenX>Math.tan(ang2)))
- {
- System.out.println("fck");
- if(grenades.get(indexOfClosestShot).getDirection()> info.getDirection())
- {
- newDir = grenades.get(indexOfClosestShot).getDirection()-info.getDirection();
- if(info.getX()>50 || info.getY()>50)
- {
- System.out.println("LD1");
- return new Command(CommandType.MOVE_BACK, CommandType.TURN_LEFT, newDir, CommandType.NONE);
- }
- else if (info.getX()>1950 || info.getY()>1950)
- {
- System.out.println("LD2");
- return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_LEFT, newDir, CommandType.NONE);
- }
- }
- else
- {
- newDir = info.getDirection()-grenades.get(indexOfClosestShot).getDirection();
- if(info.getX()>50 || info.getY()>50)
- {
- System.out.println("LD3");
- return new Command(CommandType.MOVE_BACK, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
- }
- else if (info.getX()>1950 || info.getY()>1950)
- {
- System.out.println("LD4");
- return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
- }
- }
- }
- }
- //pravy dolni kvadrant
- if ((info.getX()<grenades.get(indexOfClosestShot).getX()) &&(info.getY()<grenades.get(indexOfClosestShot).getY()))
- {
- lenX=grenades.get(indexOfClosestShot).getX()-info.getX();
- lenY=grenades.get(indexOfClosestShot).getY()-info.getY();
- ang1=grenades.get(indexOfClosestShot).getDirection()+90;
- angR1 = Math.toRadians(ang1);
- ang2=grenades.get(indexOfClosestShot).getDirection()-15+90;
- angR2 = Math.toRadians(ang2);
- if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
- {
- System.out.println("fck");
- if(grenades.get(indexOfClosestShot).getDirection()> info.getDirection())
- {
- newDir = grenades.get(indexOfClosestShot).getDirection()-info.getDirection()+90;
- if(info.getX()>50 || info.getY()>50)
- {
- System.out.println("RD1");
- return new Command(CommandType.MOVE_BACK, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
- }
- else if (info.getX()>1950 || info.getY()>1950)
- {
- System.out.println("RD2");
- return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
- }
- }
- else
- {
- newDir = info.getDirection()-grenades.get(indexOfClosestShot).getDirection()+90;
- if(info.getX()>50 || info.getY()>50)
- {
- System.out.println("RD3");
- return new Command(CommandType.MOVE_BACK, CommandType.TURN_LEFT, newDir, CommandType.NONE);
- }
- else if (info.getX()>1950 || info.getY()>1950)
- {
- System.out.println("RD4");
- return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_LEFT, newDir, CommandType.NONE);
- }
- }
- }
- }
- }
- else
- {
- System.out.println("CLR");
- int distOfClosestTank=99999999;
- //closest tank
- for(int i =0;i<enemies.size();i++)
- {
- lenX=enemies.get(i).getX()+25-info.getX()+25;
- lenY=info.getY()+25-enemies.get(i).getY()+25;
- if((lenX*lenX) + (lenY*lenY)<distOfClosestTank)
- {
- distOfClosestTank = (int) Math.sqrt((lenX*lenX) + (lenY*lenY));
- indexOfClosestTank=i;
- }
- }
- lenX=enemies.get(indexOfClosestTank).getX();
- lenY=enemies.get(indexOfClosestTank).getY();
- int distx=Math.abs(lenX-info.getX());
- int disty=Math.abs(lenY-info.getY());
- //tady bude shootit
- }
- }
- else
- {
- return new Command(CommandType.NONE, CommandType.NONE, 0, CommandType.NONE);
- }
- return new Command(CommandType.NONE, CommandType.NONE, 0, CommandType.NONE);
- }
- @Override
- public String getName() {
- return "Mocek";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement