Showing posts with label Java. Show all posts
Showing posts with label Java. Show all posts

Monday, 15 October 2012

N Queen Algorithm

package eight.queen.algorithm;



public class Queen {
 
 private int N = 8; 
 private int chess[][];
 
 
 public Queen(){
  chess = new int[N][N];
  System.out.println(N+" sizes chess table contain "+NQueen(0)+"\n");
 }
 
 public int NQueen(int currentRow){
  
  if(currentRow==N)
   return 1;
  int totalQueenSetting = 0;
  for(int i = 0;i<N;i++){
   if(chess[currentRow][i]==0){ 
    chess[currentRow][i] = 1+currentRow;
    setConsumedSquares(currentRow,i);
    
    totalQueenSetting += NQueen(currentRow+1);
    for(int k = 0; k<N;k++)
     for(int j = 0;j<N;j++)
      if(chess[k][j]==8){
       print();
       System.out.println("\t");
       break;
      }
    chess[currentRow][i] = 0;
    recover(currentRow);
   }
  }
  return totalQueenSetting;
 }
 public void setConsumedSquares(int row,int i){
  for(int j = row+1;j<N;j++){
   if(chess[j][i]==0)
   chess[j][i] = (1+row);
   if(i-(j-row)>=0 && chess[j][i-(j-row)] == 0)
    chess[j][i-(j-row)] = (1+row);
   if(i+(j-row) < N && chess[j][i+(j-row)] == 0)
    chess[j][i+(j-row)] = (1+row);
  }
   
 }
 public void recover(int row){
  for(int i = row;i<N;i++)
   for(int j = 0;j<N;j++)
    if(chess[i][j]==(1+row))
     chess[i][j] = 0;
 }
 public void print(){
  for(int i = 0; i<N;i++)
   for(int j = 0;j<N;j++){
    System.out.print(chess[i][j]+" ");
    if(j == N-1)
     System.out.println("\t");
   }
 }
 public static void main(String[] args){
  Queen test = new Queen();
  
 }
}

insertion sorting



public class insertionSorting {

 /**
  * @param args
  */
 
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  insertionSorting test = new insertionSorting();
 }
 
 public insertionSorting(){
  int array[] = {2,5,1,9,12,3,6,7,11,11,11,8,21,17,45,46,33,22};
  sorting(array);
  print(array);
 }
 
 public void sorting(int[] buffer){
  int key,i;
  for(int j = 1;j<buffer.length;j++)
  {
   key = buffer[j];
   i = j-1;
   while((i>=0) && buffer[i] > key){
    buffer[i+1] = buffer[i];
    i = i-1;
   }
   buffer[i+1] = key;
  }
 }
 public void print(int[] buffer){
  for(int i = 0;i<buffer.length;i++)
   System.out.print(buffer[i]+", ");
 }
 
}

Merge Sorting



public class mergeSort {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  mergeSort test = new mergeSort();
 }
 private int[] array;
 private int N;
 public mergeSort(){
  N = 10;
  array = new int[N];
  for(int i=0;i<array.length;i++)
   array[i] = (int)(Math.random()*10)+1;
  print(array);
  sort(array,0,N-1);
  print(array);
 }
 public void print(int []array){
  for(int i = 0;i<array.length;i++)
   System.out.print(array[i]+", ");
  System.out.println("");
 }
 public void sort(int []array,int p,int r){
  if(r-p>=1)
  {
   int q = (int)(Math.floor((double)((p+r)/2)));
   sort(array,p,q);
   sort(array,q+1,r);
   merge(array,p,q,r);
  } 
   
 }
 public void merge(int []array,int p,int q,int r){
  int n1 = q-p+1;
  int n2 = r-q;
  int left[] = new int[n1+1];
  int right[] = new int[n2+1];
  for(int i = 0;i<left.length-1;i++)
   left[i] = array[p+i];
  for(int i=0;i<right.length-1;i++)
   right[i] = array[q+i+1];
  left[n1] = 11;
  right[n2] = 11;
  int i = 0;
  int j = 0;
  for(int k = p;k<=r;k++){
   if(left[i]<=right[j]){
    array[k] = left[i];
    i++;
   }else{
    array[k] = right[j];
    j++;
   }
  }
  
 }
}

Saturday, 11 August 2012

ActionListener Example

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.text.DecimalFormat;
import java.util.ArrayList;


public class makine extends JApplet{

 
 private int counter = 0;
 
 
 private ArrayList<String> liste;
 private String[] yazi;
 private JButton one,two,three,four,five,
 six,seven,eight,nine,zero,
 arti,eksi,bolu,carpi,CE,esit;
 
 
 
 private JTextField ekran;
 private JLabel yazar;
 private DecimalFormat dec;
 
 public String ToString(Double d)
 {
  return d.toString();
 }
 //@override
 public void init()
 { 
  yazi = new String[11];
  liste = new ArrayList<String>();
  for(int i = 0;i<11;i++){
   yazi[i] = "";
  }
  ActionHandler handler = new ActionHandler();
  Container container = this.getContentPane();
  container.setLayout(new FlowLayout(1,8,2));
  
  
  
  dec = new DecimalFormat("0.000");
  one = new JButton();
  one.setText("1");
  one.setSize(20, 20);
  one.setLocation(40, 40);
  container.add(one);
  one.addActionListener(handler);
  
  
  two = new JButton();
  two.setText("2");
  two.setSize(20, 20);
  two.setLocation(40, 40);
  container.add(two);
  two.addActionListener(handler);
  
  three = new JButton();
  three.setText("3");
  three.setSize(20, 20);
  three.setLocation(70, 40);
  container.add(three);
  three.addActionListener(handler);
  
  arti = new JButton();
  arti.setText("+");
  arti.setSize(20, 20);
  arti.setLocation(100, 40);
  container.add(arti);
  arti.addActionListener(handler);
  
  four = new JButton();
  four.setText("4");
  four.setSize(20, 20);
  four.setLocation(10, 70);
  container.add(four);
  four.addActionListener(handler);
  
  five = new JButton();
  five.setText("5");
  five.setSize(20, 20);
  five.setLocation(40, 70);
  container.add(five);
  five.addActionListener(handler);
  
  six = new JButton();
  six.setText("6");
  six.setSize(20, 20);
  six.setLocation(70, 70);
  container.add(six);
  six.addActionListener(handler);
  
  eksi = new JButton();
  eksi.setText("-");
  eksi.setSize(20, 20);
  eksi.setLocation(10, 70);
  container.add(eksi);
  eksi.addActionListener(handler);
  
  seven = new JButton();
  seven.setText("7");
  seven.setSize(20, 20);
  seven.setLocation(10, 100);
  container.add(seven);
  seven.addActionListener(handler);
  

  
  
  eight = new JButton();
  eight.setText("8");
  eight.setSize(20, 20);
  eight.setLocation(40, 100);
  container.add(eight);
  eight.addActionListener(handler);
  
  nine = new JButton();
  nine.setText("9");
  nine.setSize(20, 20);
  nine.setLocation(70, 100);
  container.add(nine);
  nine.addActionListener(handler);
  
  carpi = new JButton();
  carpi.setText("x");
  carpi.setSize(20, 20);
  carpi.setLocation(100, 130);
  container.add(carpi);
  carpi.addActionListener(handler);
  
  CE = new JButton();
  CE.setText("CE");
  CE.setSize(20, 20);
  CE.setLocation(10, 100);
  container.add(CE);
  CE.addActionListener(handler);
  
  zero = new JButton();
  zero.setText("0");
  zero.setSize(20, 20);
  zero.setLocation(40, 130);
  container.add(zero);
  zero.addActionListener(handler);
  
  
  
  
  bolu = new JButton();
  bolu.setText("/");
  bolu.setSize(20, 20);
  bolu.setLocation(100, 100);
  container.add(bolu);
  bolu.addActionListener(handler);
  
  
  
  esit = new JButton();
  esit.setText("=");
  esit.setSize(20, 20);
  esit.setLocation(70, 100);
  container.add(esit);
  esit.addActionListener(handler);
  
  ekran = new JTextField(15);
  ekran.setText(" ");
  ekran.setEditable(false);
  ekran.setDisabledTextColor(Color.BLUE );
  ekran.setVisible(true);
  ekran.setAlignmentY(JTextField.RIGHT_ALIGNMENT);
  ekran.setHorizontalAlignment(JTextField.RIGHT);
  ekran.setLocation(10,10);
  container.add(ekran);
  ekran.addActionListener(handler);
  
  yazar = new JLabel("Tested and Programmed by BY");
  container.add(yazar);
  
 }
 //inner class
 private class ActionHandler implements ActionListener
 {
  public void actionPerformed(ActionEvent event)
  {
   if(event.getSource() == one){
    if(counter<11){
     yazi[counter]+="1";
     ekran.setText(yazi[counter]);
    }else ;
   }if(event.getSource() == two){
    if(counter<11){
     yazi[counter]+="2";
     ekran.setText(yazi[counter]);
    }else ;
   }if(event.getSource() == three){
    if(counter<11){
     yazi[counter]+="3";
     ekran.setText(yazi[counter]);
    }else;
   }if(event.getSource() == four){
    if(counter<11){
     yazi[counter]+= "4";
     ekran.setText(yazi[counter]);
    }else;
   }if(event.getSource() == five){
    if(counter<11){
     yazi[counter] += "5";
     ekran.setText(yazi[counter]);
    }else;
   }if(event.getSource() == six){
    if(counter<11){
     yazi[counter] += "6";
     ekran.setText(yazi[counter]);
    }else;
   }if(event.getSource() == seven){
    if(counter<11){
     yazi[counter] += "7";
     ekran.setText(yazi[counter]);
    }else;
   }if(event.getSource() == eight){
    if(counter<11){
     yazi[counter] += "8";
     ekran.setText(yazi[counter]);
    }else;
   }if(event.getSource() == nine){
    if(counter<11){
     yazi[counter] += "9";
     ekran.setText(yazi[counter]);
    }else;
   }if(event.getSource() == zero){
    if(counter<11){
     yazi[counter] += "0";
     ekran.setText(yazi[counter]);
    }else;
   }if(event.getSource() == arti){
    try{
    if(Double.parseDouble(yazi[counter])>=0){
    counter++;
    yazi[counter] = "+";
    counter++;
    }else;
    }catch(Exception e){
     ekran.setText("Syntax Error");
    }
   }if(event.getSource() == eksi){
    try{
    if(Double.parseDouble(yazi[counter])>=0){
    counter++;
    yazi[counter] = "-";
    counter++;
    }else;
    }catch(Exception e){
     ekran.setText("Syntax Error");
    }
   }if(event.getSource() == bolu){
    try{
    if(Double.parseDouble(yazi[counter])>=0){
    counter++;
    yazi[counter] = "/";
    counter++;
    }else;
    }catch(Exception e){
     ekran.setText("Syntax Error");
    }
   }if(event.getSource() == carpi){
    try{
    if(Double.parseDouble(yazi[counter])>=0){
    counter++;
    yazi[counter] = "*";
    counter++;
    }
    }catch(Exception e){
     ekran.setText("Syntax Error");
    }
   }if(event.getSource() == CE){
    for(int i = 0;i<11;i++)
     yazi[i] = "";
     ekran.setText("");
     counter = 0;
   }if(event.getSource() == esit){
    //try{
    for(int i = 0;i<11;i++){
     liste.add(i,yazi[i]);
    }
    for(int i = 0;i<11;i++){
     try{
     if(yazi[i]=="/"){
       
     yazi[i] = ToString(Double.parseDouble(yazi[i-1])/Double.parseDouble(yazi[i+1]));
       yazi[i-1] = yazi[i];
       yazi[i+1] = yazi[i];
       liste.remove(0);
       liste.add(0,yazi[i]);
      }
     }catch(Exception e){
      ekran.setText("Syntax Error");
      counter = 0;
     }
    }
    for(int i = 0;i<11;i++){
     try{ 
     if(yazi[i]=="*"){
           yazi[i] = ToString(Double.parseDouble(yazi[i-1])*Double.parseDouble(yazi[i+1]));
       yazi[i-1] = yazi[i];
       yazi[i+1] = yazi[i];
       liste.remove(0);
       liste.add(0,yazi[i]);
       
      }
     }
     catch(Exception e){
      ekran.setText("Syntax Error");
      counter = 0;
     }
    }
    for(int i = 0;i<11;i++){
     try{
     if(yazi[i]=="+"){
                         yazi[i] = ToString(Double.parseDouble(yazi[i-1])+Double.parseDouble(yazi[i+1]));
       yazi[i-1] = yazi[i];
       yazi[i+1] = yazi[i];
       liste.remove(0);
       liste.add(0,yazi[i]);
      } 
     }
     catch(Exception e){
      ekran.setText("Syntax Error");
      counter = 0;
     }
    }
    for(int i = 0;i<11;i++){
     try{
     if(yazi[i]=="-"){
        
    yazi[i] = ToString(Double.parseDouble(yazi[i-1])-Double.parseDouble(yazi[i+1]));
       yazi[i-1] = yazi[i];
       yazi[i+1] = yazi[i];
       liste.remove(0);
       liste.add(0,yazi[i]);
      }
     }
     catch(Exception e){
      ekran.setText("Syntax Error");
      counter = 0;
     } 
    } 
     if(liste.isEmpty()){
      ekran.setText("Syntax Error");
      counter = 0;}
     else{
         if(liste.get(0)!="")
                              ekran.setText(liste.get(0).toString());
     }
     counter = 0;
     for(int i = 0;i<11;i++)
      yazi[i] = "";
     if(!liste.isEmpty())
      liste.clear();
      
    /*}catch(Exception e){
     ekran.setText("Syntax Error");
    }*/
   }
   
  }
 } 
}

Saturday, 9 June 2012

PingPong Game in Java

Board.java 

 

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import javax.swing.Timer;
public class Board extends JPanel implements ActionListener{
 
 private final int width = 600;
 private final int height = 600;
 
 private int delay = 30;//time delay to update
 private int board_x;//board x location
 private int board_y;//board y location
 private int ball_x;//ball x location
 private int ball_y;//ball y location
 private float ball_xv;//ball x violation
 private float ball_yv;//ball y violation
 
 //conditions
 private boolean running = true;
 private boolean contin= true; 
 private boolean tryagain = false;
 
 //for keyboard 
 private boolean pause = false;
 private boolean left = false;
 private boolean right = false;
 
 //for mouse motions
 private boolean dragged = false;
 private int howfarx = 0; //how far mouse click x coordinate from object's x coordinate
 
 
 private Image ball;
 private Image board;
 private Timer timer;
 private Image background;
 
 private String msg = "presss";
 
 
 public Board()
 {
  addKeyListener(new TAdapter()); 
  addMouseMotionListener(new MAdapter());
  addMouseListener(new MAdapter());
  setBackground(Color.white);
  load();
  setFocusable(true);
  init();
 }
 public void load()
 {
  board = new ImageIcon("C:\\javapics\\board.png").getImage();
  ball = new ImageIcon("C:\\javapics\\ae.png").getImage();
  background = new ImageIcon("C:\\javapics\\backgroud.png").getImage();
 }
 public void actionPerformed(ActionEvent e) {
  
  if(running)
  {
      if(contin)
      {
       ballmoving();
       boardmove();
       lose();
      }
      
  }
   repaint();
 }
 public void start()
 {
  ball_xv = -0.4f;
  ball_yv = -0.3f;
  board_x = 240;
  board_y = 580;
  ball_x = 300;
  ball_y = 240;
 }
 public void init()
 {
  start();
  timer = new Timer(delay,this);
  timer.start();
 }
 public void paint(Graphics g)
 {
  super.paint(g);
  if(contin)
  {
   g.drawImage(ball, ball_x, ball_y,this);
   g.drawImage(board, board_x, board_y,this);
   Toolkit.getDefaultToolkit().sync();
   g.dispose();
  }
  if(tryagain)
  {
   String msg2 = "Press Enter to try again";
         Font small = new Font("Arial", Font.BOLD, 15);

         g.setColor(Color.black);
         g.setFont(small);
         g.drawString(msg2,200,300);
         
  }
  if(pause)
  {
   String msg2 = "Pause! Press Space to continue";
         Font small = new Font("Helvetica", Font.BOLD, 15);

         g.setColor(Color.black);
         g.setFont(small);
         g.drawString(msg2,200,300);
         
  }
  if(!running)
  { 
   g.drawImage(background, 0, 0,this);
  }
  
 }
 public void lose()
 {
  if(ball_y + 20 > height)
  { 
   contin = false;
   tryagain = true;
   
  }
  
 }
 public void ballmoving()
 {
  
  if(ball_x < 1)
   ball_xv = Math.abs(ball_xv);
  else if((ball_x + 20) > (width-21))
   ball_xv = -Math.abs(ball_xv);
  
  if(ball_y < 1)
   ball_yv = Math.abs(ball_yv);
  else if((ball_y+20) > (height-21))
   if(ball_x >= board_x && ball_x <= (board_x+100) )
   ball_yv = -Math.abs(ball_yv);
  
  update(delay);
  
 }
 public void update(int timedelay)//to update ball location on the screen
 {
  ball_x = (ball_x + (int)(ball_xv*delay));
  ball_y = (ball_y + (int)(ball_yv*delay));
 }
 public void boardmove()//to play with keyboard
 {
  if(left){
   board_x -= 40;
   left = false;
  }
  if(right){
   board_x += 40;
   right = false;
  }
 }
 private class MAdapter extends MouseAdapter
 {
  public void mousePressed(MouseEvent e)
  {
   int mousex = e.getX();
   int mousey = e.getY();
   if(mousex >= board_x && mousex <= (board_x+ 100))
    if(mousey >= board_y && mousey <= (board_y+100)){
     dragged = true;
     howfarx =  mousex - board_x;
   }else {
     dragged = false;
   }
  }
  public void mouseDragged(MouseEvent e)
  { 
   if(dragged){
    board_x = e.getX() - howfarx;
    
    board_x = Math.max(0, board_x);//to prevent overflow from sides
    board_x = Math.min(board_x, (width-120));/////////////////////
   }
  }
  public void mouseExited(MouseEvent e)
  {
   dragged = false;
   howfarx = 0;
  }
  public void mouseMoved   (MouseEvent e) {}  // ignore these events
  public void mouseEntered (MouseEvent e) {}  // ignore these events
  public void mouseClicked (MouseEvent e) {}  // ignore these events
  public void mouseReleased(MouseEvent e) {}  // ignore these events
 }
 private class TAdapter extends KeyAdapter
 { 
  public void keyPressed(KeyEvent e)
  {
   int key = e.getKeyCode();
   if(key == KeyEvent.VK_Z)
   { 
    msg = "pressed z";
    if((board_x - 40) >= 0)//to prevent overflow from left side from 
     left = true;
    else
     left = false;//nothing
   }
   if(key == KeyEvent.VK_X)
   {
    msg = "pressed x";
    if((board_x + 150) <= width)//to prevent overflow form right side of game area
     right = true;
    else 
     right = false;//nothing
   }
   if(key == KeyEvent.VK_ENTER){
    start();
    contin = true;
    tryagain = false;
    pause = false;
   }
   if(key == KeyEvent.VK_SPACE){
    if(!pause){
    contin = false;
    pause = true;
    tryagain = false;
    }else{
     contin = true;
     pause = false;
     tryagain = false;
    }
   }
   if(key == KeyEvent.VK_ESCAPE){
    running = false;
    contin = false;
    pause = false;
    tryagain = false;
   }
  }
 }
}



import javax.swing.*;
public class pinpong extends JApplet {

 /**
  * @param args
  */
 public pinpong()
 { 
  this.setContentPane(new Board()); 
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  JFrame window = new JFrame();
  window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.setSize(586, 630);
        window.setLocationRelativeTo(null);
        window.setTitle("pinpong");
        window.setContentPane(new Board());
        window.setResizable(false);
        window.setVisible(true);
 }

}

Friday, 27 April 2012

Dragging image in java

Draging Image dragme.java

import javax.swing.JFrame;
public class dragme extends JFrame{
 
 public dragme(){
  
  add(new dragged());
  
  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(600, 600);
        setLocationRelativeTo(null);
        setTitle("Dragging App");

        setResizable(false);
        setVisible(true);
  
 }
 
 public static void main(String[] args){
  new dragme();
 }
 
}


Dragged Image Class dragged.java

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.*;

import javax.swing.*;

public class dragged extends JPanel implements MouseMotionListener, MouseListener {
 private Image Dragged;
 private Image background;
 private static int x_coord = 150;
 private static int y_coord = 150;
 private boolean isdragged;
 private static int x_dragFrom = 0;
 private static int y_dragFrom = 0;
 public dragged(){
  
  setPreferredSize(new Dimension(300,300));
  setBackground(Color.WHITE);
  this.addMouseMotionListener(this);
  this.addMouseListener(this);
  LoadImage();
  
 }
 
 public void LoadImage(){
  
  Dragged = new ImageIcon("C:\\javapics\\deneme.png").getImage();
  background = new ImageIcon("C:\\javapics\\daaad.png").getImage();
 }
 
 public void paintComponent(Graphics g){
  
  super.paintComponent(g);
  g.drawImage(background, 0, 0, null);
  g.drawImage(Dragged, x_coord, y_coord, this);
  
 }
 public void mousePressed(MouseEvent e) {
        int x = e.getX();   // Save the x coord of the click
        int y = e.getY();   // Save the y coord of the click
        
        if (x >= x_coord && x <= (x_coord + Dragged.getWidth(null))
                && y >= y_coord && y <= (y_coord + Dragged.getWidth(null))) {
            isdragged = true;
            x_dragFrom = x - x_coord;  // how far from left
            y_dragFrom = y - y_coord;  // how far from top
        } else {
            isdragged = false;
        }
    }
  public void mouseDragged(MouseEvent e) {
         if (isdragged) {  
            
             x_coord = e.getX() - x_dragFrom;//to better dragging view
             y_coord = e.getY() - y_dragFrom;//to better dragging view
             
            //to prevent overflow left and right side
             x_coord  = Math.max(x_coord , 0);
             x_coord  = Math.min(x_coord , getWidth() - Dragged.getWidth(null));
             
             //to prevent overflow up and down side
             y_coord  = Math.max(y_coord , 0);
             y_coord  = Math.min(y_coord , getHeight() - Dragged.getHeight(null));
             
             this.repaint(); // Repaint because position changed.
         }
     }

     //we should change isdragged variable when mouse released for dragging
     public void mouseExited(MouseEvent e) {
         isdragged = false;
     }

     public void mouseMoved   (MouseEvent e) {}  // ignore these events
     public void mouseEntered (MouseEvent e) {}  // ignore these events
     public void mouseClicked (MouseEvent e) {}  // ignore these events
     public void mouseReleased(MouseEvent e) {}  // ignore these events
}

Wednesday, 18 April 2012

Snake Game in Java

screen.java is using for fullscreen game develpment

import java.awt.*;
import java.awt.image.BufferStrategy;
import java.awt.image.BufferedImage;
//import java.lang.reflect.InvocationTargetException;
import javax.swing.JFrame;
public class screen {

 private GraphicsDevice vc;
 
 //give vc access to monitor screen
 //Constructor
 public screen(){
  
  GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
  vc = e.getDefaultScreenDevice();
  
 }
 //get all compatible DM
 public DisplayMode[] getCompatibleDisplayModes(){
  return vc.getDisplayModes();
 }
 
 //compares DM passed in to vc DM and see if they matchs
 public DisplayMode findFirstCompatibleMode(DisplayMode modes[]){
  
  DisplayMode goodModes[] = vc.getDisplayModes();
  for(int x=0;x<modes.length;x++){
   for(int y=0;y<goodModes.length;y++){
    if(displayModesMatch(modes[x],goodModes[y])){
     return modes[x];
    }
   }
  }
  return null;
 }
 //get current DM 
 public DisplayMode getCurrentDisplayMode(){
  return vc.getDisplayMode();
 }
 
 //check if two modes match each other
 public boolean displayModesMatch(DisplayMode m1,DisplayMode m2){
  if(m1.getWidth() != m2.getWidth() || m1.getHeight() != m2.getHeight())
    return false;
  
  if(m1.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI  && m2.getBitDepth() != DisplayMode.BIT_DEPTH_MULTI && m1.getBitDepth() != m2.getBitDepth())
   return false;
  
  if(m1.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN && m2.getRefreshRate() != DisplayMode.REFRESH_RATE_UNKNOWN && m1.getRefreshRate() != m2.getRefreshRate())
   return false;
  return true;
 }
 
 //make frame full screen
 public void setFullScreen(DisplayMode dm){
  JFrame f = new JFrame();
  f.setUndecorated(true);
  f.setIgnoreRepaint(true);
  f.setResizable(false);
  vc.setFullScreenWindow(f);
  
  if(dm != null && vc.isDisplayChangeSupported()){
   try{
    vc.setDisplayMode(dm);
   }catch(Exception ex){} 
  }
  f.createBufferStrategy(2);
 }
 //we will set graphics object equal to this
 public Graphics2D getGraphics(){
  
  Window w = vc.getFullScreenWindow();
  if(w != null){
   BufferStrategy s = w.getBufferStrategy();
   return (Graphics2D)s.getDrawGraphics();
  }else{
   return null;
  }
  
 }
 //update display
 public void update(){
  Window w =vc.getFullScreenWindow();
  if(w != null){
   BufferStrategy s = w.getBufferStrategy();
   if(!s.contentsLost()){
    s.show();
   }
  }
 }
 //return full screen window
 public Window getFullScreenWindow(){
  return vc.getFullScreenWindow();
 }
 //get witdh of window
 public int getWidth(){
  Window w = vc.getFullScreenWindow();
  if(w != null)
   return w.getWidth();
  else 
   return 0;
 }
 
 
 //get height of window
 public int getHeight(){
   Window w = vc.getFullScreenWindow();
   if(w != null)
    return w.getHeight();
   else 
    return 0;
 }
 // get out of fullscreen
 public void restoreScreen(){
  Window w = vc.getFullScreenWindow();
  if(w != null)
   w.dispose();
  vc.setFullScreenWindow(null);
 }
 
 //create image compatible with monitor
 public BufferedImage createCompatibleImage(int w,int h,int t){
  Window win =vc.getFullScreenWindow();
  if(win != null){
   GraphicsConfiguration gc = win.getGraphicsConfiguration();
   return gc.createCompatibleImage(w,h,t);
  }
  return null;
 }
 
}

Snake Game in Java


public class variables {
 
 //directions/yönler
 protected static final int kuzey = 1;
 protected static final int guney = 2;
 protected static final int bati = 3;
 protected static final int dogu = 4;
 
 //direction
 protected int yon = kuzey;
 
 //next direction
 protected int sonrakiyon = kuzey;
 
 protected long movedelay = 100; //millisecond to go or (X/V) Road/Velocity //ilerleme hızı
 protected long lastmove = 0;//time for next step
 
 //game status
 protected boolean becontinue = true;  // game is continuing //oyun devam ediyor
 protected boolean pause = false; //game is paused //oyun durduruldu
 protected boolean lost = false;//kaybettin
 protected boolean continued= false;
 //eat seed
 protected static boolean growup = false;
 protected String mess = "Score = ";
 protected String mess2 = "Press ESC to Exit ";
 protected String mess3 = "Number of dead = ";
 protected String mess4 = "Pause";
 protected String mess5 = "You LOSE";
 protected String mess6 = "Try Again-Press Enter or Exit";
 protected static int score = 0;
 protected static int dead = 0;
 protected static int index ;
 
 
}

Snake Game in Java

engerekcore.java is need to run game


import java.awt.*;
//import javax.swing.*;

public abstract class engerekcore extends engerek{
 
 //ekran modları
 private static DisplayMode modes[] = {
  new DisplayMode(800,600,32,0),
  new DisplayMode(800,600,24,0),
  new DisplayMode(800,600,16,0),
  new DisplayMode(640,480,32,0),
  new DisplayMode(640,480,24,0),
  new DisplayMode(640,480,16,0),
 };
 private boolean running;
 protected screen s;
 
 //stop method
 public void stop(){
  running = false;
 }
 
 //call init and gameloop
 public void run(){
  try{
   init();
   start();
   gameLoop();
  }finally{
   s.restoreScreen();
  }
 }
 //set to full screen
 public void init(){
  s = new screen();
  DisplayMode dm = s.findFirstCompatibleMode(modes);
  s.setFullScreen(dm);
  
  Window w = s.getFullScreenWindow();
  w.setFont(new Font("Arial",Font.PLAIN,20));
  w.setBackground(Color.white);
  w.setForeground(Color.black);
  running = true;
 }
 //main gameLoop
 public void gameLoop(){
  long startTime = System.currentTimeMillis();
  long cumTime = startTime;
  
  while(running){
   Graphics2D g = s.getGraphics();
   long timePassed = System.currentTimeMillis() - cumTime;
   cumTime += timePassed;
   if(pause==false){
    if(lost!=false){
     try{
     draw2(g);
     g.dispose();
     
     if(continued){
     collision();
     s.update();
     continued = false;
     continue;
     }
     }catch(Exception ex){}
    }else
     update(timePassed);
     draw(g);
     g.dispose();
     s.update();
   }else{
    try{
     draw3(g);
     g.dispose();
     s.update();
     if(becontinue){
     continue;
     }
    }catch(Exception ex){}
   }
   
   try{
    Thread.sleep(20);
 
   }catch(Exception ex){}
   
  }
 }
 //update snake move
 public void update(long timePassed){
  lastmove += timePassed;
  if(lastmove>movedelay){
   snakeupdate();
   if(growup==true){
   seedupdate();
   growup = false;
   }
   lastmove = 0;
  }
 }
 //draw game screen
 public abstract void draw(Graphics2D g);
 //draw lost screen
 public abstract void draw2(Graphics2D g);
 //draw pause screen
 public abstract void draw3(Graphics2D g);
}


Wednesday, 11 April 2012

Snake Game in Java

keyinputs.class is to use keylistener and keybord inputs

import java.awt.event.*;
import java.awt.*;
public class keyinputs extends engerekcore implements KeyListener{
 public static void main(String[] args){
  new keyinputs().run();
 }
 
 
 public String tostring(int a){
  return mess+""+a;
 }
 public String tostring2(int a){
  return mess3+""+a;
 }
 public int getsonrakiyon(){
  return sonrakiyon;
 }
 public void init(){
  super.init();
  Window w = s.getFullScreenWindow();
  w.setFocusTraversalKeysEnabled(false);
  w.addKeyListener(this);
 }
 
 //keypressed
 public void keyPressed(KeyEvent e){
  int keyCode = e.getKeyCode();
  
  if(keyCode == KeyEvent.VK_ENTER){//to stop //oyunu durdurur
   pause = true;
   becontinue = false;
  }
  if(keyCode == KeyEvent.VK_SPACE){
   pause = false;
   becontinue = true;
  } 
  if(keyCode == KeyEvent.VK_BACK_SPACE)
   continued = true;
  if(keyCode == KeyEvent.VK_ESCAPE){//to exit //oyundan çıkar
   stop();
  }else{
   yon = sonrakiyon;
   if(keyCode == KeyEvent.VK_W)
    if(yon!=kuzey && yon!=guney)
    sonrakiyon = kuzey;
   if(keyCode == KeyEvent.VK_S)
    if(yon!=guney && yon!=kuzey)
    sonrakiyon = guney;
   if(keyCode == KeyEvent.VK_A)
    if(yon!=bati && yon!=dogu)
    sonrakiyon = bati;
   if(keyCode == KeyEvent.VK_D)
    if(yon!=dogu && yon!=bati)
    sonrakiyon = dogu;
   e.consume();
  }
 }
 
 //keyReleased
 public void keyReleased(KeyEvent e){
  e.consume();
 }
 
 //last method from interface
 public void keyTyped(KeyEvent e){
  e.consume();
 }
 //engerekcoredaki draw metoduyla eş zamanlı çalışır//run in the same time with draw method in engerekcore  
 public synchronized void draw(Graphics2D g){
  
  Window w = s.getFullScreenWindow();//tam ekrana geçiş
  g.setColor(w.getBackground());//arka ekran rengi
  g.fillRect(0, 0, s.getWidth(), s.getHeight());
  g.setColor(w.getForeground());//ön ekran rengi
  g.setFont(new Font("Matisse ITC",1,18));//yazı biçimi
  for(int i=0;i<coord.size();i++)//yılanın ekrana bastırılması //drawing snake
   g.drawImage(coord.get(i).gethead(),coord.get(i).getx(),coord.get(i).gety(),null);
  for(int j=0;j<=780;j+=20){
   g.drawImage(wall,j,0,null);
   g.drawImage(wall,j,560,null);
   }
  for(int k=0;k<=560;k+=20){
   g.drawImage(wall,0,k,null);
   g.drawImage(wall,780,k,null);
   }
  for(int m = 0;m<8;m++)//yemin ekrana bastırılması //drawing seed
  g.drawImage(food.get(m).gethead(),food.get(m).getx(),food.get(m).gety(),null);
  g.drawString(tostring(score),570 ,595);
  g.drawString(mess2,100,595);
  g.drawString(tostring2(dead), 300, 595);
 }
 public synchronized void draw2(Graphics2D g){
  Window w = s.getFullScreenWindow();
  g.setColor(w.getBackground());
  g.fillRect(0, 0, s.getWidth(), s.getHeight());
  g.setColor(w.getForeground());
  g.setFont(new Font("Matisse ITC",1,50));
  g.drawString(mess5, 300, 250);
  g.drawString(mess6, 100, 350);
 }
 public synchronized void draw3(Graphics2D g){
  Window w = s.getFullScreenWindow();
  g.setColor(w.getBackground());
  g.fillRect(0, 0, s.getWidth(), s.getHeight());
  g.setColor(w.getForeground());
  g.setFont(new Font("Matisse ITC",1,50));
  g.drawString(mess4, 300, 250);
 }
}

Sunday, 8 April 2012

Snake Game in Java

engerek.class is to creat snake and update position of snake

import java.util.ArrayList;
import javax.swing.*;
import java.awt.Image;
//import java.math.*;
public class engerek extends variables{

//inner class
 protected class ekans{
 private double x;
 private double y;
 private Image head;
 //default constructor
 public ekans(){
  this.head = kelle;
  this.x = 0.0;
  this.y = 0.0;
 }
 //constructor
 public ekans(Image i,double a,double b){
  this.head = i;
  this.x = a;
  this.y = b;
 }
 public Image gethead(){
  return head;
 }
 public int getx(){
  return (int)x;}
 public int gety(){
  return (int)y;}
 public void setxy(double x,double y){
  this.x = x;
  this.y = y;
 }
 }
 protected Image askelle = new ImageIcon("C:\\Users\\engerek\\images\\aw.png").getImage();//to load Snake head image
 protected Image kelle = new ImageIcon("C:\\Users\\engerek\\images\\ae.png").getImage();//to Load Snake image
 protected Image wall = new ImageIcon("C:\\Users\\engerek\\images\\ay.png").getImage(); //to Load WALL image
 protected Image yem = new ImageIcon("C:\\Users\\engerek\\images\\as.png").getImage();//to Load Seed image 
 ArrayList<ekans> coord = new ArrayList<ekans>();
 ArrayList<ekans> food = new ArrayList<ekans>();
 public void addtile(Image i,int coorx,int coory){
  coord.add(0,new ekans(i,coorx,coory));
 }
 
 public void start(){
  addtile(kelle,320,300);
  addtile(kelle,300,300);
  addtile(kelle,280,300);
  addtile(kelle,260,300);
  addtile(kelle,240,300);
  addtile(kelle,220,300);
  food.add(new ekans(yem,300,400));
  food.add(new ekans(askelle,500,500));
  food.add(new ekans(yem,440,440));
  food.add(new ekans(askelle,100,100));
 }
 public Image load(Image i){
  i = new ImageIcon("C:\\javapics\\deadly.png").getImage();
     return i;
 }
 public void seedupdate(){
  double xco,yco;
  boolean tamamdir = false;
  while(tamamdir==false){
  xco = Math.random()*20;
  yco = Math.random()*20;
  xco = 20 + Math.round(xco)*40;
  yco = 20 + Math.round(yco)*40;
  for(int i = 0;i<coord.size();i++)
   if(xco!=coord.get(i).x && yco != coord.get(i).y){
    if(xco<760 && yco<560 )
    if(yco>20 && xco>20){
     if(index%2==1){
      food.remove(index);
      food.add(index,new ekans(yem,xco,yco));
     }else{
      food.remove(index);
      food.add(index,new ekans(askelle,xco,yco));
     }
    tamamdir = true;
    }
   }
  }
 }
 public void snakeupdate(){
  ekans e = coord.get(0); //ekans object is pointed first element of arraylist
  ekans newmove = new ekans();
  yon = sonrakiyon;
  switch(yon){
  case kuzey :
   newmove.x = e.x;
   newmove.y = e.y - 20.0;
   break;
  case guney : 
   newmove.x = e.x;
   newmove.y = e.y + 20.0;
   break;
  case bati :
   newmove.x = e.x - 20.0;
   newmove.y = e.y;
   break;
  case dogu :
   newmove.x = e.x + 20.0;
   newmove.y = e.y;
   break;
  }
  
  //collision of snake with walls
  if(newmove.x<20){
   lost = true;
   return;
  }if(newmove.x>780){
   lost = true;
   return;
  }if(newmove.y<20){
   lost = true;
   return;
  }if(newmove.y>560){
   lost = true;
   return;
  }
  //collision of snake with itself
  for(int i=0;i<coord.size();i++){
   if(newmove.x == coord.get(i).x && newmove.y == coord.get(i).y){
    lost = true;
    break;
   }
  }
  //eating seed and growing up
  for(int i = 0;i<food.size();i++)
  if(newmove.x==food.get(i).getx() && newmove.y == food.get(i).gety()){
  growup = true;
  score += 5;
  index = i;
  break;
  }
  if(growup==true){
  coord.add(0,newmove);
  }else{
   coord.add(0,newmove);
   coord.remove(coord.size()-1);
  }
   
 }
 //if collision is occur then snake starts up again
 public void collision(){
  coord.removeAll(coord);
  start();
  score = 0;
  dead++;
  lost = false;
  sonrakiyon = kuzey;
 }
}

Saturday, 11 February 2012

Java-Adding an Image

images.java

If you want to debug this class, then you should use class that FullScreen.java
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.ImageIcon;
public class images extends JFrame{

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  DisplayMode dm = new DisplayMode(800,600,16,DisplayMode.REFRESH_RATE_UNKNOWN);
  images i = new images();
  i.run(dm);
 } 
  
 private FullScreen s; 
 private Image bg;
 private Image pic;
        private Image ani;
 private boolean loaded;
 //run method
 public void run(DisplayMode dm){
  setBackground(Color.WHITE);
  setForeground(Color.BLACK);
  setFont(new Font("Arial",Font.PLAIN,24));
  loaded = false;
  s = new  FullScreen();
  try{
   s.setFullScreen(dm, this);
   loadpics();
   try{
    
    Thread.sleep(3000);//milliseconds
    
   }catch(Exception ex){}
  }finally{
   s.restoreScreen();
  }
 }
 
 //load pictures
 public void loadpics(){
  bg = new ImageIcon("C:\\anywhere.jpg").getImage();
  pic = new ImageIcon("C:\\anywhere.png").getImage();
                ani = new ImageIcon("C:\\anywhere.gif").getImage();
  loaded = true;
  repaint();
 }
 
 public void paint(Graphics g){
  if(g instanceof Graphics2D){
   Graphics2D g2 = (Graphics2D)g;
   g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
  }
  if(loaded){
   g.drawImage(bg, 30, 30, null);
   g.drawImage(pic, 170, 180, null);
   g.drawImage(ani,100,100,null);
  }
  
 }
 
 
}

Friday, 10 February 2012

Java-Full Screen App

burkan.java


import java.awt.*;
import javax.swing.JFrame;
public class burkan extends JFrame{

 /**
  * @param args
  */
public static void main(String[] args) {
 // TODO Auto-generated method stub
 DisplayMode dm = new DisplayMode(800,600,16,DisplayMode.REFRESH_RATE_UNKNOWN);
 burkan b = new burkan();
 b.run(dm);
}

public void run(DisplayMode dm){
    setBackground(Color.WHITE);
    setForeground(Color.BLACK);
    setFont(new Font("Arial",Font.PLAIN,24));
  
    FullScreen s = new  FullScreen();
    try{
    s.setFullScreen(dm, this);
    try{
  
    Thread.sleep(3000);
   
    }catch(Exception ex){}
    }finally{
    s.restoreScreen();
    }
}
 
public void paint(Graphics g){
 if(g instanceof Graphics2D){
  Graphics2D g2 = (Graphics2D)g;
  g2.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
 }
  g.drawString("Hello World!!!", 200, 200);
 } 
}

FullScreen.java

import javax.swing.JFrame;
import java.awt.*;
public class FullScreen {
 private GraphicsDevice vc;
 
 public FullScreen(){
  
  GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
  vc = env.getDefaultScreenDevice();
  
 }
 
 public void setFullScreen(DisplayMode dm,JFrame window){
  
  window.setUndecorated(true);
  window.setResizable(false);
  vc.setFullScreenWindow(window);
  
  if(dm != null && vc.isDisplayChangeSupported()){
   
   try{
    vc.setDisplayMode(dm);
   }catch(Exception ex){}
   
  }
 }
 public Window getFullScreenWindow(){
 
  return vc.getFullScreenWindow();
 
 }
 
 public void restoreScreen(){
  Window w = vc.getFullScreenWindow();
  if(w != null){
   w.dispose();
  }
  vc.setFullScreenWindow(null);
 }
  
}

Saturday, 4 February 2012

Java - Thread

burkan.java

import javax.swing.*;
public class burkan {
 public static void main(String[] args){
   
  
 Thread t1 = new Thread(new threads(300,300,1500));
 Thread t2 = new Thread(new threads(250,250,3500));
 Thread t3 = new Thread(new threads(200,200,6500));
 Thread t4 = new Thread(new threads(100,100,8500));
 Thread t5 = new Thread(new threads(50,50,10500));
   
 t1.start();
 t2.start();
 t3.start();
 t4.start();
 t5.start();
 }
}



graphics.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class graphics extends JPanel{
 private int a,b;
 public graphics(int i, int j) {
   //constructor
   a=i;
   b=j;
 }

 public void paintComponent(Graphics g){
 super.paintComponents(g);
 this.setBackground(Color.WHITE);
   
 g.setColor(Color.blue);
 g.drawRect(100,100, a, b);
    
  }
    
  
   
  
}


threads.java

import java.util.*;
import java.awt.*;
import javax.swing.*;
 public class threads implements Runnable{
 private int x,y;
 public int time;
 public JFrame f = new JFrame("LOOP");
 
 public threads(int a,int b,int t){
  //constructor
  x=a;
  y=b;
  time = t;
  
 }
 
 
    public void run(){
     
     try{
      Thread.sleep(time);
   graphics p = new graphics(x,y);

   f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   f.setSize(800,600);
   f.setVisible(true);
   f.add(p);
     
     }catch(Exception e){}
     
    }
}