SHARE
TWEET

Untitled

a guest Dec 16th, 2019 67 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top