Advertisement
Guest User

Untitled

a guest
Mar 28th, 2015
439
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.10 KB | None | 0 0
  1.  
  2. import java.util.ArrayList;
  3. import matopeli.Matopeli;
  4. import matopeli.Pala;
  5.  
  6. public class Matoaly {
  7.  
  8. private int palojaYlapuolella = 0;
  9. private int palojaAlapuolella = 0;
  10. private int palojaVasen = 0;
  11. private int palojaOikea = 0;
  12.  
  13. public void haePalojenPaikat(Matopeli matopeli, ArrayList<Pala> mato) {
  14. for (Pala pala : mato) {
  15. if (matopeli.matoY() > pala.getY()) {
  16. palojaAlapuolella++;
  17. } else {
  18. palojaYlapuolella++;
  19. }
  20. if (matopeli.matoX() >= pala.getX()) {
  21. palojaVasen++;
  22. } else {
  23. palojaOikea++;
  24. }
  25. }
  26. }
  27.  
  28. public String annaSiirto(Matopeli matopeli) {
  29. palojaAlapuolella = 0;
  30. palojaYlapuolella = 0;
  31. palojaVasen = 0;
  32. palojaOikea = 0;
  33.  
  34. ArrayList<Pala> madonpalat = matopeli.madonPalat();
  35. haePalojenPaikat(matopeli, madonpalat);
  36.  
  37. // vaihtoehtoja ovat: YLOS, ALAS, VASEN, OIKEA
  38. int[][] pelialue = matopeli.annaAlusta();
  39.  
  40. int matoX = matopeli.matoX();
  41. int matoY = matopeli.matoY();
  42. int omppuX = matopeli.omenaX();
  43. int omppuY = matopeli.omenaY();
  44.  
  45. // SEINIIN OSUMINEN --------------------------------------------------
  46. if (osuuOseinaan(matopeli) && osuuLattiaan(matopeli)) {
  47. return "YLOS";
  48. }
  49.  
  50. if (osuuVseinaan(matopeli) && osuuLattiaan(matopeli)) {
  51. return "YLOS";
  52. }
  53.  
  54. if (osuuOseinaan(matopeli) && osuuKattoon(matopeli)) {
  55. return "ALAS";
  56. }
  57.  
  58. if (osuuVseinaan(matopeli) && osuuKattoon(matopeli)) {
  59. return "ALAS";
  60. }
  61.  
  62. if (osuuKattoon(matopeli)) {
  63. if (!osuuItseensa("ALAS", madonpalat, matopeli)) {
  64. return "ALAS";
  65. }
  66. if (!osuuItseensa("OIKEA", madonpalat, matopeli)) {
  67. return "OIKEA";
  68. } else {
  69. return "VASEN";
  70. }
  71. }
  72.  
  73. if (osuuLattiaan(matopeli)) {
  74. if (!osuuItseensa("YLOS", madonpalat, matopeli)) {
  75. return "YLOS";
  76. }
  77. if (!osuuItseensa("VASEN", madonpalat, matopeli)) {
  78. return "VASEN";
  79. }
  80. }
  81.  
  82. if (osuuOseinaan(matopeli)) {
  83. if (!osuuItseensa("VASEN", madonpalat, matopeli)) {
  84. return "VASEN";
  85. }
  86. if (!osuuItseensa("ALAS", madonpalat, matopeli)) {
  87. return "ALAS";
  88. }
  89. }
  90.  
  91. if (osuuVseinaan(matopeli)) {
  92. if (!osuuItseensa("OIKEA", madonpalat, matopeli)) {
  93. return "OIKEA";
  94. }
  95. if (!osuuItseensa("ALAS", madonpalat, matopeli)) {
  96. return "ALAS";
  97. }
  98. }
  99.  
  100. // ---------------------------------------------------------------------
  101. // OMENAN ETSIMINEN ----------------------------------------------------
  102. if (matoY < omppuY) {
  103. if (!osuuItseensa("YLOS", madonpalat, matopeli)) {
  104. return "YLOS";
  105. }
  106. }
  107.  
  108. if (matoY >= omppuY) {
  109. if (!osuuItseensa("ALAS", madonpalat, matopeli)) {
  110. if (palojaAlapuolella < palojaYlapuolella) {
  111. return "ALAS";
  112. }
  113. }
  114. }
  115.  
  116. if (matoX <= omppuX) {
  117. if (!osuuItseensa("OIKEA", madonpalat, matopeli)) {
  118. if (palojaOikea < palojaVasen) {
  119. return "OIKEA";
  120. }
  121. }
  122. }
  123.  
  124. if (matoX > omppuX) {
  125. if (!osuuItseensa("VASEN", madonpalat, matopeli)) {
  126. return "VASEN";
  127. }
  128. }
  129.  
  130. if (!osuuItseensa("YLOS", madonpalat, matopeli)) {
  131. return "YLOS";
  132. }
  133.  
  134. if (!osuuItseensa("ALAS", madonpalat, matopeli)) {
  135. return "ALAS";
  136. }
  137.  
  138. if (!osuuItseensa("VASEN", madonpalat, matopeli)) {
  139. return "VASEN";
  140. }
  141.  
  142. if (!osuuItseensa("OIKEA", madonpalat, matopeli)) {
  143. return "OIKEA";
  144. }
  145.  
  146. return "ALAS";
  147. }
  148.  
  149. // METODIT ----------------------------------------------------------------
  150. public boolean osuuKattoon(Matopeli matopeli) {
  151. if (matopeli.matoY() + 1 == matopeli.korkeus()) {
  152. return true;
  153. }
  154. return false;
  155. }
  156.  
  157. public boolean osuuLattiaan(Matopeli matopeli) {
  158. if (matopeli.matoY() - 1 == 0) {
  159. return true;
  160. }
  161. return false;
  162. }
  163.  
  164. public boolean osuuOseinaan(Matopeli matopeli) {
  165. if (matopeli.matoX() + 1 == matopeli.leveys()) {
  166. return true;
  167. }
  168. return false;
  169. }
  170.  
  171. public boolean osuuVseinaan(Matopeli matopeli) {
  172. if (matopeli.matoX() - 1 == 0) {
  173. return true;
  174. }
  175. return false;
  176. }
  177.  
  178. public boolean osuuItseensa(String suunta, ArrayList<Pala> mato, Matopeli matopeli) {
  179. if (suunta.equals("YLOS")) {
  180. for (Pala palanen : mato) {
  181. if (matopeli.matoY() + 1 == palanen.getY() && matopeli.matoX() == palanen.getX()) {
  182. return true;
  183. }
  184. }
  185. }
  186.  
  187. if (suunta.equals("ALAS")) {
  188. for (Pala palanen : mato) {
  189. if (matopeli.matoY() - 1 == palanen.getY() && matopeli.matoX() == palanen.getX()) {
  190. return true;
  191. }
  192. }
  193. }
  194.  
  195. if (suunta.equals("OIKEA")) {
  196. for (Pala palanen : mato) {
  197. if (matopeli.matoX() + 1 == palanen.getX() && matopeli.matoY() == palanen.getY()) {
  198. return true;
  199. }
  200. }
  201. }
  202.  
  203. if (suunta.equals("VASEN")) {
  204. for (Pala palanen : mato) {
  205. if (matopeli.matoX() - 1 == palanen.getX() && matopeli.matoY() == palanen.getY()) {
  206. return true;
  207. }
  208. }
  209. }
  210. return false;
  211. }
  212. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement