Saturday 29 June 2013

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.

Moving

  • 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.

Snakes/Chutes

  • 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.

Winning

  • 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();
}

No comments:

Post a Comment