In Windows 7 Working Java Program/Project/source code for Snakes and Ladders Game with Rules
Are You Looking Source Code or a Working Java Program for Snakes and Ladders Game.
Then Here is the Java Project for Snakes and Ladders Game.
Scroll down for code/Java Program. Copy the Code and Paste it and Just simply run the code in java Platform.
Rules for Snakes and Ladders Game
Snakes
and Ladders is a board game usually played by children. The Hasbro
version, called Chutes and Ladders, shows children making various
decisions, then the consequences of that action. Good actions allow the
player to climb a ladder and get closer to the finish, while bad
decisions make the player slide down a chute, which takes him farther
from the finish
Players
Snakes and Ladders is played by two to four players, each with her own token to move around the board.
Players
roll a die or spin a spinner, then move the designated number of spaces,
between one and six. Once they land on a space, they have to perform
any action designated by the space.
-
If the
space a player lands on is at the bottom of a ladder, he should climb
the ladder, which brings him to a space higher on the board.
If the
space a player lands on is at the top of a snake/chute, she must slide
down to the bottom of it, landing on a space closer to the beginning.
The winner
is the player who gets to the last space on the board first, whether by
landing on it from a roll, or by reaching it with a ladder.
Working Java Program/Project/source code for Snakes and Ladders Game.
#include
#include
#include
#include
#include
#include
#include
int k=1, i, user=0, dice=0, x1=50, y1=410,
x2=70, y2=410, dir1=0,
dir2=0,
ch;
int cnt1=1, cnt2=1;
void *obj1, *obj2, *o1, *o2, *dot, *back,
*turn, *ready;
unsigned int size;
void ladder1()
{
int
m,n;
for(m=0;m<=250;m+=250)
for(n=0;n<=m;n+=250)
{
setcolor(DARKGRAY);
line(53+m,57+n,55+m,55+n);
line(53+m,57+n,133+m,137+n);
line(55+m,55+n,135+m,135+n);
line(133+m,137+n,135+m,135+n);
setfillstyle(SOLID_FILL,
YELLOW);
floodfill(55+m,58+n,DARKGRAY);
line(68+m,42+n,70+m,40+n);
line(68+m,42+n,148+m,122+n);
line(70+m,40+n,150+m,120+n);
line(148+m,122+n,150+m,120+n);
floodfill(70+m,43+n,DARKGRAY);
line(65+m,65+n,78+m,52+n);
line(68+m,68+n,81+m,55+n);
floodfill(79+m,54+n,DARKGRAY);
line(75+m,75+n,88+m,62+n);
line(78+m,78+n,91+m,65+n);
floodfill(89+m,64+n,DARKGRAY);
line(85+m,85+n,98+m,72+n);
line(88+m,88+n,101+m,75+n);
floodfill(99+m,74+n,DARKGRAY);
line(95+m,95+n,108+m,82+n);
line(98+m,98+n,111+m,85+n);
floodfill(109+m,84+n,DARKGRAY);
line(105+m,105+n,118+m,92+n);
line(108+m,108+n,121+m,95+n);
floodfill(119+m,94+n,DARKGRAY);
line(115+m,115+n,128+m,102+n);
line(118+m,118+n,131+m,105+n);
floodfill(129+m,104+n,DARKGRAY);
line(125+m,125+n,138+m,112+n);
line(128+m,128+n,141+m,115+n);
floodfill(139+m,114+n,DARKGRAY);
}
}
void ladder2()
{
int
p,q=0;
for(p=0;p<=180;p+=155)
{
line(100+p,330-q,140+p,290-q);
line(100+p,330-q,102+p,332-q);
line(102+p,332-q,142+p,292-q);
line(142+p,292-q,140+p,290-q);
floodfill(141+p,292-q,8);
line(115+p,345-q,155+p,305-q);
line(115+p,345-q,117+p,347-q);
line(117+p,347-q,157+p,307-q);
line(157+p,307-q,155+p,305-q);
floodfill(155+p,307-q,8);
line(112+p,322-q,125+p,335-q);
line(114+p,320-q,127+p,333-q);
floodfill(125+p,334-q,8);
line(122+p,312-q,135+p,325-q);
line(124+p,310-q,137+p,323-q);
floodfill(135+p,324-q,8);
line(132+p,302-q,145+p,315-q);
line(134+p,300-q,147+p,313-q);
floodfill(145+p,314-q,8);
q+=95;
}
}
void snake1()
{
int
x,y=0,h=2;
for(x=0;x<=200;x+=125)
{
arc(120+x,110+y,10,85,60);
arc(258+x,85+y,190,240,80);
arc(112+x,118+y,10,80,60);
arc(250+x,93+y,190,290,80);
arc(275+x,100+y,250,270,70);
line(250+x,170+y,250+x,165+y);
line(250+x,165+y,230+x,160+y);
line(230+x,160+y,218+x,155+y);
line(130+x,50+y,115+x,47+y);
line(121+x,59+y,106+x,52+y);
line(106+x,52+y,114+x,48+y);
circle(114+x,52+y,1);
setfillstyle(1,h);
floodfill(116+x,52+y,8);
y+=230; h+=8;
}
}
void snake2()
{
arc(130,220,150,180,40);
arc(130,220,180,253,40);
arc(105,328,273,80,70);
arc(143,220,150,180,40);
arc(143,215,180,230,40);
arc(112,328,265,50,75);
arc(80,354,45,72,115);
line(102,400,104,402);
line(102,400,107,399);
line(95,200,110,185);
line(110,185,109,200);
line(110,185,111,182);
circle(104,198,1);
setfillstyle(1,12);
floodfill(103,199,8);
}
void snake3()
{
arc(255,118,320,0,170);
arc(265,118,305,0,170);
line(384,229,361,260);
line(425,120,429,105);
line(428,105,435,120);
line(428,105,429,100);
circle(430,115,1);
setfillstyle(1,6);
floodfill(430,117,8);
}
void numbering()
{
outtextxy(50,393,"1 2
4 5 6
7 8 10");
outtextxy(50,353,"20 19
18 16 15 1 13
11");
outtextxy(50,313,"21 22 25 26 29 30");
outtextxy(50,273,"40 39
38 37 36
35 34 33
32 31");
outtextxy(50,233,"41 43
44 45 47
48 50");
outtextxy(50,193,"60 58
57 56 55
53 52 ");
outtextxy(50,153,"61 62
63 64 66
67 68 69
");
outtextxy(50,113,"80 79 76 75
74 73 71");
outtextxy(50,73,
"81 83 84
85 86 87
89 90");
outtextxy(50,33,
"100 99 98
97 96 95
94 93 92
91");
setcolor(15);
// outtextxy(480,40,"Lakshmi
Narayana's");
outtextxy(465,50,"The
Classic Game of");
settextstyle(GOTHIC_FONT,
HORIZ_DIR, 2);
setcolor(LIGHTRED);
outtextxy(470,60,"Snake
& Ladder");
setcolor(WHITE);
settextstyle(DEFAULT_FONT,
HORIZ_DIR, 1);
}
void status()
{
setcolor(YELLOW);
outtextxy(480,
95, "Dice output...");
setlinestyle(SOLID_LINE,
1, 3);
rectangle(480,
110, 600, 230);
outtextxy(480,
260, "Turn...");
rectangle(480,
275, 600, 300);
}
void welcome()
{
float
octave[]={130.81, 146.83, 164.81, 174.61, 196, 220, 246.94}, n;
for
(int i=0; i<50; i++)
{
n=random(6); sound(octave[n]*4); delay(150); nosound(); }
}
void dispdice()
{
switch
(dice)
{
case
1: putimage(535, 165, dot, COPY_PUT); break;
case
2: putimage(515, 145, dot, COPY_PUT);
putimage(555,
185, dot, COPY_PUT); break;
case
3: putimage(515, 145, dot, COPY_PUT);
putimage(535,
165, dot, COPY_PUT);
putimage(555,
185, dot, COPY_PUT); break;
case
4: putimage(515, 145, dot, COPY_PUT);
putimage(555,
145, dot, COPY_PUT);
putimage(515,
185, dot, COPY_PUT);
putimage(555,
185, dot, COPY_PUT); break;
case
5: putimage(515, 145, dot, COPY_PUT);
putimage(555,
145, dot, COPY_PUT);
putimage(535,
165, dot, COPY_PUT);
putimage(515,
185, dot, COPY_PUT);
putimage(555,
185, dot, COPY_PUT); break;
case
6: putimage(515, 145, dot, COPY_PUT);
putimage(515,
165, dot, COPY_PUT);
putimage(515,
185, dot, COPY_PUT);
putimage(555,
145, dot, COPY_PUT);
putimage(555,
165, dot, COPY_PUT);
putimage(555,
185, dot, COPY_PUT); break;
}
}
void getdice()
{ dice=random(6); dice++; dispdice(); }
void play()
{
getimage(50,
410, 60, 420, o1);
getimage(70,
410, 80, 420, o2);
putimage(50,
410, obj1, COPY_PUT);
putimage(70,
410, obj2, COPY_PUT);
while
(1)
{
if
(user==0)
{
putimage(487,
282, turn, COPY_PUT);
setcolor(GREEN);
outtextxy(480,
285, " Player 1");
again: ch=getch();
if
(ch==13) getdice();
else
if (ch==27) exit(1);
else
goto again;
setcolor(YELLOW);
if
(cnt1==96 && dice>=4) {
delay(1000); goto invalid1; user=1; }
else
if (cnt1==97 && dice>=3) {
delay(1000); goto invalid1; user=1;
}
else
if (cnt1==98 && dice>=2) {
delay(1000); goto invalid1; user=1;
}
else
if (cnt1==99 && dice>=1) {
delay(1000); goto invalid1; user=1;
}
for
(i=1; i<=dice; i++, cnt1++)
{
putimage(x1,
y1, o1, COPY_PUT);
if
(dir1==0)
{
// size=imagesize(x1,
y1, x1+10, y1+10);
// o1=malloc(size);
getimage(x1,
y1, x1+10, y1+10, o1);
x1+=40;
if
(x1>410) x1-=40, y1-=40, dir1=1;
// size=imagesize(x1,
y1, x1+10, y1+10);
// o1=malloc(size);
getimage(x1,
y1, x1+10, y1+10, o1);
putimage(x1,
y1, obj1, COPY_PUT);
delay(1000); goto ch1;
}
else
{
size=imagesize(x1,
y1, x1+10, y1+10);
// o1=malloc(size);
getimage(x1,
y1, x1+10, y1+10, o1);
x1-=40;
if
(x1<50) x1+=40, y1-=40, dir1=0;
// size=imagesize(x1,
y1, x1+10, y1+10);
// o1=malloc(size);
getimage(x1,
y1, x1+10, y1+10, o1);
putimage(x1,
y1, obj1, COPY_PUT);
delay(1000); goto ch1;
}
ch1: if
(cnt1==99) goto over;
}
if
(cnt1==12 || cnt1==72 || cnt1==78)
{
putimage(x1,
y1, o1, COPY_PUT);
x1-=80; y1-=80;
// size=imagesize(x1,
y1, x1+10, y1+10);
// o1=malloc(size);
getimage(x1,
y1, x1+10, y1+10, o1);
putimage(x1,
y1, obj1, COPY_PUT);
if
(cnt1==12) cnt1=34;
else
if (cnt1==72) cnt1=94;
else
if (cnt1==78) { cnt1=100; goto over;
}
}
else
if (cnt1==22 || cnt1==46)
{
putimage(x1,
y1, o1, COPY_PUT);
x1+=40; y1-=40;
// size=imagesize(x1,
y1, x1+10, y1+10);
// o1=malloc(size);
getimage(x1,
y1, x1+10, y1+10, o1);
putimage(x1,
y1, obj1, COPY_PUT);
if
(cnt1==22) cnt1=38;
else
if (cnt1==46) cnt1=54;
dir1=1;
}
else
if (cnt1==36 || cnt1==99)
{
putimage(x1,
y1, o1, COPY_PUT);
x1+=160; y1+=120;
// size=imagesize(x1,
y1, x1+10, y1+10);
// o1=malloc(size);
getimage(x1,
y1, x1+10, y1+10, o1);
putimage(x1,
y1, obj1, COPY_PUT);
if
(cnt1==36) cnt1=9;
else
if (cnt1==99) cnt1=66;
dir1=0;
}
else
if (cnt1==62)
{
putimage(x1,
y1, o1, COPY_PUT);
y1+=240;
// size=imagesize(x1,
y1, x1+10, y1+10);
// o1=malloc(size);
getimage(x1,
y1, x1+10, y1+10, o1);
putimage(x1,
y1, obj1, COPY_PUT);
cnt1=2;
}
else
if (cnt1==90)
{
putimage(x1,
y1, o1, COPY_PUT);
x1-=80; y1+=160;
// size=imagesize(x1,
y1, x1+10, y1+10);
// o1=malloc(size);
getimage(x1,
y1, x1+10, y1+10, o1);
putimage(x1,
y1, obj1, COPY_PUT);
cnt1=48;
}
if
(dice==5 || dice==6) user=0; else user=1;
invalid1: putimage(500,
130, back, COPY_PUT);
}
else
{
putimage(487,
282, turn, COPY_PUT);
setcolor(BROWN);
outtextxy(480,
285, " Player 2");
setcolor(YELLOW);
again2: ch=getch();
if
(ch==13) getdice();
else
if (ch==27) exit(1);
else
goto again2;
if
(cnt2==96 && dice!=4) {
delay(1000); goto invalid2; user=0; }
else
if (cnt2==97 && dice!=3) {
delay(1000); goto invalid2; user=0;
}
else
if (cnt2==98 && dice!=2) {
delay(1000); goto invalid2; user=0;
}
else
if (cnt2==99 && dice!=1) {
delay(1000); goto invalid2; user=0;
}
for
(i=1; i<=dice; i++, cnt2++)
{
putimage(x2,
y2, o2, COPY_PUT);
if
(dir2==0)
{
// size=imagesize(x2,
y2, x2+10, y2+10);
// o2=malloc(size);
getimage(x2,
y2, x2+10, y2+10, o2);
x2+=40;
if
(x2>440) x2-=40, y2-=40, dir2=1;
// size=imagesize(x2,
y2, x2+10, y2+10);
// o2=malloc(size);
getimage(x2,
y2, x2+10, y2+10, o2);
putimage(x2,
y2, obj2, COPY_PUT);
delay(1000); goto ch2;
}
else
{
// size=imagesize(x2,
y2, x2+10, y2+10);
// o2=malloc(size);
getimage(x2,
y2, x2+10, y2+10, o2);
x2-=40;
if
(x2<50) x2+=40, y2-=40, dir2=0;
// size=imagesize(x2,
y2, x2+10, y2+10);
// o2=malloc(size);
getimage(x2,
y2, x2+10, y2+10, o2);
putimage(x2,
y2, obj2, COPY_PUT);
delay(1000); goto ch2;
}
ch2: if
(cnt2==99) goto over;
}
if
(cnt2==12 || cnt2==72 || cnt2==78)
{
putimage(x2,
y2, o2, COPY_PUT);
x2-=80; y2-=80;
// size=imagesize(x2,
y2, x2+10, y2+10);
// o2=malloc(size);
getimage(x2,
y2, x2+10, y2+10, o2);
putimage(x2,
y2, obj2, COPY_PUT);
if
(cnt2==12) cnt2=34;
else
if (cnt2==72) cnt2=94;
else
if (cnt2==78) { cnt2=100; goto over;
}
}
else
if (cnt2==22 || cnt2==46)
{
putimage(x2,
y2, o2, COPY_PUT);
x2+=40; y2-=40;
// size=imagesize(x2,
y2, x2+10, y2+10);
// o2=malloc(size);
getimage(x2,
y2, x2+10, y2+10, o2);
putimage(x2,
y2, obj2, COPY_PUT);
if
(cnt2==22) cnt2=38;
else
if (cnt2==46) cnt2=54;
dir2=1;
}
else
if (cnt2==36 || cnt2==99)
{
putimage(x2,
y2, o2, COPY_PUT);
x2+=160; y2+=120;
// size=imagesize(x2,
y2, x2+10, y2+10);
// o2=malloc(size);
getimage(x2,
y2, x2+10, y2+10, o2);
putimage(x2,
y2, obj2, COPY_PUT);
if
(cnt2==36) cnt2=9;
else
if (cnt2==99) cnt2=66;
dir2=0;
}
else
if (cnt2==62)
{
putimage(x2,
y2, o2, COPY_PUT);
y2+=240;
// size=imagesize(x2,
y2, x2+10, y2+10);
// o2=malloc(size);
getimage(x2,
y2, x2+10, y2+10, o2);
putimage(x2,
y2, obj2, COPY_PUT);
cnt2=2;
}
else
if (cnt2==90)
{
putimage(x2,
y2, o2, COPY_PUT);
x2-=80; y2+=160;
// size=imagesize(x2,
y2, x2+10, y2+10);
// o2=malloc(size);
getimage(x2,
y2, x2+10, y2+10, o2);
putimage(x2,
y2, obj2, COPY_PUT);
cnt2=48;
}
if
(dice==5 || dice==6) user=1; else user=0;
invalid2: putimage(500,
130, back, COPY_PUT);
delay(1000);
}
}
over: }
void main()
{
int
gd=DETECT, gm;
initgraph(&gd,
&gm, "d:\tc\bgi");
randomize();
size=imagesize(487,
282, 593, 293);
turn=malloc(size);
getimage(487,
282, 593, 293, turn);
rectangle(100,
100, 110, 110);
setfillstyle(1,
2);
floodfill(102,
102, 15);
size=imagesize(100,
100, 110, 110);
obj1=malloc(size);
getimage(100,
100, 110, 110, obj1);
cleardevice();
rectangle(100,
100, 110, 110);
setfillstyle(1,
6);
floodfill(102,
102, 15);
size=imagesize(100,
100, 110, 110);
obj2=malloc(size);
getimage(100,
100, 110, 110, obj2);
cleardevice();
o1=malloc(size); o2=malloc(size);
setcolor(WHITE);
setfillstyle(SOLID_FILL,
15);
rectangle(500,
130, 580, 210);
floodfill(510,
140, 15);
size=imagesize(500,
130, 580, 210);
back=malloc(size);
getimage(500,
130, 580, 210, back);
setcolor(0);
setfillstyle(1,
0);
rectangle(535,
165, 545, 175);
floodfill(540,
170, 0);
size=imagesize(535,
165, 545, 175);
dot=malloc(size);
getimage(535,
165, 545, 175, dot);
cleardevice();
setcolor(WHITE);
setfillstyle(SOLID_FILL,
15);
rectangle(500,
130, 580, 210);
floodfill(510,
140, 15);
for(int
i=0;i<=360;i+=40)
for(int
j=0;j<=360;j+=40)
{
setfillstyle(SOLID_FILL,
k);
bar(50+j,30+i,90+j,70+i);
k+=2;
}
ladder1(); ladder2();
snake1(); snake2(); snake3();
numbering(); status();
welcome(); play();
if
(cnt1>=99) outtextxy(480,
330, "PLAYER 1 WINS!");
else
if (cnt2>=99) outtextxy(480, 330,
"PLAYER 2 WINS!");
getch();
}