Saturday, August 18, 2012

How To Do A Better Google Search

Google has become the one and only search engine in today's world. It solves the problems of all level of users. However, many users still face problems regarding the search keyword. Google has introduced a solution for it for better search techniques. "Power Searching with Google." is an online course introduced by google which enables you to save your time.

Here's the course introduction video:

Saturday, August 11, 2012

AI Project:Checkers[html/javascript]|Source Code Download

<HTML>
<body>
<h1>CHECKERS</h1>
<h2>Project on AI</h2>
<p>

</p>

<script language="JavaScript1.1">

//Defining variables and object functions.
var red = -1; // player is black
var black = 1; // computer is red
var block_length = 45;
var piece_toggled = false;
var my_turn = true;0
var double_jump = false;
var comp_move = false;
var game_is_over = false;
var safe_from = safe_to = null;

var togglers = 0;

function Coord(x,y) {
this.x = x;
this.y = y;
}
function coord(x,y) {
c = new Coord(x,y);
return c;
}


function integ(num) {
if (num != null)
return Math.round(num);
else
return null;
}
function abs(num) {
return Math.abs(num);
}
function sign(num) {
if (num < 0) return -1;
else return 1;
}

//Load up the Board array.
function Board() {
board = new Array();
for (var i=0;i<8; i++) {
board[i] = new Array();
for (var j=0;j<8;j++)
board[i][j] = Board.arguments[8*j+i];
}
board[-2] = new Array(); // prevents errors
board[-1] = new Array(); // prevents errors
board[8] = new Array(); // prevents errors
board[9] = new Array(); // prevents errors
}
var board;
Board(1,0,1,0,1,0,1,0,
0,1,0,1,0,1,0,1,
1,0,1,0,1,0,1,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,-1,0,-1,0,-1,0,-1,
-1,0,-1,0,-1,0,-1,0,
0,-1,0,-1,0,-1,0,-1);

function moveable_space(i,j) {
return (((i%2)+j)%2 == 0); //Returns true if space is movable else false, adding array index odd=nonmovable.
}

//Load or Create the main table.
document.write("<table border=1 cellspacing=0 cellpadding=0 width="+(block_length*8+8) +" ");
for(var j=0;j<8;j++) {
document.write("<tr><td><img src='whit.gif' width=4 height="+block_length+">");
for(var i=0;i<8;i++) {
if (moveable_space(i,j))
document.write("<a href='javascript:clicked("+i+","+j+")'>"); //Assign Clicked() fucntion to every white array

document.write("<img src='");
if (board[i][j]==1) document.write("you1.gif");
else if (board[i][j]==-1) document.write("me1.gif");
else if (moveable_space(i,j)) document.write("whit.gif");
else document.write("black.gif");
document.write("' width="+block_length+" height="+block_length
+" name='space"+i+""+j+"' border=0>");
if (moveable_space(i,j)) document.write("</a>");
}
document.write("<img src='black.gif' width=4 height="+block_length+"></td></tr>");
}
document.write("</table><br>"
+"<form name='disp'><input "
+"type=button value=\"Play Again\" onClick=\"location.href+=''\"></form>");

function clicked(i,j) {
if (my_turn) {
if (integ(board[i][j])==1) toggle(i,j);
else if (piece_toggled) move(selected,coord(i,j));

}
}

//Change the colour of a block as selected ,green
function toggle(x,y) {
if (my_turn) {
if (piece_toggled)
draw(selected.x,selected.y,"you1"+((board[selected.x][selected.y]==1.1)?"k":"")+".gif");
if (piece_toggled && (selected.x == x) && (selected.y == y)) {
piece_toggled = false;
if (double_jump) { my_turn = double_jump = false; computer(); }
} else {

piece_toggled = true;
draw(x,y,"you2"+((board[x][y]==1.1)?"k":"")+".gif");
}
selected = coord(x,y);
}
else {
if ((piece_toggled) && (integ(board[selected_c.x][selected_c.y])==-1))
draw(selected_c.x,selected_c.y,"me1"+((board[selected_c.x][selected_c.y]==-1.1)?"k":"")+".gif");
if (piece_toggled && (selected_c.x == x) && (selected_c.y == y)) {
piece_toggled = false;
} else {
piece_toggled = true;
draw(x,y,"me2"+((board[x][y]==-1.1)?"k":"")+".gif");
}
selected_c = coord(x,y);
}
}

function draw(x,y,name) {
document.images["space"+x+""+y].src = name;
}


function legal_move(from,to) {
if ((to.x < 0) || (to.y < 0) || (to.x > 7) || (to.y > 7)) return false;
piece = board[from.x][from.y];
distance = coord(to.x-from.x,to.y-from.y);
if ((distance.x == 0) || (distance.y == 0)) {
alert("You may only move diagonally.");
return false;
}
if (abs(distance.x) != abs(distance.y)) {
alert("Invalid move.");
return false;
}
if (abs(distance.x) > 2) {
alert("Invalid move.");
return false;
}
if ((abs(distance.x) == 1) && double_jump) {
return false;
}
if ((board[to.x][to.y] != 0) || (piece == 0)) {
return false;
}
if ((abs(distance.x) == 2)
&& (integ(piece) != -integ(board[from.x+sign(distance.x)][from.y+sign(distance.y)]))) {
return false;
}
if ((integ(piece) == piece) && (sign(piece) != sign(distance.y))) {
return false;
}

return true;
}
function move(from,to) {
my_turn = true;
if (legal_move(from,to)) {
piece = board[from.x][from.y];
distance = coord(to.x-from.x,to.y-from.y);
if ((abs(distance.x) == 1) && (board[to.x][to.y] == 0)) {
swap(from,to);
} else if ((abs(distance.x) == 2)
&& (integ(piece) != integ(board[from.x+sign(distance.x)][from.y+sign(distance.y)]))) {
double_jump = false;
swap(from,to);
remove(from.x+sign(distance.x),from.y+sign(distance.y));
if ((legal_move(to,coord(to.x+2,to.y+2)))
|| (legal_move(to,coord(to.x+2,to.y-2)))
|| (legal_move(to,coord(to.x-2,to.y-2)))
|| (legal_move(to,coord(to.x-2,to.y+2)))) {
double_jump = true;
alert("You may complete the double jump or click on your piece to stay still.");
}
}
if ((board[to.x][to.y] == 1) && (to.y == 7)) king_me(to.x,to.y);
selected = to;
if (game_over() && !double_jump) {
setTimeout("toggle("+to.x+","+to.y+");my_turn = double_jump = false;computer(); ",1000);

}
}
return true;
}
function king_me(x,y) {
if (board[x][y] == 1) {
board[x][y] = 1.1; // king you
draw(x,y,"you2k.gif");
} else if (board[x][y] == -1) {
board[x][y] = -1.1; // king me
draw(x,y,"me2k.gif");
}
}

function swap(from,to) {
if (my_turn || comp_move) {
dummy_src = document.images["space"+to.x+""+to.y].src;
document.images["space"+to.x+""+to.y].src = document.images["space"+from.x+""+from.y].src;
document.images["space"+from.x+""+from.y].src = dummy_src;
}
dummy_num = board[from.x][from.y];
board[from.x][from.y] = board[to.x][to.y];
board[to.x][to.y] = dummy_num;
}
function remove(x,y) {
if (my_turn || comp_move)
draw(x,y,"whit.gif");
board[x][y] = 0;
}

function move_comp(from,to) {
toggle(from.x,from.y);
comp_move = true;
swap(from,to);
if (abs(from.x-to.x) == 2) {
remove(from.x+sign(to.x-from.x),from.y+sign(to.y-from.y));
}
if ((board[to.x][to.y] == -1) && (to.y == 0)) king_me(to.x,to.y);
setTimeout("selected_c = coord("+to.x+","+to.y+");piece_toggled = true;",900);
setTimeout("bak=my_turn;my_turn=false;toggle("+to.x+","+to.y+");my_turn=bak;",1000);
if (game_over()) {
setTimeout("comp_move = false;my_turn = true;togglers=0;",600);
}
return true;
}
function game_over() { // make sure game is not over (return false if game is over)
comp = you = false;
for(var i=0;i<8;i++) {
for(var j=0;j<8;j++) {
if(integ(board[i][j]) == -1) comp = true;
if(integ(board[i][j]) == 1) you = true;
}
}
if (!comp) alert("You Win!!");
if (!you) alert("You Lose!!");
game_is_over = (!comp || !you)
return (!game_is_over);
}


function computer() {
// step one - prevent any jumps
for(var j=0;j<8;j++) {
for(var i=0;i<8;i++) {
if (integ(board[i][j]) == 1) {
if ((legal_move(coord(i,j),coord(i+2,j+2))) && (prevent(coord(i+2,j+2),coord(i+1,j+1)))) {
return true;
} if ((legal_move(coord(i,j),coord(i-2,j+2))) && (prevent(coord(i-2,j+2),coord(i-1,j+1)))) {
return true;
}
} if (board[i][j] == 1.1) {
if ((legal_move(coord(i,j),coord(i-2,j-2))) && (prevent(coord(i-2,j-2),coord(i-1,j-1)))) {
return true;
} if ((legal_move(coord(i,j),coord(i+2,j-2))) && (prevent(coord(i+2,j-2),coord(i+1,j-1)))) {
return true;
}
}
}
}
// step two - if step one not taken, look for jumps
for(var j=7;j>=0;j--) {
for(var i=0;i<8;i++) {
if (jump(i,j))
return true;
}
}
safe_from = null;
// step three - if step two not taken, look for safe single space moves
for(var j=0;j<8;j++) {
for(var i=0;i<8;i++) {
if (single(i,j))
return true;
}
}
// if no safe moves, just take whatever you can get
if (safe_from != null) {
move_comp(safe_from,safe_to);
} else {
alert("You win!!");
game_is_over = true;
}
safe_from = safe_to = null;
return false;
}
function jump(i,j) {

if (board[i][j] == -1.1) {
if (legal_move(coord(i,j),coord(i+2,j+2))) {
move_comp(coord(i,j),coord(i+2,j+2));
setTimeout("jump("+(i+2)+","+(j+2)+");",500);
return true;
} if (legal_move(coord(i,j),coord(i-2,j+2))) {
move_comp(coord(i,j),coord(i-2,j+2));
setTimeout("jump("+(i-2)+","+(j+2)+");",500);
return true;
}
} if (integ(board[i][j]) == -1) {
if (legal_move(coord(i,j),coord(i-2,j-2))) {
move_comp(coord(i,j),coord(i-2,j-2));
setTimeout("jump("+(i-2)+","+(j-2)+");",500);
return true;
} if (legal_move(coord(i,j),coord(i+2,j-2))) {
move_comp(coord(i,j),coord(i+2,j-2));
setTimeout("jump("+(i+2)+","+(j-2)+");",500);
return true;
}
}
return false;
}
function single(i,j) {

if (board[i][j] == -1.1) {
if (legal_move(coord(i,j),coord(i+1,j+1))) {
safe_from = coord(i,j);
safe_to = coord(i+1,j+1);
if (wise(coord(i,j),coord(i+1,j+1))) {
move_comp(coord(i,j),coord(i+1,j+1));
return true;
}
} if (legal_move(coord(i,j),coord(i-1,j+1))) {
safe_from = coord(i,j);
safe_to = coord(i-1,j+1);
if (wise(coord(i,j),coord(i-1,j+1))) {
move_comp(coord(i,j),coord(i-1,j+1));
return true;
}
}
} if (integ(board[i][j]) == -1) {
if (legal_move(coord(i,j),coord(i+1,j-1))) {
safe_from = coord(i,j);
safe_to = coord(i+1,j-1);
if (wise(coord(i,j),coord(i+1,j-1))) {
move_comp(coord(i,j),coord(i+1,j-1));
return true;
}
} if (legal_move(coord(i,j),coord(i-1,j-1))) {
safe_from = coord(i,j);
safe_to = coord(i-1,j-1);
if (wise(coord(i,j),coord(i-1,j-1))) {
move_comp(coord(i,j),coord(i-1,j-1));
return true;
}
}
}
return false;
}
function possibilities(x,y) {
if (!jump(x,y))
if (!single(x,y))
return true;
else
return false;
else
return false;
}
function prevent(end,s) {

i = end.x;
j = end.y;
if (!possibilities(s.x,s.y))
return true;
else if ((integ(board[i-1][j+1])==-1) && (legal_move(coord(i-1,j+1),coord(i,j)))) {
return move_comp(coord(i-1,j+1),coord(i,j));
} else if ((integ(board[i+1][j+1])==-1) && (legal_move(coord(i+1,j+1),coord(i,j)))) {
return move_comp(coord(i+1,j+1),coord(i,j));
} else if ((board[i-1][j-1]==-1.1) && (legal_move(coord(i-1,j-1),coord(i,j)))) {
return move_comp(coord(i-1,j-1),coord(i,j));
} else if ((board[i+1][j-1]==-1.1) && (legal_move(coord(i+1,j-1),coord(i,j)))) {
return move_comp(coord(i+1,j-1),coord(i,j));
} else {
return false;
}

}
function wise(from,to) {
i = to.x;
j = to.y;
n = (j>0);
s = (j<7);
e = (i<7);
w = (i>0);
if (n&&e) ne = board[i+1][j-1]; else ne = null;
if (n&&w) nw = board[i-1][j-1]; else nw = null;
if (s&&e) se = board[i+1][j+1]; else se = null;
if (s&&w) sw = board[i-1][j+1]; else sw = null;
eval(((j-from.y != 1)?"s":"n")+((i-from.x != 1)?"e":"w")+"=0;");
if ((sw==0) && (integ(ne)==1)) return false;
if ((se==0) && (integ(nw)==1)) return false;
if ((nw==0) && (se==1.1)) return false;
if ((ne==0) && (sw==1.1)) return false;
return true;
}

alert("Start the Game, select your piece to move.");
my_turn = true;

// -->
</script>



</body>
</html>

Monday, August 6, 2012

"Baghchal"[Tiger and Goat] Project Source code Download


             Baghchal is a traditional board game of Nepal. It is quite simple to setup and play. The board is drawn by a combination of horizontal, vertical, and slanting lines. Each intersecting point can hold a piece, a tiger or a goat. The pieces can only move one step along the lines, except for the case in which a tiger can eat a goat.
The game is played between two players, one represents tiger, four in number, and the other represents goats, twenty in number to start with. The tiger can eat goats by jumping above it, while the goats tries to limit the movement of a tiger.
This is a javascript version of the game, which can be played on the web browser

Game Explanation.


At the start of the game all four tigers are placed on the four corners of the grid, facing the center. All goats start off the board.
The pieces must be put at the intersections of the board lines and moves follow these lines.
The player controlling the goats moves first by placing a goat onto a free intersection on the board. Then it is the tigers' turn. One tiger is then moved to an adjacent position along the lines that indicate the valid moves. Moves are alternate between players.
Tigers capture goats by jumping over them to an adjacent free position. Goats cannot move until all 20 have been put on the board.
The tigers must move according to these rules:
1.    They can start capturing goats any moment after the match has started.
2.    They can capture only one goat at a time.
3.    They can jump over a goat in any direction, but it must be to an adjacent intersection following any of the lines drawn on the board.
4.    A tiger cannot jump over another tiger.
The goats must move according to these rules:
1.    They must leave the board when captured.
2.    They can not jump over the tigers or other goats.
3.    They can only move after all 20 have been put on the board.
The tigers win once they have captured five goats. Goats try to avoid being captured (jumped over) and they win by blocking the tigers' moves till they are unable to move.

Tuesday, July 3, 2012

No Code Completion Suggestion in Netbeans

I was working on a tutorial on netbeans which required to add a DB Report on the jsp page but the code completion tool[ctrl+space] shows no suggestions. If you are having the same problem of code completion in netbeans then here is the solution for it. 

Steps:
1. Open the jsp page, you are working in the editor window.
2. Choose  Window -> Palette
3. In the Palette, Choose the expand the Database option.
4. Click DB Report from the database option and without Releasing your mouse, drag the feature to the position in your file where you want it.
5.Your Insert DB Report dialog appears


You can follow this steps for other components also.

Saturday, May 26, 2012

Installing Apache Ant In Windows

While I was working on my project, I had to use Apache ant to build sample programs. The processes described in apache ant documentation  http://ant.apache.org/manual/install.html is really a tedious task for a beginner like me when it comes to setting up environment variables and path.

Here is a real nice solution for problems like:
 'ant’ is not recognized as an internal or external command, operable program or batch file.

You can simply download the installation file called WinAnt which does all the job for you.
Click Here To Download WinAnt

Tuesday, February 21, 2012

Drawing Simple Shapes in C# in Windows Form Application

This is a very basic tutorial regarding drawing simple shapes in C# in visual studio.
First goto File->New->Project
Select Visual C# and Windows Form Application and give a name to your project.

This must be your screen.
Now on the rightmost bar, select the toolbar and click on the picturebox and click back to the form window.You will get the picture box and adjust the size of box by dragging.
Now go back to toolbar and get the button similar to picture box.
Double click the button and put the sample code in it.

private void button1_Click(object sender, EventArgs e)
        {
            g = PictureBox1.CreateGraphics();
            g.DrawLine(pen1, 250, 50, 400, 200);
        }

Repeat the process and your code will be like:
//form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows;



namespace draw_shapes
{
    public partial class Form1 : Form, IDisposable
    {
        private Bitmap m_Canvas;
        public Form1()
        {
            InitializeComponent();
        }

        private System.Drawing.Graphics g;
        private System.Drawing.Pen pen1 = new System.Drawing.Pen(Color.Black, 2F);
       



        private void button1_Click(object sender, EventArgs e)
        {
            g = PictureBox1.CreateGraphics();
            g.DrawLine(pen1, 250, 50, 400, 200);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            g = PictureBox1.CreateGraphics();
            g.DrawEllipse(pen1, 50, 50, 100, 150);
        }

        private void button3_Click(object sender, EventArgs e)
        {
            g = PictureBox1.CreateGraphics();
            g.DrawRectangle(pen1, 30, 30, 50, 60);
        }

        private void button4_Click(object sender, EventArgs e)
        {
            g = PictureBox1.CreateGraphics();
            g.DrawArc(pen1, 150, 100, 150, 200, 150, 160);
        }

        private void button5_Click(object sender, EventArgs e)
        {
            g = PictureBox1.CreateGraphics();
            g.DrawPie(pen1, 50, 50, 150, 150, 0, 170);
        }

        private void button6_Click(object sender, EventArgs e)
        {
            System.Drawing.Point[] p = new System.Drawing.Point[6];
            p[0].X = 0;
            p[0].Y = 0;
            p[1].X = 53;
            p[1].Y = 111;
            p[2].X = 114;
            p[2].Y = 86;
            p[3].X = 34;
            p[3].Y = 34;
            p[4].X = 165;
            p[4].Y = 7;
            g = PictureBox1.CreateGraphics();
            g.DrawPolygon(pen1, p);
        }

        private void button7_Click(object sender, EventArgs e)
        {
            g = PictureBox1.CreateGraphics();
            g.DrawBezier(pen1, 100, 200, 240, 250, 100, 200, 150, 30);
        }

       

        private void button9_Click(object sender, EventArgs e)
        {
            m_Canvas = new Bitmap(700, 700); // Doesn't have to be initialized here

            for (int x = 100; x < 200; x++)
            {
                for (int y = 100; y < 200; y++)
                {
                    m_Canvas.SetPixel(x, y, Color.Blue);
                }
            }
            SetCanvasAsImage();
        }

        public void SetCanvasAsImage()
        {
            PictureBox1.Image = m_Canvas;
        }
        private void button8_Click(object sender, EventArgs e)
        {
            PictureBox1.Refresh();
        }

        private void button10_Click(object sender, EventArgs e)
        {

        }

     
        }
    }