Advertisement
macrofish

gayyyy

Nov 18th, 2013
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 16.08 KB | None | 0 0
  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package thegame.players;
  6.  
  7. import java.util.List;
  8. import thegame.info.Info;
  9. import thegame.info.InfoDetail;
  10. import thegame.model.Command;
  11. import thegame.model.CommandType;
  12.  
  13. /**
  14.  *
  15.  * @author beh01
  16.  */
  17. public class Mocek implements IPlayer {
  18.    
  19.     private List<InfoDetail> grenades;
  20.     private List<InfoDetail> enemies;
  21.    
  22.     private InfoDetail closest_shot1;
  23.     private InfoDetail closest_shot2;
  24.    
  25.    
  26.     @Override
  27.     public Command planNextMove(Info info) {
  28.  
  29.         grenades=info.getGrenades();
  30.         enemies=info.getEnemies();
  31.        
  32.         int lenX;
  33.         int lenY;
  34.         double ang1;
  35.         double ang2;
  36.         double angR1;
  37.         double angR2;      
  38.        
  39.         int indexOfClosestTank=0;
  40.         int indexOfClosestShot=0;
  41.         int newDir;
  42.  
  43.        
  44.         int closestShotDistance=50000;
  45.        
  46.         if (enemies.size()>2)
  47.         {
  48.            indexOfClosestShot=999;
  49.          //zjisteni nejblizsi strely   ktera na me leti
  50.          for(int i=0;i<grenades.size();i++)
  51.          {
  52.              
  53.              if ((info.getX()<grenades.get(i).getX()) &&(info.getY()>grenades.get(i).getY()))
  54.              {
  55.                 lenX=grenades.get(i).getX()-info.getX();
  56.                 lenY=info.getY()-grenades.get(i).getY();
  57.                
  58.                 ang1=grenades.get(i).getDirection()-180;
  59.                 angR1 = Math.toRadians(ang1);
  60.                
  61.                 ang2=grenades.get(i).getDirection()+15-180;
  62.                 angR2 = Math.toRadians(ang2);
  63.                
  64.                 if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
  65.                 {
  66.                   lenX=Math.abs(info.getX()-grenades.get(i).getX());
  67.                   lenY=Math.abs(info.getY()-grenades.get(i).getY());
  68.              
  69.                    if((lenX*lenX) + (lenY*lenY)<closestShotDistance)
  70.                   {
  71.                       closestShotDistance = (int) Math.sqrt((lenX*lenX) + (lenY*lenY));
  72.                       indexOfClosestShot=i;
  73.                   }
  74.              
  75.                 }
  76.              }
  77.              
  78.              if ((info.getX()>grenades.get(i).getX()) &&(info.getY()>grenades.get(i).getY()))
  79.             {
  80.                 lenX=info.getX()-grenades.get(i).getX();
  81.                 lenY=info.getY()-grenades.get(i).getY();
  82.                
  83.                 ang1=grenades.get(i).getDirection()-90;
  84.                 angR1 = Math.toRadians(ang1);
  85.                
  86.                 ang2=grenades.get(i).getDirection()-15-90;
  87.                 angR2 = Math.toRadians(ang2);
  88.                
  89.                 if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
  90.                 {
  91.                   lenX=Math.abs(info.getX()-grenades.get(i).getX());
  92.                   lenY=Math.abs(info.getY()-grenades.get(i).getY());
  93.              
  94.                    if((lenX*lenX) + (lenY*lenY)<closestShotDistance)
  95.                   {
  96.                       closestShotDistance = (int) Math.sqrt((lenX*lenX) + (lenY*lenY));
  97.                       indexOfClosestShot=i;
  98.                   }  
  99.                    
  100.                 }
  101.                
  102.             }
  103.              
  104.              if ((info.getX()>grenades.get(i).getX()) &&(info.getY()<grenades.get(i).getY()))
  105.             {
  106.                 lenX=info.getX()-grenades.get(i).getX();
  107.                 lenY=grenades.get(i).getY()-info.getY();
  108.                
  109.                 ang1=grenades.get(i).getDirection();
  110.                 angR1 = Math.toRadians(ang1);
  111.                
  112.                 ang2=grenades.get(i).getDirection()-15;
  113.                 angR2 = Math.toRadians(ang2);
  114.                
  115.                 if((lenY/lenX<Math.tan(ang1))&& (lenY/lenX>Math.tan(ang2)))
  116.                 {
  117.                     lenX=Math.abs(info.getX()-grenades.get(i).getX());
  118.                     lenY=Math.abs(info.getY()-grenades.get(i).getY());
  119.              
  120.                    if((lenX*lenX) + (lenY*lenY)<closestShotDistance)
  121.                   {
  122.                       closestShotDistance = (int) Math.sqrt((lenX*lenX) + (lenY*lenY));
  123.                       indexOfClosestShot=i;
  124.                   }
  125.                 }
  126.             }
  127.            
  128.              if ((info.getX()<grenades.get(i).getX()) &&(info.getY()<grenades.get(i).getY()))
  129.             {
  130.                 lenX=grenades.get(i).getX()-info.getX();
  131.                 lenY=grenades.get(i).getY()-info.getY();
  132.                
  133.                 ang1=grenades.get(i).getDirection()+90;
  134.                 angR1 = Math.toRadians(ang1);
  135.                
  136.                 ang2=grenades.get(i).getDirection()-15+90;
  137.                 angR2 = Math.toRadians(ang2);
  138.                
  139.                 if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
  140.                 {
  141.                    lenX=Math.abs(info.getX()-grenades.get(i).getX());
  142.                     lenY=Math.abs(info.getY()-grenades.get(i).getY());
  143.              
  144.                    if((lenX*lenX) + (lenY*lenY)<closestShotDistance)
  145.                   {
  146.                       closestShotDistance = (int) Math.sqrt((lenX*lenX) + (lenY*lenY));
  147.                       indexOfClosestShot=i;
  148.                   }
  149.                 }
  150.             }    
  151.          }
  152.          
  153.            
  154.             //pravy horni kvadrant
  155.             if(indexOfClosestShot!=999)
  156.             {
  157.             if ((info.getX()<grenades.get(indexOfClosestShot).getX()) &&(info.getY()>grenades.get(indexOfClosestShot).getY()))
  158.             {
  159.                 lenX=grenades.get(indexOfClosestShot).getX()-info.getX();
  160.                 lenY=info.getY()-grenades.get(indexOfClosestShot).getY();
  161.                
  162.                 ang1=grenades.get(indexOfClosestShot).getDirection()-180;
  163.                 angR1 = Math.toRadians(ang1);
  164.                
  165.                 ang2=grenades.get(indexOfClosestShot).getDirection()+15-180;
  166.                 angR2 = Math.toRadians(ang2);
  167.                
  168.                 if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
  169.                 {
  170.                     System.out.println("fck");
  171.                     if(grenades.get(indexOfClosestShot).getDirection()-180 > info.getDirection())
  172.                     {
  173.                         newDir = grenades.get(indexOfClosestShot).getDirection()-180-info.getDirection();
  174.                         if(info.getX()>50 || info.getY()>50)
  175.                             return new Command(CommandType.MOVE_BACK, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
  176.                         else if (info.getX()>1950 || info.getY()>1950)
  177.                             return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
  178.                     }
  179.                    
  180.                     else
  181.                     {
  182.                         newDir = info.getDirection()-grenades.get(indexOfClosestShot).getDirection()-180;
  183.                         if(info.getX()>50 || info.getY()>50)
  184.                             return new Command(CommandType.MOVE_BACK, CommandType.TURN_LEFT, newDir, CommandType.NONE);
  185.                         else if (info.getX()>1950 || info.getY()>1950)
  186.                             return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_LEFT, newDir, CommandType.NONE);
  187.                     }              
  188.                 }
  189.             }
  190.            
  191.             //levy horni kvadrant
  192.             if ((info.getX()>grenades.get(indexOfClosestShot).getX()) &&(info.getY()>grenades.get(indexOfClosestShot).getY()))
  193.             {
  194.                 lenX=info.getX()-grenades.get(indexOfClosestShot).getX();
  195.                 lenY=info.getY()-grenades.get(indexOfClosestShot).getY();
  196.                
  197.                 ang1=grenades.get(indexOfClosestShot).getDirection()-90;
  198.                 angR1 = Math.toRadians(ang1);
  199.                
  200.                 ang2=grenades.get(indexOfClosestShot).getDirection()-15-90;
  201.                 angR2 = Math.toRadians(ang2);
  202.                
  203.                 if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
  204.                 {
  205.                     System.out.println("fck");
  206.                     if(grenades.get(indexOfClosestShot).getDirection()-90 > info.getDirection())
  207.                     {
  208.                         newDir = grenades.get(indexOfClosestShot).getDirection()-90-info.getDirection();
  209.                         if(info.getX()>50 || info.getY()>50)
  210.                         {
  211.                             System.out.println("LH");
  212.                             return new Command(CommandType.MOVE_BACK, CommandType.TURN_LEFT, newDir, CommandType.NONE);
  213.                         }
  214.                         else if (info.getX()>1950 || info.getY()>1950)
  215.                         {
  216.                             System.out.println("LH2");
  217.                             return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_LEFT, newDir, CommandType.NONE);
  218.                         }
  219.                     }
  220.                    
  221.                     else
  222.                     {
  223.                         newDir = info.getDirection()-grenades.get(indexOfClosestShot).getDirection()-90;
  224.                         if(info.getX()>50 || info.getY()>50)
  225.                         {
  226.                             System.out.println("LH3");
  227.                             return new Command(CommandType.MOVE_BACK, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
  228.                         }
  229.                         else if (info.getX()>1950 || info.getY()>1950)
  230.                         {
  231.                             System.out.println("LH4");
  232.                             return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
  233.                         }
  234.                     }              
  235.                 }
  236.             }
  237.            
  238.            
  239.            
  240.            
  241.             //levy dolni kvadrant
  242.             if ((info.getX()>grenades.get(indexOfClosestShot).getX()) &&(info.getY()<grenades.get(indexOfClosestShot).getY()))
  243.             {
  244.                 lenX=info.getX()-grenades.get(indexOfClosestShot).getX();
  245.                 lenY=grenades.get(indexOfClosestShot).getY()-info.getY();
  246.                
  247.                 ang1=grenades.get(indexOfClosestShot).getDirection();
  248.                 angR1 = Math.toRadians(ang1);
  249.                
  250.                 ang2=grenades.get(indexOfClosestShot).getDirection()-15;
  251.                 angR2 = Math.toRadians(ang2);
  252.                
  253.                 if((lenY/lenX<Math.tan(ang1))&& (lenY/lenX>Math.tan(ang2)))
  254.                 {
  255.                     System.out.println("fck");
  256.                     if(grenades.get(indexOfClosestShot).getDirection()> info.getDirection())
  257.                     {
  258.                         newDir = grenades.get(indexOfClosestShot).getDirection()-info.getDirection();
  259.                         if(info.getX()>50 || info.getY()>50)
  260.                         {
  261.                             System.out.println("LD1");
  262.                             return new Command(CommandType.MOVE_BACK, CommandType.TURN_LEFT, newDir, CommandType.NONE);
  263.                         }
  264.                         else if (info.getX()>1950 || info.getY()>1950)
  265.                         {
  266.                             System.out.println("LD2");
  267.                             return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_LEFT, newDir, CommandType.NONE);
  268.                         }
  269.                     }
  270.                    
  271.                     else
  272.                     {
  273.                         newDir = info.getDirection()-grenades.get(indexOfClosestShot).getDirection();
  274.                         if(info.getX()>50 || info.getY()>50)
  275.                         {
  276.                             System.out.println("LD3");
  277.                             return new Command(CommandType.MOVE_BACK, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
  278.                         }
  279.                         else if (info.getX()>1950 || info.getY()>1950)
  280.                         {
  281.                             System.out.println("LD4");
  282.                             return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
  283.                         }
  284.                     }              
  285.                 }
  286.             }
  287.            
  288.            
  289.             //pravy dolni kvadrant
  290.             if ((info.getX()<grenades.get(indexOfClosestShot).getX()) &&(info.getY()<grenades.get(indexOfClosestShot).getY()))
  291.             {
  292.                 lenX=grenades.get(indexOfClosestShot).getX()-info.getX();
  293.                 lenY=grenades.get(indexOfClosestShot).getY()-info.getY();
  294.                
  295.                 ang1=grenades.get(indexOfClosestShot).getDirection()+90;
  296.                 angR1 = Math.toRadians(ang1);
  297.                
  298.                 ang2=grenades.get(indexOfClosestShot).getDirection()-15+90;
  299.                 angR2 = Math.toRadians(ang2);
  300.                
  301.                 if((lenY/lenX<Math.tan(ang2))&& (lenY/lenX>Math.tan(ang1)))
  302.                 {
  303.                     System.out.println("fck");
  304.                     if(grenades.get(indexOfClosestShot).getDirection()> info.getDirection())
  305.                     {
  306.                         newDir = grenades.get(indexOfClosestShot).getDirection()-info.getDirection()+90;
  307.                         if(info.getX()>50 || info.getY()>50)
  308.                         {
  309.                             System.out.println("RD1");
  310.                             return new Command(CommandType.MOVE_BACK, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
  311.                         }
  312.                         else if (info.getX()>1950 || info.getY()>1950)
  313.                         {
  314.                             System.out.println("RD2");
  315.                             return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_RIGHT, newDir, CommandType.NONE);
  316.                         }
  317.                     }
  318.                    
  319.                     else
  320.                     {
  321.                         newDir = info.getDirection()-grenades.get(indexOfClosestShot).getDirection()+90;
  322.                         if(info.getX()>50 || info.getY()>50)
  323.                         {
  324.                             System.out.println("RD3");
  325.                             return new Command(CommandType.MOVE_BACK, CommandType.TURN_LEFT, newDir, CommandType.NONE);
  326.                         }
  327.                         else if (info.getX()>1950 || info.getY()>1950)
  328.                         {
  329.                             System.out.println("RD4");
  330.                             return new Command(CommandType.MOVE_FORWARD, CommandType.TURN_LEFT, newDir, CommandType.NONE);
  331.                         }
  332.                     }              
  333.                 }
  334.             }  
  335.             }
  336.             else
  337.             {
  338.                 System.out.println("CLR");
  339.                
  340.                 int distOfClosestTank=99999999;
  341.                 //closest tank
  342.                 for(int i =0;i<enemies.size();i++)
  343.                 {
  344.                     lenX=enemies.get(i).getX()+25-info.getX()+25;
  345.                     lenY=info.getY()+25-enemies.get(i).getY()+25;
  346.                    
  347.                     if((lenX*lenX) + (lenY*lenY)<distOfClosestTank)
  348.                   {
  349.                       distOfClosestTank = (int) Math.sqrt((lenX*lenX) + (lenY*lenY));
  350.                       indexOfClosestTank=i;
  351.                   }  
  352.                    
  353.                 }
  354.                
  355.                 lenX=enemies.get(indexOfClosestTank).getX();
  356.                 lenY=enemies.get(indexOfClosestTank).getY();
  357.                
  358.                 int distx=Math.abs(lenX-info.getX());
  359.                 int disty=Math.abs(lenY-info.getY());
  360.                
  361.                
  362.                
  363.                
  364.                 //tady bude shootit
  365.             }
  366.            
  367.         }
  368.        
  369.        
  370.         else
  371.         {
  372.             return new Command(CommandType.NONE, CommandType.NONE, 0, CommandType.NONE);
  373.         }
  374.        
  375.     return new Command(CommandType.NONE, CommandType.NONE, 0, CommandType.NONE);
  376.        
  377.     }
  378.  
  379.     @Override
  380.     public String getName() {
  381.         return "Mocek";
  382.     }
  383.      
  384. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement