Advertisement
Guest User

Untitled

a guest
Feb 25th, 2018
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.21 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. /**
  7. *
  8. * @author Ebba Þóra Hvannberg, Háskóli Íslands, ebba@hi.is
  9. * Viðmótsforritun, 2016
  10. * Lausn á verkefni #3
  11. * Afritið ekki án þess að geta höfundar
  12. */
  13. package is.hi.mylla.vinnsla;
  14.  
  15. /**
  16. *
  17. * @author Ebba Þóra Hvannberg ebba@hi.is
  18. * @author Haraldur Orri Hauksson, Háskóli Íslands <hoh52@hi.is>
  19. *
  20. *
  21. * Vinnsluklasi fyrir mylluborð
  22. *
  23. * Mestallur klasinn búinn til af Ebbu Þóru Hvannberg
  24. *
  25. * Bætt við af Haraldi:
  26. * Föllin pedafjoldi og hreinsa ásamt breytunni pedfjoldi
  27. *
  28. */
  29. public class Mylla {
  30.  
  31. private static final int LEIKMENN = 2;
  32. private final int[] Leikmadur = {1, 2};
  33.  
  34. int[][] bord = new int[3][3];
  35. int nuverandiLeikmadur = 1;
  36. int pedfjoldi = 0;
  37.  
  38. /**
  39. * Smiður sem býr til vinnsluhlut fyrir myllu. Frumstillir borð þannig að
  40. * það sé tómt
  41. */
  42. public Mylla() {
  43. // Frumstilla borðið. Ekkert peð er á því
  44. for (int i = 0; i < 3; i++) {
  45. for (int j = 0; j < 3; j++) {
  46. bord[i][j] = -1;
  47. }
  48. }
  49. }
  50.  
  51. /**
  52. * Get aðferð fyrir tilviksbreytuna nuverandiLeikmadur
  53. *
  54. * @return
  55. */
  56. public int getNuverandiLeikmadur() {
  57. return nuverandiLeikmadur;
  58. }
  59.  
  60. /**
  61. * Leikmaður n gerir
  62. *
  63. * @param n leikmaður
  64. */
  65. public void setNuverandiLeikmadur(int n) {
  66. nuverandiLeikmadur = n;
  67. }
  68.  
  69. /**
  70. * Skilar true ef peð er þegar á reit n
  71. *
  72. * @param n reitur peðs
  73. * @return satt ef peð er á reit n annars ósatt
  74. */
  75. public boolean erThegarABordi(int n) {
  76. for (int i = 0; i < LEIKMENN; i++) {
  77. if (bord[n / 3][(n % 3)] == Leikmadur[i]) {
  78. return true;
  79. }
  80. }
  81. return false;
  82. }
  83.  
  84. /**
  85. * Setur peð á reit n
  86. *
  87. * @param n nr. reits
  88. */
  89. public void setjaABord(int n) {
  90. bord[n / 3][(n % 3)] = nuverandiLeikmadur;
  91. pedfjoldi++;
  92. }
  93.  
  94. /**
  95. * Skilar tölu á bilinu 0-6 eftir því hvort fannst vinningur á láréttum,
  96. * lóðréttum eða horn-í-horn
  97. *
  98. * @return tala
  99. */
  100. public int vinningur() {
  101.  
  102. // Athuga hvort vinningur finnst lárétt
  103. int vinningur;
  104. for (int i = 0; i < 3; i++) {
  105. vinningur = i;
  106. // System.out.println ("Vinningur í lykkju "+vinningur);
  107. for (int j = 0; j < 3; j++) {
  108. if (bord[i][j] != nuverandiLeikmadur) {
  109. vinningur = -1;
  110. break;
  111. }
  112. }
  113. if (vinningur >= 0) {
  114. return vinningur;
  115. }
  116. }
  117.  
  118. // Athuga hvort vinningur finnst lóðrétt
  119. for (int j = 0; j < 3; j++) {
  120. vinningur = 3 + j;
  121. for (int i = 0; i < 3; i++) {
  122. if (bord[i][j] != nuverandiLeikmadur) {
  123. vinningur = -1;
  124. break;
  125. }
  126. }
  127. if (vinningur >= 0) {
  128. return vinningur;
  129. }
  130. }
  131.  
  132. // Athuga hvort vinningur finnst í hornum
  133. vinningur = 5;
  134. for (int i = 0; i < 3; i++) {
  135. if (bord[i][i] != nuverandiLeikmadur) {
  136. vinningur = -1;
  137. break;
  138. }
  139. }
  140.  
  141. if (vinningur >= 0) {
  142. return vinningur;
  143. }
  144.  
  145. vinningur = 6;
  146. for (int i = 0; i < 3; i++) {
  147. if (bord[i][2 - i] != nuverandiLeikmadur) {
  148. vinningur = -1;
  149. break;
  150. }
  151. }
  152.  
  153. // Skilar -1 ef ekki fannst vinningur, annars tölu á bilinu 0-7
  154. return vinningur;
  155. }
  156.  
  157. public void hreinsa() {
  158. for(int i = 0; i < 3; i++) {
  159. for(int j = 0; j < 3; j++) {
  160. bord[i][j] = -1;
  161. }
  162. }
  163. pedfjoldi = 0;
  164. }
  165.  
  166. public int pedafjoldi() {
  167. return pedfjoldi;
  168. }
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement