本文目錄一覽:
C語言掃雷遊戲源代碼
“掃雷”小遊戲C代碼
#includestdio.h
#includemath.h
#includetime.h
#includestdlib.h
main( )
{char a[102][102],b[102][102],c[102][102],w;
int i,j; /*循環變量*/
int x,y,z[999]; /*雷的位置*/
int t,s; /*標記*/
int m,n,lei; /*計數*/
int u,v; /*輸入*/
int hang,lie,ge,mo; /*自定義變量*/
srand((int)time(NULL)); /*啟動隨機數發生器*/
leb1: /*選擇模式*/
printf(“\n 請選擇模式:\n 1.標準 2.自定義\n”);
scanf(“%d”,mo);
if(mo==2) /*若選擇自定義模式,要輸入三個參數*/
{do
{t=0; printf(“請輸入\n行數 列數 雷的個數\n”);
scanf(“%d%d%d”,hang,lie,ge);
if(hang2){printf(“行數太少\n”); t=1;}
if(hang100){printf(“行數太多\n”);t=1;}
if(lie2){printf(“列數太少\n”);t=1;}
if(lie100){printf(“列數太多\n”);t=1;}
if(ge1){printf(“至少要有一個雷\n”);t=1;}
if(ge=(hang*lie)){printf(“雷太多了\n”);t=1;}
}while(t==1);
}
else{hang=10,lie=10,ge=10;} /*否則就是選擇了標準模式(默認參數)*/
for(i=1;i=ge;i=i+1) /*確定雷的位置*/
{do
{t=0; z[i]=rand( )%(hang*lie);
for(j=1;ji;j=j+1){if(z[i]==z[j]) t=1;}
}while(t==1);
}
for(i=0;i=hang+1;i=i+1) /*初始化a,b,c*/
{for(j=0;j=lie+1;j=j+1) {a[i][j]=’1′; b[i][j]=’1′; c[i][j]=’0′;} }
for(i=1;i=hang;i=i+1)
{for(j=1;j=lie;j=j+1) {a[i][j]=’+’;} }
for(i=1;i=ge;i=i+1) /*把雷放入c*/
{x=z[i]/lie+1; y=z[i]%lie+1; c[x][y]=’#’;}
for(i=1;i=hang;i=i+1) /*計算b中數字*/
{for(j=1;j=lie;j=j+1)
{m=48;
if(c[i-1][j-1]==’#’)m=m+1; if(c[i][j-1]==’#’)m=m+1;
if(c[i-1][j]==’#’)m=m+1; if(c[i+1][j+1]==’#’)m=m+1;
if(c[i][j+1]==’#’)m=m+1; if(c[i+1][j]==’#’)m=m+1;
if(c[i+1][j-1]==’#’)m=m+1; if(c[i-1][j+1]==’#’)m=m+1;
b[i][j]=m;
}
}
for(i=1;i=ge;i=i+1) /*把雷放入b中*/
{x=z[i]/lie+1; y=z[i]%lie+1; b[x][y]=’#’;}
lei=ge; /*以下是遊戲設計*/
do
{leb2: /*輸出*/
system(“cls”);printf(“\n\n\n\n”);
printf(” “);
for(i=1;i=lie;i=i+1)
{w=(i-1)/10+48; printf(“%c”,w);
w=(i-1)%10+48; printf(“%c “,w);
}
printf(“\n |”);
for(i=1;i=lie;i=i+1){printf(“—|”);}
printf(“\n”);
for(i=1;i=hang;i=i+1)
{w=(i-1)/10+48; printf(“%c”,w);
w=(i-1)%10+48; printf(“%c |”,w);
for(j=1;j=lie;j=j+1)
{if(a[i][j]==’0′)printf(” |”);
else printf(” %c |”,a[i][j]);
}
if(i==2)printf(” 剩餘雷個數”);
if(i==3)printf(” %d”,lei);
printf(“\n |”);
for(j=1;j=lie;j=j+1){printf(“—|”);}
printf(“\n”);
}
scanf(“%d%c%d”,u,w,v); /*輸入*/
u=u+1,v=v+1;
if(w!=’#’a[u][v]==’@’)
goto leb2;
if(w==’#’)
{if(a[u][v]==’+’){a[u][v]=’@’; lei=lei-1;}
else if(a[u][v]==’@’){a[u][v]=’?’; lei=lei+1;}
else if(a[u][v]==’?’){a[u][v]=’+’;}
goto leb2;
}
a[u][v]=b[u][v];
leb3: /*打開0區*/
t=0;
if(a[u][v]==’0′)
{for(i=1;i=hang;i=i+1)
{for(j=1;j=lie;j=j+1)
{s=0;
if(a[i-1][j-1]==’0′)s=1; if(a[i-1][j+1]==’0′)s=1;
if(a[i-1][j]==’0′)s=1; if(a[i+1][j-1]==’0′)s=1;
if(a[i+1][j+1]==’0′)s=1; if(a[i+1][j]==’0′)s=1;
if(a[i][j-1]==’0′)s=1; if(a[i][j+1]==’0′)s=1;
if(s==1)a[i][j]=b[i][j];
}
}
for(i=1;i=hang;i=i+1)
{for(j=lie;j=1;j=j-1)
{s=0;
if(a[i-1][j-1]==’0′)s=1; if(a[i-1][j+1]==’0′)s=1;
if(a[i-1][j]==’0′)s=1; if(a[i+1][j-1]==’0′)s=1;
if(a[i+1][j+1]==’0′)s=1; if(a[i+1][j]==’0′)s=1;
if(a[i][j-1]==’0′)s=1; if(a[i][j+1]==’0′)s=1;
if(s==1)a[i][j]=b[i][j];
}
}
for(i=hang;i=1;i=i-1)
{for(j=1;j=lie;j=j+1)
{s=0;
if(a[i-1][j-1]==’0′)s=1; if(a[i-1][j+1]==’0′)s=1;
if(a[i-1][j]==’0′)s=1; if(a[i+1][j-1]==’0′)s=1;
if(a[i+1][j+1]==’0′)s=1; if(a[i+1][j]==’0′)s=1;
if(a[i][j-1]==’0′)s=1; if(a[i][j+1]==’0′)s=1;
if(s==1)a[i][j]=b[i][j];
}
}
for(i=hang;i=1;i=i-1)
{for(j=lie;j=1;j=j-1)
{s=0;
if(a[i-1][j-1]==’0′)s=1; if(a[i-1][j+1]==’0′)s=1;
if(a[i-1][j]==’0′)s=1; if(a[i+1][j-1]==’0′)s=1;
if(a[i+1][j+1]==’0′)s=1;if(a[i+1][j]==’0′)s=1;
if(a[i][j-1]==’0′)s=1; if(a[i][j+1]==’0′)s=1;
if(s==1)a[i][j]=b[i][j];
}
}
for(i=1;i=hang;i=i+1) /*檢測0區*/
{for(j=1;j=lie;j=j+1)
{if(a[i][j]==’0′)
{if(a[i-1][j-1]==’+’||a[i-1][j-1]==’@’||a[i-1][j-1]==’?’)t=1;
if(a[i-1][j+1]==’+’||a[i-1][j+1]==’@’||a[i-1][j+1]==’?’)t=1;
if(a[i+1][j-1]==’+’||a[i+1][j-1]==’@’||a[i+1][j-1]==’?’)t=1;
if(a[i+1][j+1]==’+’||a[i+1][j+1]==’@’||a[i+1][j+1]==’?’)t=1;
if(a[i+1][j]==’+’||a[i+1][j]==’@’||a[i+1][j]==’?’)t=1;
if(a[i][j+1]==’+’||a[i][j+1]==’@’||a[i][j+1]==’?’)t=1;
if(a[i][j-1]==’+’||a[i][j-1]==’@’||a[i][j-1]==’?’)t=1;
if(a[i-1][j]==’+’||a[i-1][j]==’@’||a[i-1][j]==’?’)t=1;
}
}
}
if(t==1)goto leb3;
}
n=0; /*檢查結束*/
for(i=1;i=hang;i=i+1)
{for(j=1;j=lie;j=j+1)
{if(a[i][j]!=’+’a[i][j]!=’@’a[i][j]!=’?’)n=n+1;}
}
}
while(a[u][v]!=’#’n!=(hang*lie-ge));
for(i=1;i=ge;i=i+1) /*遊戲結束*/
{x=z[i]/lie+1; y=z[i]%lie+1; a[x][y]=’#’; }
printf(” “);
for(i=1;i=lie;i=i+1)
{w=(i-1)/10+48; printf(“%c”,w);
w=(i-1)%10+48; printf(“%c “,w);
}
printf(“\n |”);
for(i=1;i=lie;i=i+1){printf(“—|”);}
printf(“\n”);
for(i=1;i=hang;i=i+1)
{w=(i-1)/10+48; printf(“%c”,w);
w=(i-1)%10+48; printf(“%c |”,w);
for(j=1;j=lie;j=j+1)
{if(a[i][j]==’0′)printf(” |”);
else printf(” %c |”,a[i][j]);
}
if(i==2)printf(” 剩餘雷個數”);
if(i==3)printf(” %d”,lei); printf(“\n |”);
for(j=1;j=lie;j=j+1) {printf(“—|”);}
printf(“\n”);
}
if(n==(hang*lie-ge)) printf(“你成功了!\n”);
else printf(” 遊戲結束!\n”);
printf(” 重玩請輸入1\n”);
t=0;
scanf(“%d”,t);
if(t==1)goto leb1;
}
/*註:在DEV c++上運行通過。行號和列號都從0開始,比如要確定第0行第9列不是「雷」,就在0和9中間加入一個字母,可以輸入【0a9】三個字符再按回車鍵。3行7列不是雷,則輸入【3a7】回車;第8行第5列是雷,就輸入【8#5】回車,9行0列是雷則輸入【9#0】並回車*/
C語言簡易文字冒險遊戲源代碼
記憶遊戲
#includestdio.h
#includetime.h
#includestdlib.h
#includewindows.h
#define N 10
int main( )
{int i,k,n,a[N],b[N],f=0;
srand(time(NULL));
printf(” 按1開始\n 按0退出:_”);
scanf(“%d”,n);
system(“cls”);
while(n!=0)
{for(k=0;kN;k++)a[k] = rand( )%N;
printf(“\n\t\t[請您牢記看到顏色的順序]\n\n”);
for(k=0;kN;k++)
{switch(a[k])
{case 0:system(“color 90″);printf(” 0:淡藍色\n”);break; //淡藍色
case 1:system(“color f0″);printf(” 1:白色\n”);break; //白色
case 2:system(“color c0″);printf(” 2:淡紅色\n”);break; //淡紅色
case 3: system(“color d0″);printf(” 3:淡紫色\n”);break; //淡紫色
case 4: system(“color 80″);printf(” 4:灰色\n”); break; //灰色
case 5: system(“color e0″);printf(” 5:黃色\n”);break; //黃色
case 6: system(“color 10″);printf(” 6:藍色\n”); break; //藍色
case 7: system(“color 20″);printf(” 7:綠色\n”);break; //綠色
case 8: system(“color 30″);printf(” 8:淺綠色\n”);break; //淺綠色
case 9: system(“color 40″);printf(” 9:紅色\n”);break; //紅色
}
Sleep(1500);
system(“color f”); //單個控制 文字顏色
Sleep(100);
}
system(“cls”);
printf(” 0:淡藍色,1:白色,2:淡紅色,3:淡紫色,4:灰色,5:黃色,6:藍色7:綠色,8:淺綠色,9:紅色\n”);
printf(“\n\t請輸入顏色的順序:”);
for(k=0;kN;k++)scanf(“%d”,b[k]);
for(k=0;kN;k++)if(a[k] == b[k]) f++;
if(f==0) printf(” 你的記憶弱爆了0\n”);
else if(f==1) printf(” 你的記憶有點弱1\n”);
else if(f5) printf(” 你的記憶一般5\n”);
else printf(” 你的記憶力很強!\n”);
Sleep(2000);
system(“cls”);
printf(“\t\t按0退出\n\t\t按任意鍵繼續遊戲:\n”);
scanf(“%d”,n);
system(“cls”);
}
return 0;
}
註:DEVc++運行通過,每輸入一個數字要加入一個空格。
c語言編程小遊戲實現的超級瑪麗遊戲源碼
int game::GetCommand()
{
int c = 0;
if (GetAsyncKeyState(‘A’) 0x8000)
c |= CMD_LEFT;
if (GetAsyncKeyState(‘D’) 0x8000)
c |= CMD_RIGHT;
if ((GetAsyncKeyState(‘W’) 0x8000)||(GetAsyncKeyState(‘K’) 0x8000))
c |= CMD_UP;
if (GetAsyncKeyState(‘S’) 0x8000)
c |= CMD_DOWN;
if (GetAsyncKeyState(‘J’) 0x8000)
c |= CMD_SHOOT;
if (GetAsyncKeyState(VK_ESCAPE) 0x8000)
c |= CMD_ESC;
return c;
}
void game::left()
{
role.iframe*=-1;
role.turn=-1;
role.x-=STEP;
if(is_l_touch(1)==1)
role.x+=STEP;
if(role.x
role.x+=STEP;
}
void game::right()
{
role.iframe*=-1;
role.turn=1;
role.x+=STEP;
if(is_r_touch(1)==1)
role.x-=STEP;
if(role.xrole.xright(-xmap+role.x
{
role.x-=STEP;
xmapsky-=1;
xmap-=STEP;
}
}
void game::up()
{
mciSendString(“play mymusic4 from 0”, NULL, 0, NULL);
role.iframe*=-1;
v0=-sqrt(2*G*HIGH);
role.jump=1;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/312788.html