Advertisement
Guest User

Untitled

a guest
Dec 16th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.04 KB | None | 0 0
  1. package ristinolla;
  2. import java.util.Random;
  3. import java.util.Scanner;
  4.  
  5.  
  6. public class ristinolla {
  7. public static void main(long luku) {
  8. String s= Long.toString(luku);
  9. String numerot="0123456789";
  10. boolean b=false;
  11. int temp=0;
  12. for(int i=0; i<s.length(); i++) {
  13. for(int j=0; j<numerot.length(); j++) {
  14. if(s.charAt(i)!=numerot.charAt(j)) {
  15. temp+=1;
  16. }
  17. }
  18. }
  19. if(temp==s.length()-1) {
  20. b=true;
  21. } else {
  22. b=false;
  23. System.out.print("Virheellinen syöte");
  24. }
  25.  
  26. String[][] lauta=null;
  27.  
  28. String a=lueMerkkijono();
  29.  
  30. if(a==x || a==0;) {
  31. a=a;
  32. } else {
  33. System.out.println("Virheellinen syöte");
  34. a=x;
  35. }
  36.  
  37. laitaKoordinaatti(a, lauta);
  38.  
  39. String voittaja=etsiKolme(lauta[][]);
  40.  
  41. if(voittaja=="Tasapeli") {
  42. System.out.println("Tasapeli");
  43. } else if (voittaja=="x") {
  44. System.out.println("x voitti!");
  45. } else {
  46. System.out.println("o voitti!");
  47. }
  48.  
  49.  
  50. }
  51.  
  52.  
  53.  
  54.  
  55. public static String[][] laitaKoordinaatti(String a,String[][] lauta) {
  56. while(lauta.length<4 && lauta[1].length<4) {
  57. int koord1=lueKokonaisluku();
  58. int koord2=lueKokonaisluku();
  59. if(koord1>2 || koord2>2) {
  60. System.out.println("Virheellinen koordinaatti");
  61. laitaKoordinaatti(a, lauta);
  62. }
  63. if(lauta[koord1][koord2]==null) {
  64. lauta[koord1][koord2]=a;
  65. if (a==0) {
  66. a=x;
  67. }else {
  68. a=0;
  69. }
  70. laitaKoordinaatti(a,lauta);
  71. }else {
  72. System.out.println("Ruutu jo käytössä");
  73. laitaKoordinaatti(a, lauta);
  74. }
  75. }
  76. return lauta[][];
  77. }
  78.  
  79. //etsitään voittajaa
  80. public static String etsiKolme(String[][] taulu) {
  81. int x=0;
  82. int o=0;
  83.  
  84. if(taulu[0][0]=="x" && taulu[0][1]=="x" && taulu[0][2]=="x") {
  85. x+=1;
  86. }
  87. if(taulu[1][0]=="x" && taulu[1][1]=="x" && taulu[1][2]=="x") {
  88. x+=1;
  89. }
  90. if(taulu[2][0]=="x" && taulu[2][1]=="x" && taulu[2][2]=="x") {
  91. x+=1;
  92. }
  93. if(taulu[0][0]=="x" && taulu[1][0]=="x" && taulu[2][0]=="x") {
  94. x+=1;
  95. }
  96. if(taulu[0][1]=="x" && taulu[1][1]=="x" && taulu[2][1]=="x") {
  97. x+=1;
  98. }
  99. if(taulu[0][2]=="x" && taulu[1][2]=="x" && taulu[2][2]=="x") {
  100. x+=1;
  101. }
  102. if(taulu[0][0]=="x" && taulu[1][1]=="x" && taulu[2][2]=="x") {
  103. x+=1;
  104. }
  105. if(taulu[0][2]=="x" && taulu[1][1]=="x" && taulu[2][0]=="x") {
  106. x+=1;
  107. }
  108.  
  109. //sama nollalle
  110. if(taulu[0][0]=="0" && taulu[0][1]=="0" && taulu[0][2]=="0") {
  111. o+=1;
  112. }
  113. if(taulu[1][0]=="0" && taulu[1][1]=="0" && taulu[1][2]=="0") {
  114. o+=1;
  115. }
  116. if(taulu[2][0]=="0" && taulu[2][1]=="0" && taulu[2][2]=="0") {
  117. o+=1;
  118. }
  119. if(taulu[0][0]=="0" && taulu[1][0]=="0" && taulu[2][0]=="0") {
  120. o+=1;
  121. }
  122. if(taulu[0][1]=="0" && taulu[1][1]=="0" && taulu[2][1]=="0") {
  123. o+=1;
  124. }
  125. if(taulu[0][2]=="0" && taulu[1][2]=="0" && taulu[2][2]=="0") {
  126. o+=1;
  127. }
  128. if(taulu[0][0]=="0" && taulu[1][1]=="0" && taulu[2][2]=="0") {
  129. o+=1;
  130. }
  131. if(taulu[0][2]=="0" && taulu[1][1]=="0" && taulu[2][0]=="0") {
  132. o+=1;
  133. }
  134.  
  135. if(x==o) {
  136. return "Tasapeli";
  137. } else if (x>o) {
  138. return "x";
  139. } else {
  140. return "o";
  141. }
  142.  
  143. }
  144.  
  145.  
  146.  
  147. /*
  148. * ViLLE syöttää ohjelmallesi yhden merkkijonon.<br>
  149. * Ristinollapelissä ViLLE syöttää ohjelmallesi jonkin seuraavista arvoista merkkijonona: 0,1,2,3,x
  150. * @return satunnainen merkkijono taulukosta ["0", "1", "2", "3", "x"]
  151. */
  152. public String lueMerkkijono() {
  153. System.out.println("Odotetaan syötettä:");
  154. return new Scanner(System.in).nextLine();
  155. }
  156.  
  157. /*
  158. * ViLLE syöttää ohjelmallesi yhden kokonaisluvun.<br>
  159. * Ristinollapelissä ViLLE yrittää antaa syötteeksi ohjelmallesi jonkin seuraavista arvoista: 0,1,2,3,x<br>
  160. * @throws Exception poikkeus heitetään, jos ViLLE yrittää rikkoa ohjelmasi syöttämällä numeron sijasta kirjaimen.
  161. * @return satunnainen arvo taulukosta [0, 1, 2, 3]
  162. */
  163. public int lueKokonaisluku() throws Exception {
  164. System.out.println("Odotetaan syötettä:");
  165. return new Scanner(System.in).nextInt();
  166. }
  167.  
  168. /*
  169. *Toimii kuten Random-luokan nextInt. Palauttaa satunnaisen kokonaisluvun väliltä [0,ylaraja[.<br>
  170. * Yläraja on eksklusiivinen, eli sitä ei koskaan palauteta.
  171. * @param ylaraja eksklusiivinen yläraja satunnaiselle kokonaisluvulle
  172. * @return satunnainen kokonaisluku x: 0 <= x < ylaraja
  173. */
  174. public int satunnainenKokonaisluku(int ylaraja) {
  175. return r.nextInt(ylaraja);
  176. }
  177.  
  178. /*
  179. * Tulostaa annetun ristinollalaudan.<br>
  180. * @param lauta 3x3 ristinollalauta.
  181. */
  182. public void tulostaLauta(String[][] lauta) {
  183. if(lauta == null){
  184. System.out.println("Lautaasi ei ole alustettu!");
  185. return;
  186. }
  187. if(lauta.length != 3 || lauta[0].length != 3){
  188. System.out.println("Laudallasi on väärät dimensiot. Pitäisi olla 3x3.");
  189. return;
  190. }
  191.  
  192. System.out.println(lauta[0][0]+"|"+lauta[0][1]+"|"+lauta[0][2]);
  193. System.out.println("-|-|-");
  194. System.out.println(lauta[1][0]+"|"+lauta[1][1]+"|"+lauta[1][2]);
  195. System.out.println("-|-|-");
  196. System.out.println(lauta[2][0]+"|"+lauta[2][1]+"|"+lauta[2][2]);
  197. }
  198.  
  199. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement