Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Scanner;
- import java.util.Random;
- public class TicTacToe {
- static int[] ruudud = new int[9];
- public static void main(String[] args){
- makeBoard();
- for(int x=0; x<=4; x++){
- ruudud[readInput()]=1;
- makeBoard();
- checkWin(ruudud);
- if(x==4){
- System.out.println("Mäng läbi! Käigud said otsa!");
- }
- ruudud[makeMove()]=-1;
- makeBoard();
- checkWin(ruudud);
- }
- }
- public static void makeBoard(){
- String[] kuva= new String[9];
- for(int y=0;y<ruudud.length;y++){
- if(ruudud[y]==1){
- kuva[y]="X";
- }
- else if(ruudud[y]==-1){
- kuva[y]="O";
- }
- else kuva[y]=" ";
- }
- System.out.println("+---+---+---+");
- System.out.println("| "+kuva[0]+" | "+kuva[1]+" | "+kuva[2]+" |");
- System.out.println("+---+---+---+");
- System.out.println("| "+kuva[3]+" | "+kuva[4]+" | "+kuva[5]+" |");
- System.out.println("+---+---+---+");
- System.out.println("| "+kuva[6]+" | "+kuva[7]+" | "+kuva[8]+" |");
- System.out.println("+---+---+---+");
- }
- public static int makeMove(){
- int r = 0;
- if(winDetect()==0){
- r = 4;
- if(ruudud[r]!=0){
- int[] nurgad = {0,2,6,8};
- Random nurk = new Random();
- r = nurk.nextInt(nurgad.length);
- if(ruudud[r]!=0){
- r = nurk.nextInt(nurgad.length);
- }
- Random ruut = new Random();
- r = ruut.nextInt(9);
- while(ruudud[r]!=0){
- r=ruut.nextInt(9);
- }
- }
- }
- else r=winDetect();
- return r;
- }
- public static int readInput() {
- Scanner scanner = new Scanner(System.in);
- int nr;
- if (scanner.hasNextInt()){
- nr = scanner.nextInt();
- if((nr>8)||(nr<0)){
- System.out.println("Vale number! Sisesta õige number!");
- nr = scanner.nextInt();
- }
- if(ruudud[nr]!=0){
- System.out.println("Ruut on juba hõivatud! Sisesta uus number!");
- nr = scanner.nextInt();
- }
- }
- else{
- System.out.println("Sisesta number 0-st 9-ni!");
- return readInput();
- }
- return nr;
- }
- public static int checkWin(int[] ruudud) {
- for(int q=0;q<7;q+=3){
- if((ruudud[q]==ruudud[q+1])&&(ruudud[q+1]==ruudud[q+2])
- &&((ruudud[q])+(ruudud[q+1])+(ruudud[q+2])!=0)){
- if(ruudud[q]==1){
- System.out.println("Palju õnne, Sa võitsid!");
- }
- if(ruudud[q]==-1){
- System.out.println("Arvuti võitis!");
- }
- return 1;
- }
- }
- for(int w=0;w<3;w++){
- if((ruudud[w]==ruudud[w+3])&&(ruudud[w+3]==ruudud[w+6])
- &&((ruudud[w])+(ruudud[w+3])+(ruudud[w+6])!=0)){
- if(ruudud[w]==1){
- System.out.println("Palju õnne, Sa võitsid!");
- }
- if(ruudud[w]==-1){
- System.out.println("Arvuti võitis!");
- }
- return 1;
- }
- }
- if((ruudud[0]==ruudud[4])&&(ruudud[4]==ruudud[8])
- &&((ruudud[0])+(ruudud[4])+(ruudud[8])!=0)){
- if(ruudud[0]==1){
- System.out.println("Palju õnne, Sa võitsid!");
- }
- if(ruudud[0]==-1){
- System.out.println("Arvuti võitis!");
- }
- return 1;
- }
- if((ruudud[2]==ruudud[4])&&(ruudud[4]==ruudud[6])
- &&((ruudud[2])+(ruudud[4])+(ruudud[6])!=0)){
- if(ruudud[2]==1){
- System.out.println("Palju õnne, Sa võitsid!");
- }
- if(ruudud[2]==-1){
- System.out.println("Arvuti võitis!");
- }
- return 1;
- }
- return 0;
- }
- public static int winDetect(){
- int kaik = 0;
- for(int e=0;e<7;e+=3){
- if((ruudud[e]==ruudud[e+1])&&((ruudud[e]+ruudud[e+1])!=0)&&(ruudud[e+2]==0)){
- kaik=e+2;
- }
- if((ruudud[e+1]==ruudud[e+2])&&((ruudud[e+1]+ruudud[e+2])!=0)&&(ruudud[e]==0)){
- kaik=e;
- }
- if((ruudud[e]==ruudud[e+2])&&((ruudud[e]+ruudud[e+2])!=0)&&(ruudud[e+1]==0)){
- kaik=e+1;
- }
- }
- for(int t=0;t<3;t++){
- if((ruudud[t]==ruudud[t+3])&&((ruudud[t]+ruudud[t+3])!=0)&&(ruudud[t+6]==0)){
- kaik=t+6;
- }
- if((ruudud[t+3]==ruudud[t+6])&&((ruudud[t+3]+ruudud[t+6])!=0)&&(ruudud[t]==0)){
- kaik=t;
- }
- if((ruudud[t]==ruudud[t+6])&&((ruudud[t]+ruudud[t+6])!=0)&&(ruudud[t+3]==0)){
- kaik=t+3;
- }
- }
- if((ruudud[0]==ruudud[4])&&((ruudud[0]+ruudud[4])!=0)&&(ruudud[8]==0)){
- kaik=8;
- }
- if((ruudud[0]==ruudud[8])&&((ruudud[0]+ruudud[8])!=0)&&(ruudud[4]==0)){
- kaik=4;
- }
- if((ruudud[4]==ruudud[8])&&((ruudud[4]+ruudud[8])!=0)&&(ruudud[0]==0)){
- kaik=0;
- }
- if((ruudud[2]==ruudud[4])&&((ruudud[2]+ruudud[4])!=0)&&(ruudud[6]==0)){
- kaik=6;
- }
- if((ruudud[2]==ruudud[6])&&((ruudud[2]+ruudud[6])!=0)&&(ruudud[4]==0)){
- kaik=4;
- }
- if((ruudud[4]==ruudud[6])&&((ruudud[4]+ruudud[6])!=0)&&(ruudud[2]==0)){
- kaik=2;
- }
- return kaik;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement