Saturday, 17 October 2020

Semi-Graphical computer Tic-Tac-Toe game in Java

  •  In one of the older posts, I had shown how to make a program that allows the computer to play tic-tac-toe with the user. In this post, I am going to show how to update the game and make it semi-graphical.
  • This program might not run in IDE's supported by JRE's above JRE 7 as graphical usage isn't permitted in those JRE's due to a known Java bug.
  • Please pay attention to the text that appears in your IDE console after you run the code.
  • Type the following code in a class named Graphical_Tic_Tac_Toe:

import java.awt.Color;

import java.awt.GridLayout;

import java.util.Scanner;

 

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JTextField;

 

 

public class Graphical_Tic_Tac_Toe {

      

       @SuppressWarnings("resource")

       public static void main(String[] args) {

              loop:{

              int set[]= {0,0,0,0,0,0,0,0,0};

              JFrame frm=new JFrame();

              frm.setAlwaysOnTop(true);

              frm.setSize(200,250);

              frm.setLayout(new GridLayout(4, 3, 5, 5));

              frm.setVisible(true);

              JTextField txt=new JTextField();

              JTextField txtnotreal=new JTextField();

              JButton btn1=new JButton("1");JButton btn2=new JButton("2");

              JButton btn3=new JButton("3");JButton btn4=new JButton("4");

              JButton btn5=new JButton("5");JButton btn6=new JButton("6");

              JButton btn7=new JButton("7");JButton btn8=new JButton("8");

              JButton btn9=new JButton("9");

              JButton arr[]= {btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9};

              txt.setEditable(false);

              txt.setHorizontalAlignment(0);

              txtnotreal.setVisible(false);

              for(int i=0;i<9;i++) {frm.add(arr[i]);}

              frm.add(txtnotreal);

              frm.add(txt);

              String turn="";

              Scanner scan0=new Scanner(System.in);

              System.out.println("Welcome to Graphical_Tic_Tac_Toe");

              System.out.println("-------------------------------");

              System.out.println("Let's start");

              System.out.println("You can tell me your turn by writing only the cell number(1-9), nothing else.");

              System.out.println("Only legal play is allowed. System will self-exit if wrong turn is entered.");

              System.out.println("-------------------------------");

              me(7,arr,set);

              offer();

              turn=scan0.next();opp(turn,arr,set);

              if (turn.equals("1")){

                     me(9,arr,set);

                     offer();

                     turn=scan0.next();opp(turn,arr,set);

                     if (turn.equals("8")){

                           me(3,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("5")){me(6,arr,set);cwin(txt);break loop;}

                           if (turn.equals("6")){me(5,arr,set);cwin(txt);break loop;}

                           if (turn!="5" & turn!="6"){me(5,arr,set);cwin(txt);break loop;}

                     }

                     if (turn!="8"){me(8,arr,set);cwin(txt);break loop;}

              }

              if (turn.equals("2")){

                     me(1,arr,set);

                     offer();

                     turn=scan0.next();opp(turn,arr,set);

                     if (turn.equals("4")){

                           me(9,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("5")){me(8,arr,set);cwin(txt);break loop;}

                           if (turn.equals("8")){me(5,arr,set);cwin(txt);break loop;}

                           if (turn!="5" & turn!="8"){me(5,arr,set);cwin(txt);break loop;}

                     }

                     if (turn!="4"){me(4,arr,set);cwin(txt);break loop;}

              }

              if (turn.equals("3")){

                     me(1,arr,set);

                     offer();

                     turn=scan0.next();opp(turn,arr,set);

                     if (turn.equals("4")){

                           me(9,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("5")){me(8,arr,set);cwin(txt);break loop;}

                           if (turn.equals("8")){me(5,arr,set);cwin(txt);break loop;}

                           if (turn!="5" & turn!="8"){me(5,arr,set);cwin(txt);break loop;}

                     }

                     if (turn!="4"){me(4,arr,set);cwin(txt);break loop;}

              }

              if (turn.equals("4")){

                     me(9,arr,set);

                     offer();

                     turn=scan0.next();opp(turn,arr,set);

                     if (turn.equals("8")){   

                           me(3,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("5")){me(6,arr,set);cwin(txt);break loop;}

                           if (turn.equals("6")){me(5,arr,set);cwin(txt);break loop;}

                           if (turn!="5" & turn!="6"){me(5,arr,set);cwin(txt);break loop;}

                     }

                     if (turn!="8"){me(8,arr,set);cwin(txt);break loop;}

              }

              if (turn.equals("5")){                 

                     me(1,arr,set);

                     offer();

                     turn=scan0.next();opp(turn,arr,set);

                     if (turn.equals("4")){                 

                           me(6,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("3")){me(9,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("2")){me(8,arr,set);cwin(txt);break loop;}

                           if (turn.equals("8")){me(2,arr,set);draw(txt);break loop;}

                           }

                           if (turn.equals("9")){me(3,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("2")){me(8,arr,set);draw(txt);break loop;}

                           if (turn.equals("8")){me(2,arr,set);cwin(txt);break loop;}

                           }

                           if (turn.equals("2")){me(8,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("3")){me(9,arr,set);cwin(txt);break loop;}

                           if (turn.equals("9")){me(3,arr,set);draw(txt);break loop;}

                           }

                           if (turn.equals("8")){me(2,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("3")){me(9,arr,set);draw(txt);break loop;}

                           if (turn.equals("9")){me(3,arr,set);cwin(txt);break loop;}

                           }                         

                     }

                     if (turn!="4"){me(4,arr,set);cwin(txt);break loop;}

              }

              if (turn.equals("6")){                 

                     me(1,arr,set);

                     offer();

                     turn=scan0.next();opp(turn,arr,set);

                     if (turn.equals("4")){                        

                           me(5,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("3")){me(9,arr,set);cwin(txt);break loop;}

                           if (turn.equals("9")){me(3,arr,set);cwin(txt);break loop;}

                           if (turn!="3" & turn!="9"){me(3,arr,set);cwin(txt);break loop;}

                     }

                     if (turn!="4"){me(4,arr,set);cwin(txt);break loop;}

              }

              if (turn.equals("8")){                 

                     me(1,arr,set);

                     offer();

                     turn=scan0.next();opp(turn,arr,set);

                     if (turn.equals("4")){                        

                            me(3,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("5")){me(2,arr,set);cwin(txt);break loop;}

                           if (turn.equals("2")){me(5,arr,set);cwin(txt);break loop;}

                           if (turn!="5" & turn!="2"){me(5,arr,set);cwin(txt);break loop;}

                     }

                     if (turn!="4"){me(4,arr,set);cwin(txt);break loop;}

              }

              if (turn.equals("9")){

                     me(1,arr,set);

                     offer();

                     turn=scan0.next();opp(turn,arr,set);

                     if (turn.equals("4")){                        

                           me(3,arr,set);

                           offer();

                           turn=scan0.next();opp(turn,arr,set);

                           if (turn.equals("5")){me(2,arr,set);cwin(txt);break loop;}

                           if (turn.equals("2")){me(5,arr,set);cwin(txt);break loop;}

                           if (turn!="5" & turn!="2"){me(5,arr,set);cwin(txt);break loop;}

                     }

                     if (turn!="4"){me(4,arr,set);cwin(txt);break loop;}

              }                   

        }

 

       }

       private static void offer() {

              System.out.println("Your turn:");

       }

       private static void me(int i, JButton[] arr, int[] set) {

              set[i-1]=1;

              arr[i-1].setText("X");arr[i-1].setBackground(Color.orange);System.out.println("Computer in "+i);

              }

       private static void opp(String turn, JButton[] arr, int[] set) {

              if (set[(int)(turn.charAt(0))-49]==1) {System.out.println("Wrong turn");System.exit(0);}

              arr[(int)(turn.charAt(0))-49].setText("O");arr[(int)(turn.charAt(0))-49].setBackground(Color.green);

              set[(int)(turn.charAt(0))-49]=1;

              }

       private static void cwin(JTextField txt) {

              System.out.println("Computer won.");txt.setText("You lost");

              }

       private static void draw(JTextField txt) {

              System.out.println("Match draw.");txt.setText("Draw");

       }

 

 

}



  • Run the program.
  • Please remember, the file is only semi-graphical, not complete GUI

Thursday, 15 October 2020

Story reader in Java

  • This program will create a frame on the Windows screen (which will always stay on top) that will read a user-specified file at an user-specified speed.
  • Type this in your IDE in a class named AdvanceReader.
import java.awt.Dimension;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

import javax.swing.JFrame;
import javax.swing.JTextField;

public class AdvanceReader {

public static void main(String[] args) throws FileNotFoundException, InterruptedException {
JFrame frm=new JFrame("Reader");
frm.setAlwaysOnTop(true);
JTextField txt=new JTextField();
frm.setSize(new Dimension(700,100));
frm.add(txt);
txt.setEditable(false);
System.out.println("Enter file address (.txt)");
Scanner scan=new Scanner(System.in);
String x="";
for (;;) {
x=scan.nextLine();
File y=new File(x);
if (y.exists()==true) {break;}
System.out.println("No such file is present on desktop. Try again.");}
System.out.println("Enter reading speed (1-10)");
double y=scan.nextDouble();
y=(11-y)*10;
System.out.println("Welcome to reader.");
System.out.println("-----------------------------------------------");
frm.setVisible(true);
System.out.println("");
Scanner scan2=new Scanner(new File(x));
String abc="";
while (scan2.hasNextLine()){
String a=scan2.nextLine();
for (int i=0;i<a.length();i++) {
abc=abc+a.charAt(i);
txt.setText(abc);
Thread.sleep((long) y);
}
abc="";
}
System.exit(0);

}

}
  • Execute the program

Tuesday, 29 September 2020

Create magic box for any odd number from Java

  • Start your Eclipse IDE
  • Type the following code in a class named MagicSquare:

import java.util.Scanner;


public class MagicSquare {


public static void main(String[] args) {

System.out.println("Welcome to MagicBox");

System.out.println("---------------------------------------------------------------------------");

System.out.println("Enter any odd number for which you want to create a magic box.(Greater than 1");

Scanner scan=new Scanner(System.in);

int n=scan.nextInt();

if (n%2==0) {System.out.println("You didn't enter an odd number");System.exit(0);}

System.out.println("---------------------------------------------------------------------------");

int ct=1;

int a[][]=new int[n][n];

int x=(n+1)/2;

int y=(n-1)/2;

for (int i=0;i<n;i++) {

for (int j=0;j<n;j++) {

a[x][y]=ct;

ct++;x++;y--;

if (x==n) {x=0;}

if (y==-1) {y=n-1;}

}

x=(x+1)%n;y++;if (y==n) {y=0;}

}

int num=(int) Math.floor(Math.log10((double)(Math.pow(n, 2)))+1);

for (int i=0;i<n;i++) {

for (int j=0;j<n;j++) {

if (Math.floor(Math.log10((double)a[j][i])+1)>num) {num=a[j][i];}

}

}

String space="";

double spc=0;

for (int i=0;i<n;i++) {

for (int j=0;j<n;j++) {

spc=num-Math.floor(Math.log10((double)a[j][i])+1);

for (int abc=0;abc<spc;abc++) {

space=space+" ";

}

System.out.print(" |"+" "+a[j][i]+space);

space="";

}

System.out.println(" |");

}

}


}



  • Execute the code

Monday, 28 September 2020

Demo of Frequency project in Java


 This is a demo of the project in java about the frequency of a word in a .txt file

Saturday, 26 September 2020

Find frequency of keyword in Java

 This program checks the frequency of a keyword in any .txt file

  • Start your IDE 
  • Type in a class named Frequency :
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class Frequency {

public static void main(String[] args) throws FileNotFoundException {
Scanner scan2=new Scanner(System.in);
String src="";
System.out.println("Enter main file path (Only .txt files approved)");
for (;;){
src=scan2.nextLine();
if (new File(src).exists()==true){break;}
System.out.println("Your file doesn't exist. Please try again.");
}System.out.println("-----------------------------------------------------------------------");
System.out.println("Welcome to Frequency");
System.out.println("-----------------------------------------------------------------------");
for (;;){
Scanner scan=new Scanner(new File(src));
System.out.println("Enter the word that you want to find: (Type $END$ to terminate program.)");
String chr=scan2.next().replace("\"", "");
if (chr.equals("$END$")){System.out.println("Terminating program...");System.out.println("Terminated");break;}
chr=chr.replace("?", "");
chr=chr.replace(";", "");
chr=chr.replace("!", "");
chr=chr.replace(",", "");
chr=chr.replace("'", "");
chr=chr.replace("’", "");
chr=chr.replace(".", "");
chr=chr.replace(":", "");
chr=chr.replace("(", "");
chr=chr.replace(")", "");
chr=chr.replace("]", "");
chr=chr.replace("[", "");
chr=chr.replace("{", "");
chr=chr.replace("}", "");
chr=chr.replace("-", "");
chr=chr.replace("@", "");
chr=chr.replace("%", "");
chr=chr.replace("*", "");
chr=chr.replace("#", "");
chr=chr.replace("`", "");
chr=chr.replace("~", "");
chr=chr.replace("/", "");
chr=chr.replace("\\", "");
chr=chr.replace(">", "");
chr=chr.replace("<", "");
double frq=0;
double total=0;
String y="";
while (scan.hasNext()){
y=scan.next().replace("\"", "");
y=y.replace("?", "");
y=y.replace(";", "");
y=y.replace("!", "");
y=y.replace(",", "");
y=y.replace("’", "");
y=y.replace("'", "");
y=y.replace(".", "");
y=y.replace(":", "");
y=y.replace("(", "");
y=y.replace(")", "");
y=y.replace("]", "");
y=y.replace("[", "");
y=y.replace("{", "");
y=y.replace("}", "");
y=y.replace("-", "");
y=y.replace("@", "");
y=y.replace("%", "");
y=y.replace("*", "");
y=y.replace("#", "");
y=y.replace("`", "");
y=y.replace("~", "");
y=y.replace("/", "");
y=y.replace("\\", "");
y=y.replace(">", "");
y=y.replace("<", "");
//System.out.println(y); Just to see result
total++;
if (y.equalsIgnoreCase(chr)){frq++;}
}
System.out.println("Word appears "+frq+" times");
System.out.println("The word has an appearance frequency in the text of "+frq/total*100+"%");
System.out.println("-----------------------------------------------------------------------");}

}

}



  • Execute the code

Wednesday, 2 September 2020

Tic-tac-toe in Java

  • This is a functional tic-tac-toe game in Java.
  • All things will be explained when you run the code.
  • Type the following code in your IDE

import java.util.Scanner;



public class tic_tac_toe {


public static void main(String[] args) {

String turn="";

Scanner scan=new Scanner(System.in);

System.out.println("Welcome to tic-tac-toe");

System.out.println("Let's start");

System.out.println("Take a sheet of paper and draw a 3-by-3 grid");

System.out.println("Now mark them like this:");

System.out.println("1 2 3");

System.out.println("4 5 6");

System.out.println("7 8 9");

System.out.println("You can tell me your turn by writing only the cell number(1-9), nothing else.");

System.out.println("Only legal play is allowed. You get error in wrong turns.");

for(;;){

loop:{

System.out.println("\nComputer:X in 7");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("1")){

System.out.println("Computer:X in 9");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("8")){

System.out.println("Computer:X in 3");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("5")){System.out.println("Computer:X in 6");System.out.println("Computer won.");break loop;}

if (turn.equals("6")){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

if (turn!="5" & turn!="6"){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

}

if (turn!="8"){System.out.println("Computer:X in 8");System.out.println("Computer won.");break loop;} 

}

if (turn.equals("2")){

System.out.println("Computer:X in 1");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("4")){

System.out.println("Computer:X in 9");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("5")){System.out.println("Computer:X in 8");System.out.println("Computer won.");break loop;}

if (turn.equals("8")){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

if (turn!="5" & turn!="8"){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

}

if (turn!="4"){System.out.println("Computer:X in 4");System.out.println("Computer won.");break loop;} 

}

if (turn.equals("3")){

System.out.println("Computer:X in 1");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("4")){

System.out.println("Computer:X in 9");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("5")){System.out.println("Computer:X in 8");System.out.println("Computer won.");break loop;}

if (turn.equals("8")){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

if (turn!="5" & turn!="8"){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

}

if (turn!="4"){System.out.println("Computer:X in 4");System.out.println("Computer won.");break loop;} 

}

if (turn.equals("4")){

System.out.println("Computer:X in 9");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("8")){

System.out.println("Computer:X in 3");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("5")){System.out.println("Computer:X in 6");System.out.println("Computer won.");break loop;}

if (turn.equals("6")){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

if (turn!="5" & turn!="6"){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

}

if (turn!="8"){System.out.println("Computer:X in 8");System.out.println("Computer won.");break loop;} 

}

if (turn.equals("5")){

System.out.println("Computer:X in 1");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("4")){

System.out.println("Computer:X in 6");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("3")){System.out.println("Computer:X in 9");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("2")){System.out.println("Computer:X in 8");System.out.println("Computer won.");break loop;}

if (turn.equals("8")){System.out.println("Computer:X in 2");System.out.println("Match draw.");break loop;}

}

if (turn.equals("9")){System.out.println("Computer:X in 3");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("2")){System.out.println("Computer:X in 8");System.out.println("Match draw.");break loop;}

if (turn.equals("8")){System.out.println("Computer:X in 2");System.out.println("Computer won.");break loop;}

}

if (turn.equals("2")){System.out.println("Computer:X in 8");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("3")){System.out.println("Computer:X in 9");System.out.println("Computer won.");break loop;}

if (turn.equals("9")){System.out.println("Computer:X in 3");System.out.println("Match draw.");break loop;}

}

if (turn.equals("8")){System.out.println("Computer:X in 2");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("3")){System.out.println("Computer:X in 9");System.out.println("Match draw.");break loop;}

if (turn.equals("9")){System.out.println("Computer:X in 3");System.out.println("Computer won.");break loop;}

}

}

if (turn!="4"){System.out.println("Computer:X in 4");System.out.println("Computer won.");break loop;} 

}

if (turn.equals("6")){

System.out.println("Computer:X in 1");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("4")){

System.out.println("Computer:X in 5");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("3")){System.out.println("Computer:X in 9");System.out.println("Computer won.");break loop;}

if (turn.equals("9")){System.out.println("Computer:X in 3");System.out.println("Computer won.");break loop;}

if (turn!="3" & turn!="9"){System.out.println("Computer:X in 3");System.out.println("Computer won.");break loop;}

}

if (turn!="4"){System.out.println("Computer:X in 4");System.out.println("Computer won.");break loop;} 

}

if (turn.equals("8")){

System.out.println("Computer:X in 1");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("4")){

System.out.println("Computer:X in 3");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("5")){System.out.println("Computer:X in 2");System.out.println("Computer won.");break loop;}

if (turn.equals("2")){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

if (turn!="5" & turn!="2"){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

}

if (turn!="4"){System.out.println("Computer:X in 4");System.out.println("Computer won.");break loop;} 

}

if (turn.equals("9")){

System.out.println("Computer:X in 1");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("4")){

System.out.println("Computer:X in 3");

System.out.println("Your turn:");

turn=scan.next();

if (turn.equals("5")){System.out.println("Computer:X in 2");System.out.println("Computer won.");break loop;}

if (turn.equals("2")){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

if (turn!="5" & turn!="2"){System.out.println("Computer:X in 5");System.out.println("Computer won.");break loop;}

}

if (turn!="4"){System.out.println("Computer:X in 4");System.out.println("Computer won.");break loop;} 

}

}System.out.println("\nNew Game");

}

 


}


}


  • Now execute the code.

Algorithmic Pixel Art: The Beauty of Aliasing

Discussed  here More images in  Google drive Some outputs: Forward to anyone who says aliasing is ugly.