當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 操作系統 » gm娛樂源碼

gm娛樂源碼-九游会j9娱乐平台

發布時間: 2024-01-17 12:25:37

a. 網頁游戲gm工具易語言源代碼怎麼改

你好彩虹兔兔8062,分情況討論: 如果是編輯框、組合框的話,那麼代碼如下: 編輯框(組合框).內容=「你想修改的內容」 如果是標簽、按鈕、選擇框、單選框等的話,那麼代碼如下: 標簽(按鈕等).標題=「你想修改的內容」

b. 掃雷游戲的c代碼給個網址或代碼也行

用tc自己玩一下吧

/*5.3.4 源程序*/
#include
#include
#include
#define leftpress 0xff01
#define leftclick 0xff10
#define leftdrag 0xff19
#define mousemove 0xff08
struct
{
int num;/*格子當前處於什麼狀態,1有雷,0已經顯示過數字或者空白格子*/
int roundnum;/*統計格子周圍有多少雷*/
int flag;/*右鍵按下顯示紅旗的標志,0沒有紅旗標志,1有紅旗標志*/
}mine[10][10];
int gameagain=0;/*是否重來的變數*/
int gameplay=0;/*是否是第一次玩游戲的標志*/
int minenum;/*統計處理過的格子數*/
char randminenum[3];/*顯示數字的字元串*/
int keystate;
int mouseexist;
int mousebutton;
int mousex;
int mousey;
void init(void);/*圖形驅動*/
void mouseon(void);/*滑鼠游標顯示*/
void mouseoff(void);/*滑鼠游標隱藏*/
void mousesetxy(int,int);/*設置當前位置*/
int leftpress(void);/*左鍵按下*/
int rightpress(void);/*滑鼠右鍵按下*/
void mousegetxy(void);/*得到當前位置*/
void control(void);/*游戲開始,重新,關閉*/
void gamebegain(void);/*游戲開始畫面*/
void drawsmile(void);/*畫笑臉*/
void drawredflag(int,int);/*顯示紅旗*/
void drawempty(int,int,int,int);/*兩種空格子的顯示*/
void gameover(void);/*游戲結束*/
void gamewin(void);/*顯示勝利*/
int minestatistics(int,int);/*統計每個格子周圍的雷數*/
int showwhite(int,int);/*顯示無雷區的空白部分*/
void gameplay(void);/*游戲過程*/
void close(void);/*圖形關閉*/
void main(void)
{
init();
control();
close();
}
void init(void)/*圖形開始*/
{
int gd=detect,gm;
initgraph(&gd,&gm,"c:\\tc");
}
void close(void)/*圖形關閉*/
{
closegraph();
}
void mouseon(void)/*滑鼠游標顯示*/
{
_ax=0x01;
geninterrupt(0x33);
}
void mouseoff(void)/*滑鼠游標隱藏*/
{
_ax=0x02;
geninterrupt(0x33);
}
void mousesetxy(int x,int y)/*設置當前位置*/
{
_cx=x;
_dx=y;
_ax=0x04;
geninterrupt(0x33);
}
int leftpress(void)/*滑鼠左鍵按下*/
{
_ax=0x03;
geninterrupt(0x33);
return(_bx&1);
}
int rightpress(void)/*滑鼠右鍵按下*/
{
_ax=0x03;
geninterrupt(0x33);
return(_bx&2);
}
void mousegetxy(void)/*得到當前位置*/
{
_ax=0x03;
geninterrupt(0x33);
mousex=_cx;
mousey=_dx;
}
void control(void)/*游戲開始,重新,關閉*/
{
int gameflag=1;/*游戲失敗後判斷是否重新開始的標志*/
while(1)
{
if(gameflag)/*游戲失敗後沒判斷出重新開始或者退出遊戲的話就繼續判斷*/
{
gamebegain(); /*游戲初始畫面*/
gameplay();/*具體游戲*/
if(gameagain==1)/*游戲中重新開始*/
{
gameagain=0;
continue;
}
}
mouseon();
gameflag=0;
if(leftpress())/*判斷是否重新開始*/
{
mousegetxy();
if(mousex>280&&mousex<300&&mousey>65&&mousey<85)
{
gameflag=1;
continue;
}
}
if(kbhit())/*判斷是否按鍵退出*/
break;
}
mouseoff();
}
void drawsmile(void)/*畫笑臉*/
{
setfillstyle(solid_fill,yellow);
fillellipse(290,75,10,10);
setcolor(yellow);
setfillstyle(solid_fill,black);/*眼睛*/
fillellipse(285,75,2,2);
fillellipse(295,75,2,2);
setcolor(black);/*嘴巴*/
bar(287,80,293,81);
}
void drawredflag(int i,int j)/*顯示紅旗*/
{
setcolor(7);
setfillstyle(solid_fill,red);
bar(198 j*20,95 i*20,198 j*20 5,95 i*20 5);
setcolor(black);
line(198 j*20,95 i*20,198 j*20,95 i*20 10);
}
void drawempty(int i,int j,int mode,int color)/*兩種空格子的顯示*/
{
setcolor(color);
setfillstyle(solid_fill,color);
if(mode==0)/*沒有單擊過的大格子*/
bar(200 j*20-8,100 i*20-8,200 j*20 8,100 i*20 8);
else
if(mode==1)/*單擊過後顯示空白的小格子*/
bar(200 j*20-7,100 i*20-7,200 j*20 7,100 i*20 7);
}
void gamebegain(void)/*游戲開始畫面*/
{
int i,j;
cleardevice();
if(gameplay!=1)
{
mousesetxy(290,70); /*滑鼠一開始的位置,並作為它的初始坐標*/
mousex=290;
mousey=70;
}
gameplay=1;/*下次按重新開始的話滑鼠不重新初始化*/
minenum=0;
setfillstyle(solid_fill,7);
bar(190,60,390,290);
for(i=0;i<10;i )/*畫格子*/
for(j=0;j<10;j )
drawempty(i,j,0,8);
setcolor(7);
drawsmile();/*畫臉*/
randomize();
for(i=0;i<10;i )/*100個格子隨機賦值有沒有地雷*/
for(j=0;j<10;j )
{
mine[i][j].num=random(8);/*如果隨機數的結果是1表示這個格子有地雷*/
if(mine[i][j].num==1)
minenum ;/*現有雷數加1*/
else
mine[i][j].num=2;
mine[i][j].flag=0;/*表示沒紅旗標志*/
}
sprintf(randminenum,"%d",minenum); /*顯示這次總共有多少雷數*/
setcolor(1);
settextstyle(0,0,2);
outtextxy(210,70,randminenum);
minenum=100-minenum;/*變數取空白格數量*/
mouseon();
}
void gameover(void)/*游戲結束畫面*/
{
int i,j;
setcolor(0);
for(i=0;i<10;i )
for(j=0;j<10;j )
if(mine[i][j].num==1)/*顯示所有的地雷*/
{
drawempty(i,j,0,red);
setfillstyle(solid_fill,black);
fillellipse(200 j*20,100 i*20,7,7);
}
}
void gamewin(void)/*顯示勝利*/
{
setcolor(11);
settextstyle(0,0,2);
outtextxy(230,30,"you win!");
}
int minestatistics(int i,int j)/*統計每個格子周圍的雷數*/
{
int nnum=0;
if(i==0&&j==0)/*左上角格子的統計*/
{
if(mine[0][1].num==1)
nnum ;
if(mine[1][0].num==1)
nnum ;
if(mine[1][1].num==1)
nnum ;
}
else
if(i==0&&j==9)/*右上角格子的統計*/
{
if(mine[0][8].num==1)
nnum ;
if(mine[1][9].num==1)
nnum ;
if(mine[1][8].num==1)
nnum ;
}
else
if(i==9&&j==0)/*左下角格子的統計*/
{
if(mine[8][0].num==1)
nnum ;
if(mine[9][1].num==1)
nnum ;
if(mine[8][1].num==1)
nnum ;
}
else
if(i==9&&j==9)/*右下角格子的統計*/
{
if(mine[9][8].num==1)
nnum ;
if(mine[8][9].num==1)
nnum ;
if(mine[8][8].num==1)
nnum ;
}
else if(j==0)/*左邊第一列格子的統計*/
{
if(mine[i][j 1].num==1)
nnum ;
if(mine[i 1][j].num==1)
nnum ;
if(mine[i-1][j].num==1)
nnum ;
if(mine[i-1][j 1].num==1)
nnum ;
if(mine[i 1][j 1].num==1)
nnum ;
}
else if(j==9)/*右邊第一列格子的統計*/
{
if(mine[i][j-1].num==1)
nnum ;
if(mine[i 1][j].num==1)
nnum ;
if(mine[i-1][j].num==1)
nnum ;
if(mine[i-1][j-1].num==1)
nnum ;
if(mine[i 1][j-1].num==1)
nnum ;
}
else if(i==0)/*第一行格子的統計*/
{
if(mine[i 1][j].num==1)
nnum ;
if(mine[i][j-1].num==1)
nnum ;
if(mine[i][j 1].num==1)
nnum ;
if(mine[i 1][j-1].num==1)
nnum ;
if(mine[i 1][j 1].num==1)
nnum ;
}
else if(i==9)/*最後一行格子的統計*/
{
if(mine[i-1][j].num==1)
nnum ;
if(mine[i][j-1].num==1)
nnum ;
if(mine[i][j 1].num==1)
nnum ;
if(mine[i-1][j-1].num==1)
nnum ;
if(mine[i-1][j 1].num==1)
nnum ;
}
else/*普通格子的統計*/
{
if(mine[i-1][j].num==1)
nnum ;
if(mine[i-1][j 1].num==1)
nnum ;
if(mine[i][j 1].num==1)
nnum ;
if(mine[i 1][j 1].num==1)
nnum ;
if(mine[i 1][j].num==1)
nnum ;
if(mine[i 1][j-1].num==1)
nnum ;
if(mine[i][j-1].num==1)
nnum ;
if(mine[i-1][j-1].num==1)
nnum ;
}
return(nnum);/*把格子周圍一共有多少雷數的統計結果返回*/
}
int showwhite(int i,int j)/*顯示無雷區的空白部分*/
{
if(mine[i][j].flag==1||mine[i][j].num==0)/*如果有紅旗或該格處理過就不對該格進行任何判斷*/
return;
minenum--;/*顯示過數字或者空格的格子就表示多處理了一個格子,當所有格子都處理過了表示勝利*/
if(mine[i][j].roundnum==0&&mine[i][j].num!=1)/*顯示空格*/
{
drawempty(i,j,1,7);
mine[i][j].num=0;
}
else
if(mine[i][j].roundnum!=0)/*輸出雷數*/
{
drawempty(i,j,0,8);
sprintf(randminenum,"%d",mine[i][j].roundnum);
setcolor(red);
outtextxy(195 j*20,95 i*20,randminenum);
mine[i][j].num=0;/*已經輸出雷數的格子用0表示已經用過這個格子*/
return ;
}
/*8個方向遞歸顯示所有的空白格子*/
if(i!=0&&mine[i-1][j].num!=1)
showwhite(i-1,j);
if(i!=0&&j!=9&&mine[i-1][j 1].num!=1)
showwhite(i-1,j 1);
if(j!=9&&mine[i][j 1].num!=1)
showwhite(i,j 1);
if(j!=9&&i!=9&&mine[i 1][j 1].num!=1)
showwhite(i 1,j 1);
if(i!=9&&mine[i 1][j].num!=1)
showwhite(i 1,j);
if(i!=9&&j!=0&&mine[i 1][j-1].num!=1)
showwhite(i 1,j-1);
if(j!=0&&mine[i][j-1].num!=1)
showwhite(i,j-1);
if(i!=0&&j!=0&&mine[i-1][j-1].num!=1)
showwhite(i-1,j-1);
}
void gameplay(void)/*游戲過程*/
{
int i,j,num;/*num用來接收統計函數返回一個格子周圍有多少地雷*/
for(i=0;i<10;i )
for(j=0;j<10;j )
mine[i][j].roundnum=minestatistics(i,j);/*統計每個格子周圍有多少地雷*/
while(!kbhit())
{
if(leftpress())/*滑鼠左鍵盤按下*/
{
mousegetxy();
if(mousex>280&&mousex<300&&mousey>65&&mousey<85)/*重新來*/
{
mouseoff();
gameagain=1;
break;
}
if(mousex>190&&mousex<390&&mousey>90&&mousey<290)/*當前滑鼠位置在格子范圍內*/
{
j=(mousex-190)/20;/*x坐標*/
i=(mousey-90)/20;/*y坐標*/
if(mine[i][j].flag==1)/*如果格子有紅旗則左鍵無效*/
continue;
if(mine[i][j].num!=0)/*如果格子沒有處理過*/
{
if(mine[i][j].num==1)/*滑鼠按下的格子是地雷*/
{
mouseoff();
gameover();/*游戲失敗*/
break;
}
else/*滑鼠按下的格子不是地雷*/
{
mouseoff();
num=minestatistics(i,j);
if(num==0)/*周圍沒地雷就用遞歸演算法來顯示空白格子*/
showwhite(i,j);
else/*按下格子周圍有地雷*/
{
sprintf(randminenum,"%d",num);/*輸出當前格子周圍的雷數*/
setcolor(red);
outtextxy(195 j*20,95 i*20,randminenum);
minenum--;
}
mouseon();
mine[i][j].num=0;/*點過的格子周圍雷數的數字變為0表示這個格子已經用過*/
if(minenum<1)/*勝利了*/
{
gamewin();
break;
}
}
}
}
}
if(rightpress())/*滑鼠右鍵鍵盤按下*/
{
mousegetxy();
if(mousex>190&&mousex<390&&mousey>90&&mousey<290)/*當前滑鼠位置在格子范圍內*/
{
j=(mousex-190)/20;/*x坐標*/
i=(mousey-90)/20;/*y坐標*/
mouseoff();
if(mine[i][j].flag==0&&mine[i][j].num!=0)/*本來沒紅旗現在顯示紅旗*/
{
drawredflag(i,j);
mine[i][j].flag=1;
}
else
if(mine[i][j].flag==1)/*有紅旗標志再按右鍵就紅旗消失*/
{
drawempty(i,j,0,8);
mine[i][j].flag=0;
}
}
mouseon();
sleep(1);
}
}
}

熱點內容
愛奇藝正義聯盟為啥不能緩存 發布:2024-01-20 00:52:13 瀏覽:248
caccess查詢資料庫 發布:2024-01-20 00:43:10 瀏覽:769
xp文件夾圖標更改 發布:2024-01-20 00:43:03 瀏覽:19
python和node 發布:2024-01-20 00:37:12 瀏覽:194
android拖拉 發布:2024-01-20 00:00:49 瀏覽:583
少兒編程課程體系介紹 發布:2024-01-20 00:00:48 瀏覽:846
我說你做下載ftp 發布:2024-01-20 00:00:47 瀏覽:8
安卓驅動培訓哪裡好 發布:2024-01-19 23:55:41 瀏覽:987
python轉為字元串 發布:2024-01-19 23:51:39 瀏覽:272
合同文件夾 發布:2024-01-19 23:50:52 瀏覽:740
网站地图