欧美亚洲综合图区在线|天天射天天干国产成卜|99久久免费国产精精品|国产的欧美一区二区三区|日韩中文字幕无码不卡专区|亚麻成人aV极品一区二区|国产成人AV区一区二区三|成人免费一区二区三区视频网站

當(dāng)前位置:首頁(yè) > 軟件開(kāi)放 > 正文內(nèi)容

c語(yǔ)言游戲代碼大全直接復(fù)制(c語(yǔ)言超級(jí)簡(jiǎn)單的小游戲代碼)

軟件開(kāi)放2年前 (2023-04-14)1390

今天給各位分享c語(yǔ)言游戲代碼大全直接復(fù)制的知識(shí),其中也會(huì)對(duì)c語(yǔ)言超級(jí)簡(jiǎn)單的小游戲代碼進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!

本文目錄一覽:

c語(yǔ)言小游戲代碼

最基礎(chǔ)的貪吃蛇的代碼

#includestdio.h

#include慶搏windows.h//基本型態(tài)定義。支援型態(tài)定義函數(shù)。使用者界面函數(shù) 圖形裝置界面函數(shù)。

#includeconio.h //用戶通過(guò)按鍵盤(pán)產(chǎn)生的對(duì)應(yīng)操作 (控制臺(tái))

#includestdlib.h

#includetime.h //日期和時(shí)間頭文件

#define LEN 30

#define WID 25

int Snake[LEN][WID] = {0}; //數(shù)組的元素代表蛇的各個(gè)部位

char Sna_Hea_Dir = 'a';//記錄蛇頭的移動(dòng)方向

int Sna_Hea_X, Sna_Hea_Y;//記錄蛇頭的位置

int Snake_Len = 3;//記錄蛇的長(zhǎng)度

clock_t Now_Time;//記錄當(dāng)前時(shí)間,以便自動(dòng)移動(dòng)

int Wait_Time ;//記錄自動(dòng)移動(dòng)的時(shí)間間隔

int Eat_Apple = 1;//吃到蘋(píng)果表示為1

int Level ;

int All_Score = -1;

int Apple_Num = -1;

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //獲取標(biāo)準(zhǔn)輸出的句柄 windows.h

//句柄 :標(biāo)志應(yīng)用程序中的不同對(duì)象和同類對(duì)象中的不同的實(shí)例 方便操控,

void gotoxy(int x, int y)//設(shè)置光標(biāo)位置

{

COORD pos = {x,y}; //定義一個(gè)字符在控制臺(tái)屏幕上的坐標(biāo)POS

SetConsoleCursorPosition(hConsole, pos); //定位光標(biāo)位置的函數(shù)windows.h

}

void Hide_Cursor()//隱藏光標(biāo) 固定函數(shù)

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(hConsole, cursor_info);

}

void SetColor(int color)//設(shè)置顏色

{

SetConsoleTextAttribute(hConsole, color);

//是API設(shè)置字體顏色和背景色的函數(shù) 格式:SetConsoleTextAttribute(句柄,顏色);

}

void Print_Snake()//打印蛇頭和蛇的脖子和蛇尾

{

int iy, ix, color;

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

if(Snake[ix][iy] == 1)//蛇頭念差告

{

SetColor(0xf); /仔明/oxf代表分配的內(nèi)存地址 setcolor:34行自定義設(shè)置顏色的函數(shù)

gotoxy(ix*2, iy);

printf("※");

}

if(Snake[ix][iy] == 2)//蛇的脖子

{

color = rand()%15 + 1; //rand()函數(shù)是產(chǎn)生隨機(jī)數(shù)的一個(gè)隨機(jī)函數(shù)。C語(yǔ)言里還有 srand()函數(shù)等。

//頭文件:stdlib.h

if(color == 14)

color -= rand() % 13 + 1; //變色

SetColor(color);

gotoxy(ix*2, iy);

printf("■");

}

if(Snake[ix][iy] == Snake_Len)

{

gotoxy(ix*2, iy);

SetColor(0xe);

printf("≈");

}

}

}

void Clear_Snake()//擦除貪吃蛇

{

int iy, ix;

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

gotoxy(ix*2, iy);

if(Snake[ix][iy] == Snake_Len)

printf(" ");

}

}

void Rand_Apple()//隨機(jī)產(chǎn)生蘋(píng)果

{

int ix, iy;

do

{

ix = rand() % LEN;

iy = rand() % WID;

}while(Snake[ix][iy]);

Snake[ix][iy] = -1;

gotoxy(ix*2, iy);

printf("⊙");

Eat_Apple = 0;

}

void Game_Over()//蛇死掉了

{

gotoxy(30, 10);

printf("Game Over");

Sleep(3000);

system("pause nul");

exit(0);

}

void Move_Snake()//讓蛇動(dòng)起來(lái)

{

int ix, iy;

for(ix = 0; ix LEN; ++ix)//先標(biāo)記蛇頭

for(iy = 0; iy WID; ++iy)

if(Snake[ix][iy] == 1)

{

switch(Sna_Hea_Dir)//根據(jù)新的蛇頭方向標(biāo)志蛇頭

{

case 'w':

if(iy == 0)

Game_Over();

else

Sna_Hea_Y = iy - 1;

Sna_Hea_X = ix;

break;

case 's':

if(iy == (WID -1))

Game_Over();

else

Sna_Hea_Y = iy + 1;

Sna_Hea_X = ix;

break;

case 'a':

if(ix == 0)

Game_Over();

else

Sna_Hea_X = ix - 1;

Sna_Hea_Y = iy;

break;

case 'd':

if(ix == (LEN - 1))

Game_Over();

else

Sna_Hea_X = ix + 1;

Sna_Hea_Y = iy;

break;

default:

break;

}

}

if(Snake[Sna_Hea_X][Sna_Hea_Y]!=1Snake[Sna_Hea_X][Sna_Hea_Y]!=0Snake[Sna_Hea_X][Sna_Hea_Y]!=-1)

Game_Over();

if(Snake[Sna_Hea_X][Sna_Hea_Y] 0)//吃到蘋(píng)果

{

++Snake_Len;

Eat_Apple = 1;

}

for(ix = 0; ix LEN; ++ix)//處理蛇尾

for(iy = 0; iy WID; ++iy)

{

if(Snake[ix][iy] 0)

{

if(Snake[ix][iy] != Snake_Len)

Snake[ix][iy] += 1;

else

Snake[ix][iy] = 0;

}

}

Snake[Sna_Hea_X][Sna_Hea_Y] = 1;//處理蛇頭

}

void Get_Input()//控制蛇的移動(dòng)方向

{

if(kbhit())

{

switch(getch())

{

case 87:

Sna_Hea_Dir = 'w';

break;

case 83:

Sna_Hea_Dir = 's';

break;

case 65:

Sna_Hea_Dir = 'a';

break;

case 68:

Sna_Hea_Dir = 'd';

break;

default:

break;

}

}

if(clock() - Now_Time = Wait_Time)//蛇到時(shí)間自動(dòng)行走

{

Clear_Snake();

Move_Snake();

Print_Snake();

Now_Time = clock();

}

}

void Init()//初始化

{

system("title 貪吃毛毛蛇");

system("mode con: cols=80 lines=25");

Hide_Cursor();

gotoxy(61, 4);

printf("You Score:");

gotoxy(61, 6);

printf("You Level:");

gotoxy(61, 8);

printf("The Lenght:");

gotoxy(61, 10);

printf("The Speed:");

gotoxy(61, 12);

printf("Apple Num:");

int i;

for(i = 0; i Snake_Len; ++i)//生成蛇

Snake[10+i][15] = i+1;

int iy, ix;//打印蛇

for(iy = 0; iy WID; ++iy)

for(ix = 0; ix LEN; ++ix)

{

if(Snake[ix][iy])

{

SetColor(Snake[ix][iy]);

gotoxy(ix*2, iy);

printf("■");

}

}

}

void Pri_News()//打印信息

{

SetColor(0xe);

gotoxy(73,4);

All_Score += Level;

printf("%3d", All_Score);

gotoxy(73, 6);

printf("%3d", Level);

gotoxy(73, 8);

printf("%3d",Snake_Len);

gotoxy(73, 10);

printf("0.%3ds", Wait_Time/10);

gotoxy(73, 12);

printf("%d", Apple_Num);

}

void Lev_Sys()//等級(jí)系統(tǒng)

{

if(((Apple_Num-1) / 10) == Level)

{

++Level;

if(Wait_Time 50)

Wait_Time -= 50;

else

if(Wait_Time 10)

Wait_Time -= 10;

else

Wait_Time -= 1;

}

}

int main(void)

{

Init();

srand((unsigned)time(NULL));//設(shè)置隨機(jī)數(shù)的種子

Now_Time = clock();

int speed1=1000,speed2,a;

printf("\n");

printf("請(qǐng)輸入你想要的速度\n");

scanf("%d",speed2);

Level=1;

Wait_Time=speed1-speed2;

printf("請(qǐng)輸入你想要的蘋(píng)果數(shù)\n");

scanf("%d",a);

while(a--)

Rand_Apple();

while(1)

{

if(Eat_Apple)

{

++Apple_Num;

Rand_Apple();

Lev_Sys();

Pri_News();

}

Get_Input();

Sleep(10);

}

return 0;

}

用C語(yǔ)言編寫(xiě)的小游戲代碼是什么?

“猜數(shù)字小游戲”,每個(gè)數(shù)字后按空格,最后按回車(chē)確認(rèn)

#includestdio.h

#includestdlib.h

#includetime.h

int a[4],b[4];

int count=0;? //計(jì)算猜衫慶彎測(cè)次數(shù)

void csh( );? //初始化

void start( );? //開(kāi)始游戲

int main( )

{ csh( );

start( );

}

void csh( )? //初始化

{ printf("\n\n???????? 猜? 數(shù)? 字? 小? 游? 戲\n\n");

printf(“? ??猜四個(gè)數(shù)字,如數(shù)字與順序都正確記差讓為A,數(shù)字正確位置不對(duì)記為B.\n”);

}

void start( )? //開(kāi)始游戲

{int m,n;? //m是完全猜對(duì)的個(gè)數(shù),n是順序不對(duì)的個(gè)數(shù)

while(1)

{srand((unsigned)time(NULL));? //初始化隨機(jī)數(shù)發(fā)生器srand( )

while(1) { for(int i=0;i4;i++) a[i]=rand( )%10; ?//rand( )函數(shù)每次隨機(jī)產(chǎn)生一個(gè)0-9的數(shù)

if( (a[3]!=a[2]a[3]!=a[1]a[3]!=a[0])

(a[2]!=a[1]或悶a[2]!=a[0])a[1]!=a[0] ) break; }? //4個(gè)隨機(jī)數(shù)各自不相等

printf("?? ?請(qǐng)依次輸入4個(gè)一位整數(shù):\n\n? ?");

while(1)

{for(int i=0;i4;i++) scanf(“%d”,b[i]);

printf("?? ?你輸入的是:%d? %d? %d? %d ",b[0],b[1],b[2],b[3]);

m=0;n=0;

for(int i=0;i4;i++)

{for(int j=0;j4;j++)

{ if(b[i]==a[j]i==j)m=m+1; if(b[i]==a[j]i!=j)n=n+1; }

}

count=count+1;

printf("????? %dA? %dB?? 你試了%d次\n? ?",m,n,count);

if(m==4)break;

if(count==8){ count=0; break; }

}

printf("\n");

if(m==4)printf("???? 你猜對(duì)了(^-^)! 就是:%d %d %d %d\n",a[0],a[1],a[2],a[3]);

else printf("???? 你輸了(T-T)!哈哈!應(yīng)該是:%d %d %d %d\n",a[0],a[1],a[2],a[3]);

int z;

printf("???? (要繼續(xù)嗎?1或0)\n? ?");

scanf(“%d”,z);

if(z==0) break;

}

}

C語(yǔ)言 游戲 代碼

掃雷 #include graphics.h

#include stdlib.h

#include dos.h

#define LEFTPRESS 0xff01

#define LEFTCLICK 0xff10

#define LEFTDRAG 0xff19

#define MOUSEMOVE 0xff08

struct

{

int num;/*格子當(dāng)前處于什么狀態(tài),1有雷,0已經(jīng)顯示過(guò)數(shù)字或者空白格子*/

int roundnum;/*統(tǒng)計(jì)格子周?chē)卸嗌倮?/

int flag;/*右鍵按下顯示紅旗的標(biāo)志,0沒(méi)有紅旗標(biāo)志,1有紅旗標(biāo)志*/

}Mine[10][10];

int gameAGAIN=0;/*是否升亮重來(lái)的變量*/

int gamePLAY=0;/*是否是第一次玩游戲的標(biāo)志*/

int mineNUM;/*統(tǒng)計(jì)處理過(guò)的格子數(shù)*/

char randmineNUM[3];/*顯示數(shù)字的字符串*/

int Keystate;

int MouseExist;

int MouseButton;

int MouseX;

int MouseY;

void Init(void);/*圖形驅(qū)動(dòng)*/

void MouseOn(void);/*鼠標(biāo)光標(biāo)顯示*/

void MouseOff(void);/*鼠標(biāo)光標(biāo)隱藏*/

void MouseSetXY(int,int);/*設(shè)置當(dāng)前位置*/

int LeftPress(void);/*左鍵按下*/

int RightPress(void);/*鼠標(biāo)右鍵按下*/

void MouseGetXY(void);/*得到當(dāng)前位置*/

void Control(void);/*游戲開(kāi)始,重新,關(guān)閉*/

void GameBegain(void);/*游戲開(kāi)始畫(huà)面*/

void DrawSmile(void);/*畫(huà)笑臉*/

void DrawRedflag(int,int);/*顯示紅旗*/

void DrawEmpty(int,int,int,int);/*兩種空格子的顯示*/

void GameOver(void);/*游戲結(jié)束*/

void GameWin(void);/*顯示勝利*/

int MineStatistics(int,int);/*統(tǒng)計(jì)每個(gè)格子周?chē)睦讛?shù)*/

int ShowWhite(int,int);/*顯示無(wú)雷區(qū)的空白部分*/

void GamePlay(void);/*游戲過(guò)程*/

void Close(void);/*圖形關(guān)閉*/

void main(void)

{

Init();

Control();

Close();

}

void Init(void)/*圖形開(kāi)睜此始*/

{

int gd=DETECT,gm;

initgraph(gd,gm,"c:\\tc");

}

void Close(void)/*圖形關(guān)閉*/

{

closegraph();

}

void MouseOn(void)/*鼠標(biāo)光標(biāo)顯示*/

{

_AX=0x01;

geninterrupt(0x33);

}

void MouseOff(void)/*鼠標(biāo)光標(biāo)隱藏*/

{

_AX=0x02;

geninterrupt(0x33);

}

void MouseSetXY(int x,int y)/*設(shè)置當(dāng)前位置*/

{

_CX=x;

_DX=y;

_AX=0x04;

geninterrupt(0x33);

}

int LeftPress(void)/*鼠標(biāo)左鍵按下*/

{

_AX=0x03;

geninterrupt(0x33);

return(_BX1);

}

int RightPress(void)/*鼠標(biāo)右鍵按下*/

{

_AX=0x03;

geninterrupt(0x33);

return(_BX2);

}

void MouseGetXY(void)/*得到當(dāng)前位置*/

{

_AX=0x03;

geninterrupt(0x33);

MouseX=_CX;

MouseY=_DX;

}

void Control(void)/*游戲開(kāi)始,重新,關(guān)閉*/

{

int gameFLAG=1;/*游戲失敗后吵早寬判斷是否重新開(kāi)始的標(biāo)志*/

while(1)

{

if(gameFLAG)/*游戲失敗后沒(méi)判斷出重新開(kāi)始或者退出游戲的話就繼續(xù)判斷*/

{

GameBegain(); /*游戲初始畫(huà)面*/

GamePlay();/*具體游戲*/

if(gameAGAIN==1)/*游戲中重新開(kāi)始*/

{

gameAGAIN=0;

continue;

}

}

MouseOn();

gameFLAG=0;

if(LeftPress())/*判斷是否重新開(kāi)始*/

{

MouseGetXY();

if(MouseX280MouseX300MouseY65MouseY85)

{

gameFLAG=1;

continue;

}

}

if(kbhit())/*判斷是否按鍵退出*/

break;

}

MouseOff();

}

void DrawSmile(void)/*畫(huà)笑臉*/

{

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)/*沒(méi)有單擊過(guò)的大格子*/

bar(200+j*20-8,100+i*20-8,200+j*20+8,100+i*20+8);

else

if(mode==1)/*單擊過(guò)后顯示空白的小格子*/

bar(200+j*20-7,100+i*20-7,200+j*20+7,100+i*20+7);

}

void GameBegain(void)/*游戲開(kāi)始畫(huà)面*/

{

int i,j;

cleardevice();

if(gamePLAY!=1)

{

MouseSetXY(290,70); /*鼠標(biāo)一開(kāi)始的位置,并作為它的初始坐標(biāo)*/

MouseX=290;

MouseY=70;

}

gamePLAY=1;/*下次按重新開(kāi)始的話鼠標(biāo)不重新初始化*/

mineNUM=0;

setfillstyle(SOLID_FILL,7);

bar(190,60,390,290);

for(i=0;i10;i++)/*畫(huà)格子*/

for(j=0;j10;j++)

DrawEmpty(i,j,0,8);

setcolor(7);

DrawSmile();/*畫(huà)臉*/

randomize();

for(i=0;i10;i++)/*100個(gè)格子隨機(jī)賦值有沒(méi)有地雷*/

for(j=0;j10;j++)

{

Mine[i][j].num=random(8);/*如果隨機(jī)數(shù)的結(jié)果是1表示這個(gè)格子有地雷*/

if(Mine[i][j].num==1)

mineNUM++;/*現(xiàn)有雷數(shù)加1*/

else

Mine[i][j].num=2;

Mine[i][j].flag=0;/*表示沒(méi)紅旗標(biāo)志*/

}

sprintf(randmineNUM,"%d",mineNUM); /*顯示這次總共有多少雷數(shù)*/

setcolor(1);

settextstyle(0,0,2);

outtextxy(210,70,randmineNUM);

mineNUM=100-mineNUM;/*變量取空白格數(shù)量*/

MouseOn();

}

void GameOver(void)/*游戲結(jié)束畫(huà)面*/

{

int i,j;

setcolor(0);

for(i=0;i10;i++)

for(j=0;j10;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)/*統(tǒng)計(jì)每個(gè)格子周?chē)睦讛?shù)*/

{

int nNUM=0;

if(i==0j==0)/*左上角格子的統(tǒng)計(jì)*/

{

if(Mine[0][1].num==1)

nNUM++;

if(Mine[1][0].num==1)

nNUM++;

if(Mine[1][1].num==1)

nNUM++;

}

else

if(i==0j==9)/*右上角格子的統(tǒng)計(jì)*/

{

if(Mine[0][8].num==1)

nNUM++;

if(Mine[1][9].num==1)

nNUM++;

if(Mine[1][8].num==1)

nNUM++;

}

else

if(i==9j==0)/*左下角格子的統(tǒng)計(jì)*/

{

if(Mine[8][0].num==1)

nNUM++;

if(Mine[9][1].num==1)

nNUM++;

if(Mine[8][1].num==1)

nNUM++;

}

else

if(i==9j==9)/*右下角格子的統(tǒng)計(jì)*/

{

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)/*左邊第一列格子的統(tǒng)計(jì)*/

{

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)/*右邊第一列格子的統(tǒng)計(jì)*/

{

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)/*第一行格子的統(tǒng)計(jì)*/

{

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)/*最后一行格子的統(tǒng)計(jì)*/

{

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/*普通格子的統(tǒng)計(jì)*/

{

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);/*把格子周?chē)还灿卸嗌倮讛?shù)的統(tǒng)計(jì)結(jié)果返回*/

}

int ShowWhite(int i,int j)/*顯示無(wú)雷區(qū)的空白部分*/

{

if(Mine[i][j].flag==1||Mine[i][j].num==0)/*如果有紅旗或該格處理過(guò)就不對(duì)該格進(jìn)行任何判斷*/

return;

mineNUM--;/*顯示過(guò)數(shù)字或者空格的格子就表示多處理了一個(gè)格子,當(dāng)所有格子都處理過(guò)了表示勝利*/

if(Mine[i][j].roundnum==0Mine[i][j].num!=1)/*顯示空格*/

{

DrawEmpty(i,j,1,7);

Mine[i][j].num=0;

}

else

if(Mine[i][j].roundnum!=0)/*輸出雷數(shù)*/

{

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;/*已經(jīng)輸出雷數(shù)的格子用0表示已經(jīng)用過(guò)這個(gè)格子*/

return ;

}

/*8個(gè)方向遞歸顯示所有的空白格子*/

if(i!=0Mine[i-1][j].num!=1)

ShowWhite(i-1,j);

if(i!=0j!=9Mine[i-1][j+1].num!=1)

ShowWhite(i-1,j+1);

if(j!=9Mine[i][j+1].num!=1)

ShowWhite(i,j+1);

if(j!=9i!=9Mine[i+1][j+1].num!=1)

ShowWhite(i+1,j+1);

if(i!=9Mine[i+1][j].num!=1)

ShowWhite(i+1,j);

if(i!=9j!=0Mine[i+1][j-1].num!=1)

ShowWhite(i+1,j-1);

if(j!=0Mine[i][j-1].num!=1)

ShowWhite(i,j-1);

if(i!=0j!=0Mine[i-1][j-1].num!=1)

ShowWhite(i-1,j-1);

}

void GamePlay(void)/*游戲過(guò)程*/

{

int i,j,Num;/*Num用來(lái)接收統(tǒng)計(jì)函數(shù)返回一個(gè)格子周?chē)卸嗌俚乩?/

for(i=0;i10;i++)

for(j=0;j10;j++)

Mine[i][j].roundnum=MineStatistics(i,j);/*統(tǒng)計(jì)每個(gè)格子周?chē)卸嗌俚乩?/

while(!kbhit())

{

if(LeftPress())/*鼠標(biāo)左鍵盤(pán)按下*/

{

MouseGetXY();

if(MouseX280MouseX300MouseY65MouseY85)/*重新來(lái)*/

{

MouseOff();

gameAGAIN=1;

break;

}

if(MouseX190MouseX390MouseY90MouseY290)/*當(dāng)前鼠標(biāo)位置在格子范圍內(nèi)*/

{

j=(MouseX-190)/20;/*x坐標(biāo)*/

i=(MouseY-90)/20;/*y坐標(biāo)*/

if(Mine[i][j].flag==1)/*如果格子有紅旗則左鍵無(wú)效*/

continue;

if(Mine[i][j].num!=0)/*如果格子沒(méi)有處理過(guò)*/

{

if(Mine[i][j].num==1)/*鼠標(biāo)按下的格子是地雷*/

{

MouseOff();

GameOver();/*游戲失敗*/

break;

}

else/*鼠標(biāo)按下的格子不是地雷*/

{

MouseOff();

Num=MineStatistics(i,j);

if(Num==0)/*周?chē)鷽](méi)地雷就用遞歸算法來(lái)顯示空白格子*/

ShowWhite(i,j);

else/*按下格子周?chē)械乩?/

{

sprintf(randmineNUM,"%d",Num);/*輸出當(dāng)前格子周?chē)睦讛?shù)*/

setcolor(RED);

outtextxy(195+j*20,95+i*20,randmineNUM);

mineNUM--;

}

MouseOn();

Mine[i][j].num=0;/*點(diǎn)過(guò)的格子周?chē)讛?shù)的數(shù)字變?yōu)?表示這個(gè)格子已經(jīng)用過(guò)*/

if(mineNUM1)/*勝利了*/

{

GameWin();

break;

}

}

}

}

}

if(RightPress())/*鼠標(biāo)右鍵鍵盤(pán)按下*/

{

MouseGetXY();

if(MouseX190MouseX390MouseY90MouseY290)/*當(dāng)前鼠標(biāo)位置在格子范圍內(nèi)*/

{

j=(MouseX-190)/20;/*x坐標(biāo)*/

i=(MouseY-90)/20;/*y坐標(biāo)*/

MouseOff();

if(Mine[i][j].flag==0Mine[i][j].num!=0)/*本來(lái)沒(méi)紅旗現(xiàn)在顯示紅旗*/

{

DrawRedflag(i,j);

Mine[i][j].flag=1;

}

else

if(Mine[i][j].flag==1)/*有紅旗標(biāo)志再按右鍵就紅旗消失*/

{

DrawEmpty(i,j,0,8);

Mine[i][j].flag=0;

}

}

MouseOn();

sleep(1);

}

}

}

求一段C語(yǔ)言的完整代碼,復(fù)制粘貼答案后可以運(yùn)行,要求如下:

#includestdio.h

#includestdlib.h

#includetime.h

int?main(void)

{

int?i,n;

char?string1[][100]={"方塊","紅桃","黑桃","梅花"};

????char?string2[][10]={"2","3","4","5","6","7","8","9","10","J","Q","K","A",};

printf("請(qǐng)輸入所需要牌戚亂的張數(shù):");

scanf("%d",n);

srand(time(NULL));?

for(i=0;i攔困n;i++)

{

printf("%s",string1[rand()%4]);?

printf("%s",string2[rand()%13]);

printf("\n");

????}

????return?0;

}

//執(zhí)行結(jié)果簡(jiǎn)仔念

希望采納!3Q!

誰(shuí)有一些簡(jiǎn)單小游戲的C語(yǔ)言程序?

可以學(xué)寫(xiě)“貪吃蛇”代檔褲碼:

#include stdio.h

#include stdlib.h

#include conio.h

#include time.h

#include Windows.h

#define W 78? //游戲框的寬,x軸

#define H 26? //游戲框的高,y軸

int dir=3; ???//方向變量,初值3表示向“左”

int Flag=0; ??//吃了食物的標(biāo)志(1是0否)

int score=0;? //玩家得分

struct food{ int x;? //食物的x坐標(biāo)

? ? ? ? ? ? ? ?? int y;? //食物的y坐標(biāo)

? ? ? ? ? ? ?? }fod; ?//結(jié)構(gòu)體fod有2個(gè)成員

struct snake{ int len;? //蛇身長(zhǎng)度

? ? ? ? ? ? ? ? ?? int speed; //速度

? ? ? ? ? ? ? ? ? int x[100];

? ? ? ? ? ? ? ? ? int y[100];

? ? ? ? ? ? ? ?? }snk;? //結(jié)構(gòu)體snk有4個(gè)成員

void gtxy( int x,int y) ?//控制光標(biāo)移動(dòng)的函數(shù)

{ COORD coord;

coord.X=x;

coord.Y=y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

void gtxy( int x,int y);? //以下聲明要用到的幾個(gè)自編函數(shù)

void csh( );? //初始化界面

void keymove( ); //按鍵操作移動(dòng)蛇

void putFod( );? //投放食物

int? Over( ); ??//游戲結(jié)束(1是0否)

void setColor(unsigned short p, unsigned short q); //設(shè)定顯示顏色

int main( )?? //主函數(shù)

{ csh( );

? while(1)

? ?? { Sleep(snk.speed);

? ? ?? keymove( );

? ? ?? putFod( );

? ? ?? if(Over( )) {system(“cls”);

? ? ? ? ? ? ? ? ? ? ? gtxy(W/2+1,H/2); printf(“游戲結(jié)鏈蠢困束!T__T”);

? ? ? ? ? ? ? ? ? ? ? gtxy(W/2+1,H/2+2); printf(“玩家總棚念分:%d分”,score);

? ? ? ? ? ? ? ? ? ? ? getch( );? break;

? ? ? ? ? ? ? ? ? ?? }

? ?? }

? return 0;

}

void csh( )? //初始化界面

{ int i;? gtxy(0,0);

CONSOLE_CURSOR_INFO cursor_info={1,0};? //以下兩行是隱藏光標(biāo)的設(shè)置

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),cursor_info);

for(i=0;i=W;i=i+2)? //橫坐標(biāo)要為偶數(shù),因?yàn)檫@個(gè)要打印的字符占2個(gè)位置

{ setColor(2, 0);? //設(shè)定打印顏色為綠字黑底

? gtxy(i,0); ?printf("■"); ?//打印上邊框

? gtxy(i,H); printf("■"); ?//打印下邊框

}

for(i=1;iH;i++)

{ gtxy(0,i); printf("■"); ?//打印左邊框

gtxy(W,i); printf("■"); ?//打印右邊框

}

while(1)

??{ srand((unsigned)time(NULL));? //啟動(dòng)隨機(jī)數(shù)發(fā)生器srand( )

fod.x=rand()%(W-4)+2;? //隨機(jī)函數(shù)rand( )產(chǎn)生一個(gè)從0到比”(W-4)”小1的數(shù)再加2

fod.y=rand()%(H-2)+1;? //隨機(jī)函數(shù)rand( )產(chǎn)生一個(gè)從0到比”(H-2)”小1的數(shù)再加1

if (fod.x%2==0) break;? //fod.x是食物的橫坐標(biāo),要是2的倍數(shù)(為偶數(shù))

}

setColor(12, 0);? //設(shè)定打印顏色為淡紅字黑底

gtxy(fod.x,fod.y); printf("●"); ?//到食物坐標(biāo)處打印初試食物

snk.len=3; ?????//蛇身長(zhǎng)

snk.speed=350;? //刷新蛇的時(shí)間,即是移動(dòng)速度

snk.x[0]=W/2+1;? //蛇頭橫坐標(biāo)要為偶數(shù)(因?yàn)閃/2=39)

snk.y[0]=H/2;?? ?//蛇頭縱坐標(biāo)

setColor(9, 0);? //設(shè)定打印顏色為淡藍(lán)字黑底

gtxy(snk.x[0], snk.y[0]); ?printf("■"); ?//打印蛇頭

for(i=1;isnk.len;i++)

?{ snk.x[i]=snk.x[i-1]+2; ?snk.y[i]=snk.y[i-1];

??gtxy(snk.x[i],snk.y[i]); ?printf("■"); ?//打印蛇身

}

setColor(7, 0);? //恢復(fù)默認(rèn)的白字黑底

return;

}

void keymove( )? //按鍵操作移動(dòng)蛇

{ int key;

if( kbhit( ) )??? //如有按鍵輸入才執(zhí)行下面操作

{ key=getch( );

? ? if (key==224)? //值為224表示按下了方向鍵,下面要再次獲取鍵值

? ? { key=getch( );

? ? ? if(key==72dir!=2)dir=1;? //72表示按下了向上方向鍵

? ?? if(key==80dir!=1)dir=2;? //80為向下

? ?? if(key==75dir!=4)dir=3;? //75為向左

? ?? if(key==77dir!=3)dir=4;? //77為向右

?? }

if (key==32)

? { while(1) if((key=getch( ))==32) break; }? //32為空格鍵,這兒用來(lái)暫停

? }

if (Flag==0)? //如沒(méi)吃食物,才執(zhí)行下面操作擦掉蛇尾

?{gtxy(snk.x[snk.len-1],snk.y[snk.len-1]); ?printf("? "); }

int i;

for (i = snk.len - 1; i 0; i--) ?//從蛇尾起每節(jié)存儲(chǔ)前一節(jié)坐標(biāo)值(蛇頭除外)

? ? ? { snk.x[i]=snk.x[i-1]; ?snk.y[i]=snk.y[i-1]; }

switch (dir)? //判斷蛇頭該往哪個(gè)方向移動(dòng),并獲取最新坐標(biāo)值

{ case 1: snk.y[0]--; break; ??//dir=1要向上移動(dòng)

? case 2: snk.y[0]++; break;? //dir=2要向下移動(dòng)

? case 3: snk.x[0]-=2; break;? //dir=3要向左移動(dòng)

? case 4: snk.x[0]+=2; break;? //dir=4要向右移動(dòng)

}

setColor(9, 0);

gtxy(snk.x[0], snk.y[0]); printf("■"); ?//打印蛇頭

if (snk.x[0] == fod.x snk.y[0] == fod.y)? //如吃到食物則執(zhí)行以下操作

??{ printf("\007"); snk.len++; score += 100; snk.speed -= 5; Flag = 1; }//這007是響鈴

else Flag = 0;? //沒(méi)吃到食物Flag的值為0

if(snk.speed150) snk.speed= snk.speed+5;? //作弊碼,不讓速度無(wú)限加快

}

void putFod( )? //投放食物

{ if (Flag == 1)? //如吃到食物才執(zhí)行以下操作,生成另一個(gè)食物

??{ while (1)

??{ int i,n= 1;

???srand((unsigned)time(NULL));? //啟動(dòng)隨機(jī)數(shù)發(fā)生器srand( ),接下產(chǎn)生食物坐標(biāo)值

? ?fod.x = rand( ) % (W - 4) + 2;? //產(chǎn)生在游戲框范圍內(nèi)的一個(gè)x坐標(biāo)值

? ?fod.y = rand( ) % (H - 2) + 1;? //產(chǎn)生在游戲框范圍內(nèi)的一個(gè)y坐標(biāo)值

? ?for (i = 0; i snk.len; i++) ??//隨機(jī)生成的食物不能在蛇的身體上

? ? ? ? ? ? ? { if (fod.x == snk.x[i] fod.y == snk.y[i]) { n= 0; break;} }

???if (n fod.x % 2 == 0) break; ?//n不為0且橫坐標(biāo)為偶數(shù),則食物坐標(biāo)取值成功

??}

? ? setColor(12, 0);

?? gtxy(fod.x, fod.y); ?printf("●"); ?//光標(biāo)到取得的坐標(biāo)處打印食物

? }

return;

}

int Over( )? //判斷游戲是否結(jié)束的函數(shù)

{ int ?i;

setColor(7, 0);

gtxy(2,H+1); printf(“暫停鍵:space.”); ?//以下打印一些其它信息

gtxy(2,H+2); printf(“游戲得分:%d”,score);

if (snk.x[0] == 0 || snk.x[0] == W) return 1;? //蛇頭觸碰左右邊界

if (snk.y[0] == 0 || snk.y[0] == H) return 1;? //蛇頭觸碰上下邊界

for (i = 1; i snk.len; i++)

{ if (snk.x[0] == snk.x[i] snk.y[0] == snk.y[i]) return 1; } //蛇頭觸碰自身

return 0;? //沒(méi)碰到邊界及自身時(shí)就返回0

}

void setColor(unsigned short ForeColor = 7, unsigned short BackGroundColor = 0)

{ HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(handle, ForeColor + BackGroundColor * 0x10);

} //用來(lái)設(shè)定顏色的函數(shù)

關(guān)于c語(yǔ)言游戲代碼大全直接復(fù)制和c語(yǔ)言超級(jí)簡(jiǎn)單的小游戲代碼的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

掃描二維碼推送至手機(jī)訪問(wèn)。

版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://landcheck.net/post/16806.html

“c語(yǔ)言游戲代碼大全直接復(fù)制(c語(yǔ)言超級(jí)簡(jiǎn)單的小游戲代碼)” 的相關(guān)文章

qq安全中心釣魚(yú)源碼(釣魚(yú)網(wǎng)站軟件手機(jī)版)

qq安全中心釣魚(yú)源碼(釣魚(yú)網(wǎng)站軟件手機(jī)版)

今天給各位分享qq安全中心釣魚(yú)源碼的知識(shí),其中也會(huì)對(duì)釣魚(yú)網(wǎng)站軟件手機(jī)版進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、中了假的QQ安全中心釣魚(yú)網(wǎng)站 并填寫(xiě)了身份證號(hào) 手機(jī)號(hào) 以及發(fā)了驗(yàn)證短信該怎么補(bǔ)救 2、中了qq安全中心的釣魚(yú)網(wǎng)站怎么辦? 3、中了...

梵客家裝公司地址(梵客家裝公司在哪)

梵客家裝公司地址(梵客家裝公司在哪)

今天給各位分享梵客家裝公司地址的知識(shí),其中也會(huì)對(duì)梵客家裝公司在哪進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、北京的裝修公司太多了,排前靠前的有哪些? 2、北京前十公裝公司有哪些? 3、北京裝修公司口碑十大排名 4、北京附近裝修公司推薦 北京的...

uniapp項(xiàng)目結(jié)構(gòu)(uniapp 架構(gòu))

uniapp項(xiàng)目結(jié)構(gòu)(uniapp 架構(gòu))

今天給各位分享uniapp項(xiàng)目結(jié)構(gòu)的知識(shí),其中也會(huì)對(duì)uniapp 架構(gòu)進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、如何建立uniapp websocket服務(wù)端,要怎么實(shí)現(xiàn)? 2、基于 UniAPP 項(xiàng)目多端開(kāi)發(fā) 3、uniapp原生插件開(kāi)發(fā)(i...

制作一個(gè)app軟件需要多少錢(qián)(制作一個(gè)簡(jiǎn)單的app需要多少錢(qián))

制作一個(gè)app軟件需要多少錢(qián)(制作一個(gè)簡(jiǎn)單的app需要多少錢(qián))

今天給各位分享制作一個(gè)app軟件需要多少錢(qián)的知識(shí),其中也會(huì)對(duì)制作一個(gè)簡(jiǎn)單的app需要多少錢(qián)進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、制作一個(gè)APP需要多少錢(qián)a???? 2、做一個(gè)app軟件要多少錢(qián) 3、一般做一個(gè)app開(kāi)發(fā)需要多少錢(qián)?貴不貴?》...

qrs間期100ms是否正常(qrs多少正常范圍)

qrs間期100ms是否正常(qrs多少正常范圍)

今天給各位分享qrs間期100ms是否正常的知識(shí),其中也會(huì)對(duì)qrs多少正常范圍進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、醫(yī)生您好!心電圖檢查:心室率:88bpm,pr間期:142ms,qrs時(shí)限100ms,qt/qtc 2、心電圖 QRS100 Q...

網(wǎng)站源碼爬取(獲取網(wǎng)站源碼)

網(wǎng)站源碼爬取(獲取網(wǎng)站源碼)

今天給各位分享網(wǎng)站源碼爬取的知識(shí),其中也會(huì)對(duì)獲取網(wǎng)站源碼進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!本文目錄一覽: 1、用requests庫(kù)爬取網(wǎng)站源碼問(wèn)題 2、為什么別人網(wǎng)站源碼中只有少量?jī)?nèi)容,其他通過(guò)js實(shí)現(xiàn) 3、python怎么爬取網(wǎng)頁(yè)源代碼 用reques...

通榆县| 大兴区| 汾阳市| 香河县| 博野县| 合作市| 灵山县| 蒙山县| 余姚市| 阿克苏市| 隆回县| 甘孜县| 桂东县| 莱芜市| 佛学| 黄平县| 盘锦市| 开阳县| 玉溪市| 浦城县| 汉中市| 灌云县| 陆良县| 临泽县| 五寨县| 铜陵市| 常山县| 肇州县| 斗六市| 莒南县| 临西县| 措美县| 普陀区| 南开区| 凤山县| 武功县| 扶风县| 龙岩市| 高碑店市| 吉安县| 敖汉旗|