Advertisement
mattparks5855

Ai 2015 V1

Feb 1st, 2015
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. import java.util.Random;
  2.  
  3. public class CaptainCheckM8 implements Captain {
  4. private boolean lastGameWon = false;
  5. private Random generator;
  6. private Fleet myFleet;
  7. private int lastPlan, plan;
  8.  
  9. private int x, y;
  10. private int xModifyer, yModifyer;
  11. private int seekingRuns = 0;
  12. private boolean topInitialized = false;
  13. private boolean bottomInitialized = false;
  14.  
  15. @Override
  16. public void initialize(int numMatches, int numCaptains, String opponent) {
  17. generator = new Random();
  18. myFleet = new Fleet();
  19.  
  20. if (lastGameWon == true) {
  21. plan = lastPlan;
  22. } else {
  23. plan = generator.nextInt(3);
  24. }
  25.  
  26. lastPlan = plan;
  27.  
  28. if (plan == 0 || plan == 1) { // Random Placement
  29. while (!myFleet.placeShip(generator.nextInt(10), generator.nextInt(10), generator.nextInt(2), PATROL_BOAT)) {}
  30. while (!myFleet.placeShip(generator.nextInt(10), generator.nextInt(10), generator.nextInt(2), DESTROYER)) {}
  31. while (!myFleet.placeShip(generator.nextInt(10), generator.nextInt(10), generator.nextInt(2), SUBMARINE)) {}
  32. while (!myFleet.placeShip(generator.nextInt(10), generator.nextInt(10), generator.nextInt(2), BATTLESHIP)) {}
  33. while (!myFleet.placeShip(generator.nextInt(10), generator.nextInt(10), generator.nextInt(2), AIRCRAFT_CARRIER)) {}
  34. }
  35.  
  36. if (plan == 2) { // Edge Placement
  37. myFleet.placeShip(9, 3, VERTICAL, AIRCRAFT_CARRIER);
  38. myFleet.placeShip(3, 0, HORIZONTAL, BATTLESHIP);
  39. myFleet.placeShip(0, 5, VERTICAL, DESTROYER);
  40. myFleet.placeShip(4, 9, HORIZONTAL, SUBMARINE);
  41. myFleet.placeShip(0, 2, VERTICAL, PATROL_BOAT);
  42. }
  43.  
  44. if (plan == 3) { // Semi-Set-Location Plan
  45. while (!myFleet.placeShip(generator.nextInt(10), 5, generator.nextInt(2), AIRCRAFT_CARRIER));
  46. while (!myFleet.placeShip(generator.nextInt(10), 1, generator.nextInt(2), BATTLESHIP));
  47. while (!myFleet.placeShip(5, 7, generator.nextInt(2), DESTROYER));
  48. while (!myFleet.placeShip(3, 2, generator.nextInt(2), SUBMARINE));
  49. while (!myFleet.placeShip(1, 8, generator.nextInt(2), PATROL_BOAT));
  50. }
  51. }
  52.  
  53. @Override
  54. public Fleet getFleet() {
  55. return myFleet;
  56. }
  57.  
  58. public int CoordsTop(int startY) {
  59. if (!topInitialized) {
  60. y = startY;
  61. x = 0;
  62. topInitialized = true;
  63. } else if (x >= 9 || y >= 9) {
  64. topInitialized = false;
  65. seekingRuns++;
  66.  
  67. makeAttack();
  68. } else {
  69. y++;
  70. x++;
  71. }
  72.  
  73. return 0;
  74. }
  75.  
  76. public int CoordsBottom(int startX) {
  77. if (!bottomInitialized) {
  78. x = startX;
  79. y = 0;
  80. bottomInitialized = true;
  81. } else if (y >= 9 || x >= 9) {
  82. bottomInitialized = false;
  83. seekingRuns++;
  84.  
  85. makeAttack();
  86. } else {
  87. x++;
  88. y++;
  89. }
  90.  
  91. return 0;
  92. }
  93.  
  94. @Override
  95. public Coordinate makeAttack() {
  96. if (seekingRuns == 0)
  97. CoordsTop(0);
  98. else if (seekingRuns == 1)
  99. CoordsBottom(6);
  100. else if (seekingRuns == 2)
  101. CoordsTop(6);
  102. else if (seekingRuns == 3)
  103. CoordsBottom(4);
  104. else if (seekingRuns == 4)
  105. CoordsTop(4);
  106. else if (seekingRuns == 5)
  107. CoordsBottom(8);
  108. else if (seekingRuns == 6)
  109. CoordsTop(8);
  110. else if (seekingRuns == 7)
  111. CoordsBottom(2);
  112. else if (seekingRuns == 8)
  113. CoordsTop(2);
  114.  
  115. return new Coordinate(x + xModifyer, y + yModifyer);
  116. }
  117.  
  118. @Override
  119. public void resultOfAttack(int result) {
  120. }
  121.  
  122. @Override
  123. public void opponentAttack(Coordinate coord) {
  124. }
  125.  
  126. @Override
  127. public void resultOfGame(int result) {
  128. if (result == WON) {
  129. lastGameWon = true;
  130. } else if (result == LOST) {
  131. lastGameWon = false;
  132. }
  133. }
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement