日韩精品亚洲精品中文字幕乱伦AV|曰韩区二区三区日韩中文字幕五码|ady99久久人人看人人摸人人|动漫一区二区黄99精品视频在线|AV片在线观看亚洲中文国产精品|伦乱在线VA欧美性爱一二区|亚洲无码mv91热色视频|激情六月综合欧美精品中文

當前位置:首頁 > 軟件開放 > 正文內容

c語言游戲代碼大全直接復制(c語言超級簡單的小游戲代碼)

軟件開放2年前 (2023-04-14)1455

今天給各位分享c語言游戲代碼大全直接復制的知識,其中也會對c語言超級簡單的小游戲代碼進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關注本站,現(xiàn)在開始吧!

本文目錄一覽:

c語言小游戲代碼

最基礎的貪吃蛇的代碼

#includestdio.h

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

#includeconio.h //用戶通過按鍵盤產生的對應操作 (控制臺)

#includestdlib.h

#includetime.h //日期和時間頭文件

#define LEN 30

#define WID 25

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

char Sna_Hea_Dir = 'a';//記錄蛇頭的移動方向

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

int Snake_Len = 3;//記錄蛇的長度

clock_t Now_Time;//記錄當前時間,以便自動移動

int Wait_Time ;//記錄自動移動的時間間隔

int Eat_Apple = 1;//吃到蘋果表示為1

int Level ;

int All_Score = -1;

int Apple_Num = -1;

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //獲取標準輸出的句柄 windows.h

//句柄 :標志應用程序中的不同對象和同類對象中的不同的實例 方便操控,

void gotoxy(int x, int y)//設置光標位置

{

COORD pos = {x,y}; //定義一個字符在控制臺屏幕上的坐標POS

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

}

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

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(hConsole, cursor_info);

}

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

{

SetConsoleTextAttribute(hConsole, color);

//是API設置字體顏色和背景色的函數(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代表分配的內存地址 setcolor:34行自定義設置顏色的函數(shù)

gotoxy(ix*2, iy);

printf("※");

}

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

{

color = rand()%15 + 1; //rand()函數(shù)是產生隨機數(shù)的一個隨機函數(shù)。C語言里還有 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()//隨機產生蘋果

{

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()//讓蛇動起來

{

int ix, iy;

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

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

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

{

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

{

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)//吃到蘋果

{

++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()//控制蛇的移動方向

{

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)//蛇到時間自動行走

{

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()//等級系統(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ù)的種子

Now_Time = clock();

int speed1=1000,speed2,a;

printf("\n");

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

scanf("%d",speed2);

Level=1;

Wait_Time=speed1-speed2;

printf("請輸入你想要的蘋果數(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語言編寫的小游戲代碼是什么?

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

#includestdio.h

#includestdlib.h

#includetime.h

int a[4],b[4];

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

void csh( );? //初始化

void start( );? //開始游戲

int main( )

{ csh( );

start( );

}

void csh( )? //初始化

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

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

}

void start( )? //開始游戲

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

while(1)

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

while(1) { for(int i=0;i4;i++) a[i]=rand( )%10; ?//rand( )函數(shù)每次隨機產生一個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個隨機數(shù)各自不相等

printf("?? ?請依次輸入4個一位整數(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("???? 你猜對了(^-^)! 就是:%d %d %d %d\n",a[0],a[1],a[2],a[3]);

else printf("???? 你輸了(T-T)!哈哈!應該是:%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語言 游戲 代碼

掃雷 #include graphics.h

#include stdlib.h

#include dos.h

#define LEFTPRESS 0xff01

#define LEFTCLICK 0xff10

#define LEFTDRAG 0xff19

#define MOUSEMOVE 0xff08

struct

{

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

int roundnum;/*統(tǒng)計格子周圍有多少雷*/

int flag;/*右鍵按下顯示紅旗的標志,0沒有紅旗標志,1有紅旗標志*/

}Mine[10][10];

int gameAGAIN=0;/*是否升亮重來的變量*/

int gamePLAY=0;/*是否是第一次玩游戲的標志*/

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

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

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);/*統(tǒng)計每個格子周圍的雷數(shù)*/

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

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(_BX1);

}

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

{

_AX=0x03;

geninterrupt(0x33);

return(_BX2);

}

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

{

_AX=0x03;

geninterrupt(0x33);

MouseX=_CX;

MouseY=_DX;

}

void Control(void)/*游戲開始,重新,關閉*/

{

int gameFLAG=1;/*游戲失敗后吵早寬判斷是否重新開始的標志*/

while(1)

{

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

{

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

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

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

{

gameAGAIN=0;

continue;

}

}

MouseOn();

gameFLAG=0;

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

{

MouseGetXY();

if(MouseX280MouseX300MouseY65MouseY85)

{

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;i10;i++)/*畫格子*/

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

DrawEmpty(i,j,0,8);

setcolor(7);

DrawSmile();/*畫臉*/

randomize();

for(i=0;i10;i++)/*100個格子隨機賦值有沒有地雷*/

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

{

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

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

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

else

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

Mine[i][j].flag=0;/*表示沒紅旗標志*/

}

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

setcolor(1);

settextstyle(0,0,2);

outtextxy(210,70,randmineNUM);

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

MouseOn();

}

void GameOver(void)/*游戲結束畫面*/

{

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)計每個格子周圍的雷數(shù)*/

{

int nNUM=0;

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

{

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)計*/

{

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)計*/

{

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)計*/

{

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)計*/

{

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)計*/

{

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)計*/

{

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)計*/

{

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)計*/

{

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);/*把格子周圍一共有多少雷數(shù)的統(tǒng)計結果返回*/

}

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

{

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

return;

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

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)用過這個格子*/

return ;

}

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

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)/*游戲過程*/

{

int i,j,Num;/*Num用來接收統(tǒng)計函數(shù)返回一個格子周圍有多少地雷*/

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

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

Mine[i][j].roundnum=MineStatistics(i,j);/*統(tǒng)計每個格子周圍有多少地雷*/

while(!kbhit())

{

if(LeftPress())/*鼠標左鍵盤按下*/

{

MouseGetXY();

if(MouseX280MouseX300MouseY65MouseY85)/*重新來*/

{

MouseOff();

gameAGAIN=1;

break;

}

if(MouseX190MouseX390MouseY90MouseY290)/*當前鼠標位置在格子范圍內*/

{

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);/*輸出當前格子周圍的雷數(shù)*/

setcolor(RED);

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

mineNUM--;

}

MouseOn();

Mine[i][j].num=0;/*點過的格子周圍雷數(shù)的數(shù)字變?yōu)?表示這個格子已經(jīng)用過*/

if(mineNUM1)/*勝利了*/

{

GameWin();

break;

}

}

}

}

}

if(RightPress())/*鼠標右鍵鍵盤按下*/

{

MouseGetXY();

if(MouseX190MouseX390MouseY90MouseY290)/*當前鼠標位置在格子范圍內*/

{

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

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

MouseOff();

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

{

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);

}

}

}

求一段C語言的完整代碼,復制粘貼答案后可以運行,要求如下:

#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("請輸入所需要牌戚亂的張數(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í)行結果簡仔念

希望采納!3Q!

誰有一些簡單小游戲的C語言程序?

可以學寫“貪吃蛇”代檔褲碼:

#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; ??//吃了食物的標志(1是0否)

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

struct food{ int x;? //食物的x坐標

? ? ? ? ? ? ? ?? int y;? //食物的y坐標

? ? ? ? ? ? ?? }fod; ?//結構體fod有2個成員

struct snake{ int len;? //蛇身長度

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

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

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

? ? ? ? ? ? ? ?? }snk;? //結構體snk有4個成員

void gtxy( int x,int y) ?//控制光標移動的函數(shù)

{ COORD coord;

coord.X=x;

coord.Y=y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);

}

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

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

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

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

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

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

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

{ csh( );

? while(1)

? ?? { Sleep(snk.speed);

? ? ?? keymove( );

? ? ?? putFod( );

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

? ? ? ? ? ? ? ? ? ? ? gtxy(W/2+1,H/2); printf(“游戲結鏈蠢困束!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};? //以下兩行是隱藏光標的設置

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),cursor_info);

for(i=0;i=W;i=i+2)? //橫坐標要為偶數(shù),因為這個要打印的字符占2個位置

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

? 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));? //啟動隨機數(shù)發(fā)生器srand( )

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

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

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

}

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

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

snk.len=3; ?????//蛇身長

snk.speed=350;? //刷新蛇的時間,即是移動速度

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

snk.y[0]=H/2;?? ?//蛇頭縱坐標

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

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);? //恢復默認的白字黑底

return;

}

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

{ 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為空格鍵,這兒用來暫停

? }

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

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

int i;

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

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

switch (dir)? //判斷蛇頭該往哪個方向移動,并獲取最新坐標值

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

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

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

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

}

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;? //沒吃到食物Flag的值為0

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

}

void putFod( )? //投放食物

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

??{ while (1)

??{ int i,n= 1;

???srand((unsigned)time(NULL));? //啟動隨機數(shù)發(fā)生器srand( ),接下產生食物坐標值

? ?fod.x = rand( ) % (W - 4) + 2;? //產生在游戲框范圍內的一個x坐標值

? ?fod.y = rand( ) % (H - 2) + 1;? //產生在游戲框范圍內的一個y坐標值

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

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

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

??}

? ? setColor(12, 0);

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

? }

return;

}

int Over( )? //判斷游戲是否結束的函數(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;? //沒碰到邊界及自身時就返回0

}

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

{ HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);

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

} //用來設定顏色的函數(shù)

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

掃描二維碼推送至手機訪問。

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

本文鏈接:http://www.atlasseeker.com/post/16806.html

分享給朋友:

“c語言游戲代碼大全直接復制(c語言超級簡單的小游戲代碼)” 的相關文章

北京軟件開發(fā)招聘(北京軟件程序員招聘)

北京軟件開發(fā)招聘(北京軟件程序員招聘)

本篇文章給大家談談北京軟件開發(fā)招聘,以及北京軟件程序員招聘對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、招聘軟件開發(fā)人員哪里最好又便宜 2、國內做軟件比較好的公司都有哪些? 3、2019中國工商銀行軟件開發(fā)中心社會招聘 4、北京南天軟件有限公司如何?有木有....

打鬼子撲克牌下載(打鬼子手機版下載)

打鬼子撲克牌下載(打鬼子手機版下載)

今天給各位分享打鬼子撲克牌下載的知識,其中也會對打鬼子手機版下載進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關注本站,現(xiàn)在開始吧!本文目錄一覽: 1、哪里有 打鬼子撲克游戲下載 2、恩施紙牌144張上大人怎么下載的 3、打鬼子撲克牌在哪下載 4、用電腦如何下載樸克牌小游戲 5、廣...

168開獎極速賽車騙局全過程(168極速賽車開獎的視頻)

168開獎極速賽車騙局全過程(168極速賽車開獎的視頻)

本篇文章給大家談談168開獎極速賽車騙局全過程,以及168極速賽車開獎的視頻對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、極速賽車的技巧怎么玩? 2、168極速賽車是哪個國家的 3、極速賽車買前5名的方法 4、168極速賽車來源于哪個國家 5、極速賽車有...

送真充手游(送真充手游哪個最好玩)

送真充手游(送真充手游哪個最好玩)

今天給各位分享送真充手游的知識,其中也會對送真充手游哪個最好玩進行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關注本站,現(xiàn)在開始吧!本文目錄一覽: 1、和凡人飛仙傳(無限送真充)類似手游有嗎? 2、魂斗三國(策劃送真充)手游充值有打折嗎? 3、和摸金校尉之天字卷(無限送真充)類似手游有嗎?...

手游交易平臺哪個好5173(手游交易平臺哪個好2022)

手游交易平臺哪個好5173(手游交易平臺哪個好2022)

本篇文章給大家談談手游交易平臺哪個好5173,以及手游交易平臺哪個好2022對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、游戲賬號在哪個網(wǎng)站交易比較好? 2、正規(guī)靠譜的游戲賬號交易平臺有哪些? 3、賬號交易平臺哪個好? 4、十大手游交易平臺排行榜 游戲賬號...

微信gif制作小程序(微信gif制作小程序源碼)

微信gif制作小程序(微信gif制作小程序源碼)

本篇文章給大家談談微信gif制作小程序,以及微信gif制作小程序源碼對應的知識點,希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、如何把視頻制作成gif表情包? 2、有哪些好用的gif動圖制作工具推薦?滿滿的干貨! 3、如何把短視頻做成gif動圖 如何把視頻制作成gif表情包...