cao死我好湿好紧好爽动态视屏|精选久久久久久久久久|中文无码精品一区二区三区四季|AAA国语精品刺激对白视频|

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

c語言程序游戲代碼大全(簡單的c語言游戲代碼)

軟件開放2年前 (2023-02-16)985

本篇文章給大家談?wù)刢語言程序游戲代碼大全,以及簡單的c語言游戲代碼對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。

本文目錄一覽:

求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;/*格子當(dāng)前處于什么狀態(tài),1有雷,0已經(jīng)顯示過數(shù)字或者空白格子*/

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

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

}Mine[10][10];

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

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

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

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

int Keystate;

int MouseExist;

int MouseButton;

int MouseX;

int MouseY;

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

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);/*游戲開始,重新,關(guān)閉*/

void GameBegain(void);/*游戲開始畫面*/

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

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

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

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

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

void main(void)

{

Init();

Control();

Close();

}

void Init(void)/*圖形開始*/

{

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)/*游戲開始,重新,關(guān)閉*/

{

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

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); /*鼠標(biāo)一開始的位置,并作為它的初始坐標(biāo)*/

MouseX=290;

MouseY=70;

}

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

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

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

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;/*表示沒紅旗標(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é)束畫面*/

{

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è)格子周圍的雷數(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++;

}__page_break__

return(nNUM);/*把格子周圍一共有多少雷數(shù)的統(tǒng)計(jì)結(jié)果返回*/

}

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

{

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

return;

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

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)用過這個(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)/*游戲過程*/

{

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

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

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

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

while(!kbhit())

{

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

{

MouseGetXY();

if(MouseX280MouseX300MouseY65MouseY85)/*重新來*/

{

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)/*如果格子有紅旗則左鍵無效*/

continue;

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

{

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

{

MouseOff();

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

break;

}

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

{

MouseOff();

Num=MineStatistics(i,j);

if(Num==0)/*周圍沒地雷就用遞歸算法來顯示空白格子*/

ShowWhite(i,j);

else/*按下格子周圍有地雷*/

{

sprintf(randmineNUM,"%d",Num);/*輸出當(dāng)前格子周圍的雷數(shù)*/

setcolor(RED);

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

mineNUM--;

}

MouseOn();

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

if(mineNUM1)/*勝利了*/

{

GameWin();

break;

}

}

}

}

}

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

{

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)/*本來沒紅旗現(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);

}

}

}

關(guān)于用C語言編寫的小游戲的游戲代碼,如黑白棋貪吃蛇等

我這兒有c語言的自寫俄羅斯方塊,請指教:#include

#include

#include

#include

#include

#include

#include

#define ESC 0x011b

#define UP 0x4800

#define DOWN 0x5000

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define SPACE 0x3920

#define Y 0x1579

#define N 0x316e

#define clearkbd(); while(bioskey(1)) bioskey(0); /*清空鍵盤緩沖隊(duì)列*/

void update();

void messagebox();

void process();

void initremove();

void initinfo();

void initbox();

void initposition();

void next_shape();

typedef struct shape /*形狀單一狀態(tài)的記錄*/

{ int attr;

int co[8];

}shape;

typedef struct RE_AB /*相對,絕對坐標(biāo)記錄*/

{ int Rx,Ry;

int x1,x2,y1,y2;

}RE_AB;

RE_AB RA;

shape p[19]={ { RED,0,1,1,0,1,1,2,1 }, /*數(shù)組中保證y最大的在最后,以便initposition使用*/

{ RED,0,1,1,0,1,1,1,2 },

{ RED,0,0,1,0,2,0,1,1 },

{ RED,0,0,0,1,1,1,0,2 },

{ GREEN,0,0,1,0,2,0,3,0 },

{ GREEN,0,0,0,1,0,2,0,3 },

{ CYAN,0,0,0,1,1,0,1,1 },

{ BROWN,0,0,1,0,1,1,2,1 },

{ BROWN,1,0,0,1,1,1,0,2 },

{ BLUE,1,0,2,0,1,1,0,1 },

{ BLUE,0,0,0,1,1,1,1,2 },

{ MAGENTA,0,0,0,1,0,2,1,2 },

{ MAGENTA,2,0,0,1,1,1,2,1},

{ MAGENTA,0,0,1,0,1,1,1,2 },

{ MAGENTA,0,0,0,1,1,0,2,0 },

{ YELLOW,0,2,1,0,1,1,1,2 },

{ YELLOW,0,0,1,0,2,0,2,1 },

{ YELLOW,1,0,0,0,0,1,0,2},

{ YELLOW,0,0,0,1,1,1,2,1 },

};

int nback,nleft,nright,r_f[12][22],rs1,rs2,xcors,xcorb,ycors,ycorb;

/*檢查方快有沒有左,右,下接觸,游戲區(qū)內(nèi)所有格子有無顏色記錄數(shù)組,rs1形狀記錄,rs2為提示框用,記錄小格子在游戲區(qū)中的位置,按鍵存儲*/

void interrupt (*oldint)(); /*系統(tǒng)定時(shí)中斷*/

int count_down=0,count_other=0; /*中斷記時(shí)*/

void interrupt newint() /*設(shè)置新的中斷程序*/

{ count_down++;

count_other++;

oldint();

}

void intenable() /*設(shè)置中斷向量表,啟動新的中斷程序*/

{ oldint=getvect(0x1c);

disable();

setvect(0x1c,newint);

enable();

}

void intrestore() /*恢復(fù)中斷向量*/

{ disable();

setvect(0x1c,oldint);

enable();

}

void HZ12(int x0,int y0,int w,int color,char *s) /*根據(jù)字模,在dos下顯示漢字*/

/*橫坐標(biāo),縱坐標(biāo),字間隔,漢字顏色,漢字字符串*/

{ FILE *fp;

register char buffer[24];

register char str[2];

unsigned long fpos;/*fpos為最終偏移動量*/

register int i,j,k;

fp=fopen(hzk12,r);/*打開12*12漢字苦*/

while(*s)/*一直到字符串結(jié)束為止*/

{

if(*s0)/*漢字輸出*/

{ str[0]=(*s)-0xa0;

str[1]=*(s+1)-0xa0;

fpos=((str[0]-1)*94+(str[1]-1))*24L;/*計(jì)算漢字在hzk12的偏移量*/

fseek(fp,fpos,SEEK_SET);/*指針移動到當(dāng)前位置*/

fread(buffer,24,1,fp);/*讀取一個(gè)漢字到數(shù)組中*/

for(i=0;i12;i++)/*12行*/

for(j=0;j2;j++)/*兩個(gè)字節(jié)*/

for(k=0;k8;k++)/*8位*/

if (((buffer[i*2+j](7-k))0x1)!=NULL)/*是一就畫點(diǎn)*/

putpixel(x0+8*j+k,y0+i,color);

s+=2;/*一個(gè)漢字占兩個(gè)字節(jié),現(xiàn)在將指針移動兩個(gè)字節(jié)*/

x0+=w;/*顯示坐標(biāo)也按照間隔移動*/

}

else/*顯示非漢字字符*/

{ settextstyle(0,0,1);

setcolor(color);

str[0]=*s;str[1]=0;

outtextxy(x0,y0+3,str);/*顯示單個(gè)字符*/

x0+=w-7;/*顯示單個(gè)字符后的x坐標(biāo)變化*/

s++;/*指針移動到下一個(gè)字節(jié)*/

}

}

fclose(fp);

}

void translation() /*把相對坐標(biāo)解釋為絕對坐標(biāo)*/

{ if(RA.Rx==1)

{ RA.x1=1; RA.x2=16; }

else

{ RA.x1=16*(RA.Rx-1); RA.x2=16*RA.Rx; }

if(RA.Ry==1)

{ RA.y1=1; RA.y2=16; }

else

{ RA.y1=16*(RA.Ry-1); RA.y2=16*RA.Ry; }

}

int check_b() /*檢查是否到達(dá)低部*/

{ int x,y,i,zf=0; /*zf為是否有顏色填充記錄*/

for(i=0;i7;i++,i++)

{ x=RA.Rx+p[rs1].co[i];

y=RA.Ry+p[rs1].co[i+1];

if(y=6)

zf+=r_f[x-15][y-6+1];

}

if(zf==0)

return 1;

else

return 0;

}

int finish()

{ int tfull=0,i; /*判斷頂層空間是否有填充*/

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

tfull+=r_f[i][1];

if(tfull!=0)

return 1; /*告訴judge()可以結(jié)束了*/

}

int check_l() /*檢查形狀是否與左接觸*/

{ int x,y,i,zf=0;

for(i=0;i7;i++,i++)

{ x=RA.Rx+p[rs1].co[i];

y=RA.Ry+p[rs1].co[i+1];

if(y6)

zf+=r_f[x-15-1][y-6];

if(y=6x==16)

zf+=1;

}

if(zf==0)

return 1;

else

return 0;

}

int check_r() /*檢查形狀是否與右接觸*/

{ /*zf為是否有顏色填充記錄*/

int x,y,i,zf=0; /*zf為是否有顏色填充記錄*/

for(i=0;i7;i++,i++)

{

x=RA.Rx+p[rs1].co[i];

y=RA.Ry+p[rs1].co[i+1];

if(y6)

zf+=r_f[x-15+1][y-6];

if(y=6x==25)

zf+=1;

}

if(zf==0)

return 1;

else

return 0;

}

void check_touch()

{ nback=check_b();

nleft=check_l();

nright=check_r();

}

void draw(int cb) /*畫形狀,cb=1以填充色畫形狀,cb=2以背景色畫形狀,cb=3以白色畫形狀*/

{ int i,recordx=RA.Rx,recordy=RA.Ry;

for(i=0;i7;i++,i++)

{ RA.Rx+=p[rs1].co[i];

RA.Ry+=p[rs1].co[i+1];

if(RA.Ry=6)

{ RA.Rx=recordx;

RA.Ry=recordy;

continue;

}

translation();

if(cb==1)

setfillstyle(1,p[rs1].attr);

else

if(cb==2)

setfillstyle(1,BLACK);

else

if(cb==3)

{ setfillstyle(1,WHITE);

r_f[RA.Rx-15][RA.Ry-6]=1; /*置對應(yīng)數(shù)組標(biāo)記元素*/

}

bar(RA.x1+1,RA.y1+1,RA.x2-1,RA.y2-1);

RA.Rx=recordx;

RA.Ry=recordy;

}

}

void mov(int key) /*向下,左,右移動方塊*/

{ draw(2);

if(key==LEFTnleft)

RA.Rx--;

else

if(key==RIGHTnright)

RA.Rx++;

else

RA.Ry++;

nback=check_b();

if(nback) /*判斷形狀有沒有到達(dá)底部,有就將其顏色變?yōu)榘咨?/

draw(1);

else

draw(3);

}

void change() /*變換形狀*/

{ int status=rs1,buffer,i,x,y,zf=0;

if(p[rs1].attr==p[rs1+1].attr)

rs1++;

else

while(p[rs1].attr==p[rs1-1].attr)

rs1--;

for(i=0;i7;i++,i++) /*檢查變化形狀后是否與已存形狀發(fā)生沖突*/

{ x=RA.Rx+p[rs1].co[i];

y=RA.Ry+p[rs1].co[i+1];

if(y6)

zf+=r_f[x-15][y-6];

}

if(zf!=0)

rs1=status;

buffer=rs1;

rs1=status;

status=buffer;

draw(2);

buffer=rs1;

rs1=status;

status=buffer;

nback=check_b(); /*判斷變化后的形狀是不是到達(dá)了低部,這個(gè)檢查是十分必要的*/

if(nback)

draw(1);

else

draw(3);

}

void accelerate()

{ if(count_down=1)

{ check_touch(); /*消除上一步動作對方塊狀態(tài)的影響*/

count_down=0;

if(nback) /*0表示到達(dá)底部,1表示沒有到達(dá)*/

mov(DOWN);

}

}

void drawbox() /*畫方塊所在方框*/

{ int xcor,ycor;

for(xcor=xcors;xcor=xcorb;xcor++)

for(ycor=ycors;ycor=ycorb;ycor++)

{ if(xcor==xcors||xcor==xcorb||ycor==ycors||ycor==ycorb)

{ RA.Rx=xcor;

RA.Ry=ycor;

translation();

setfillstyle(1,DARKGRAY);

bar(RA.x1+1,RA.y1+1,RA.x2-1,RA.y2-1);

}

}

}

void erasure(int k)

{ int i,j,recordx=RA.Rx,recordy=RA.Ry;

{ j=k-1;

for(;j0;j--)

{ for(i=1;i11;i++)

{ r_f[i][j+1]=r_f[i][j];

RA.Rx=i+15;

RA.Ry=j+1+6;

translation();

if(r_f[i][j+1]==1)

setfillstyle(1,WHITE);

else

setfillstyle(1,BLACK);

bar(RA.x1+1,RA.y1+1,RA.x2-1,RA.y2-1);

RA.Rx=recordx;

RA.Ry=recordy;

}

}

}

}

void pause()

{ HZ12(450,400,15,BLACK,正常);

HZ12(450,400,15,GREEN,暫停);

for()

if(bioskey(1)bioskey(0)==SPACE)

{ clearkbd();

HZ12(450,400,15,BLACK,暫停);

HZ12(450,400,15,RED,正常);

return;

}

}

void judge()

{ int i,j,full=0; /*full等于10說明某一行滿,該消除了*/

if(finish()) /*判斷游戲是否該結(jié)束了*/

messagebox(); /*win編程里有這個(gè)函數(shù)*/

for(j=1;j21;j++) /*判斷某一行是否滿了*/

{ for(i=1;i11;i++)

full+=r_f[i][j];

if(full==10)

erasure(j); /*消除這行*/

full=0;

}

}

void update() /*使程序可以重新運(yùn)行*/

{ cleardevice();

setbkcolor(BLACK);

initinfo(); /*提示信息初始化*/

initbox(); /*游戲框架初始化*/

srand((unsigned)time(NULL)); /*隨機(jī)器函數(shù)的初始化*/

rs1=random(19);

rs2=random(19);

next_shape();

initposition(); /*方塊最開始的出現(xiàn)位置*/

initremove(); /*記錄每個(gè)方格有無顏色填充數(shù)組初始化*/

HZ12(450,400,15,RED,正常);

process();

}

void EXIT()

{ closegraph();

intrestore(); /*恢復(fù)中斷向量*/

exit(0);

}

void initremove()

{ int i,j;

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

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

if(i==0||i==11||j==0||j==21)

r_f[i][j]=1;

else

r_f[i][j]=0;

}

void initinfo()

{ char aStr[2];

setcolor(RED);

outtextxy(450,100,This game's writer is:);

HZ12(450,140,15,RED,該程序作者:NULL);

outtextxy(525,110,NULL);

outtextxy(450,180,FUNCTION FOR KEYS:);

outtextxy(450,200,UP:change the shape);

outtextxy(450,210,DOWN:accelerate);

outtextxy(450,220,LEFT:move left);

outtextxy(450,230,RIGHT:move right);

outtextxy(450,240,ESC:exit this game);

outtextxy(450,250,SPACE:pause);

HZ12(450,260,20,RED,上:);

HZ12(450,280,20,RED,下:);

HZ12(450,300,20,RED,左:);

HZ12(450,320,20,RED,右:);

HZ12(450,340,20,RED,ESC:退出);

HZ12(450,360,15,RED,空格: 暫停/開始);

HZ12(450,380,15,RED,目前狀態(tài):);

HZ12(20,200,15,RED,下一個(gè)形狀);

aStr[0]=24;

aStr[1]=0;

aStr[6]=0;

HZ12(480,260,12,GREEN,aStr);

HZ12(500,260,12,GREEN,( 變形 ));

aStr[0]=25;

aStr[1]=0;

HZ12(480,280,12,GREEN,aStr);

HZ12(500,280,12,GREEN,( 加速 ));

aStr[0]=27;

aStr[1]=0;

HZ12(480,300,12,GREEN,aStr);

HZ12(500,300,12,GREEN,向左);

aStr[0]=26;

aStr[1]=0;

HZ12(480,320,12,GREEN,aStr);

HZ12(500,320,12,GREEN,向右);

}

void messagebox()

{ int key;

setcolor(GREEN);

setfillstyle(1,DARKGRAY);

rectangle(220,200,420,300);

bar(221,201,419,299);

HZ12(280,210,15,GREEN,GAME OVER);

HZ12(275,230,15,GREEN,重新游戲: Y);

HZ12(275,270,15,GREEN,退出游戲: N);

HZ12(450,400,15,BLACK,正常);

HZ12(450,400,15,GREEN,GAME OVER);

for()

if(bioskey(1))

{ key=bioskey(0);

if(key==Y)

{ clearkbd();

update();

}

else

if(key==N)

{ clearkbd();

EXIT();

}

else

clearkbd();

}

}

void initbox()

{ xcors=15; /*畫游戲框*/

xcorb=26;

ycors=6;

ycorb=27;

drawbox();

xcors=2; /*畫提示框*/

xcorb=7;

ycors=6;

ycorb=11;

drawbox();

}

void initposition()

{ RA.Rx=18;

RA.Ry=6-p[rs1].co[7]

RA.x1=0;

RA.x2=0;

RA.y1=0;

RA.y2=0;

}

void next_shape() /*畫下一形狀提示框*/

{ int recordx=RA.Rx,recordy=RA.Ry,buffer;

RA.Rx=3;

RA.Ry=7;

draw(2);

buffer=rs1;

rs1=rs2;

rs2=buffer;

draw(1);

RA.Rx=recordx;

RA.Ry=recordy;

buffer=rs1;

rs1=rs2;

rs2=buffer;

}

void process() /*游戲過程*/

{ for()

{ check_touch();

if(!nback)

{ rs1=rs2;

rs2=random(19); /*產(chǎn)生另一種方塊的碼數(shù)*/

initposition();

judge(); /*判斷某一行是否滿了和這個(gè)游戲是否可以結(jié)束了*/

draw(1);

next_shape();

}

if(count_other=1)

{ count_other=0;

if(bioskey(1)) /*對按鍵的處理*/

{ int key=bioskey(0);

clearkbd(); /*清除鍵盤緩沖隊(duì)列*/

if(key==ESC)

EXIT();

if(key==LEFTnleftnback)

mov(LEFT);

if(key==RIGHTnrightnback)

mov(RIGHT);

if(key==UPnback)

change();

if(key==SPACE)

pause();

if(key==DOWN)

accelerate();

}

}

if(count_down=4)

{ check_touch(); /*消除上一步動作對方塊狀態(tài)的影響*/

count_down=0;

if(nback) /*0表示到達(dá)底部,1表示沒有到達(dá)*/

mov(DOWN);

}

}/*for*/

}

main()

{ int gdriver=DETECT,gmode=0;

initgraph(gdriver,gmode,d:turboc); /*啟動圖形與中斷部分*/

intenable();

update();

}

求C語言小游戲源程序

我的樓主可以自己玩一下

試試吧

#define N 200

#include graphics.h

#include stdlib.h

#include dos.h

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

int i,key;

int score=0;/*得分*/

int gamespeed=50000;/*游戲速度自己調(diào)整*/

struct Food

{

int x;/*食物的橫坐標(biāo)*/

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

int yes;/*判斷是否要出現(xiàn)食物的變量*/

}food;/*食物的結(jié)構(gòu)體*/

struct Snake

{

int x[N];

int y[N];

int node;/*蛇的節(jié)數(shù)*/

int direction;/*蛇移動方向*/

int life;/* 蛇的生命,0活著,1死亡*/

}snake;

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

void Close(void);/*圖形結(jié)束*/

void DrawK(void);/*開始畫面*/

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

void GamePlay(void);/*玩游戲具體過程*/

void PrScore(void);/*輸出成績*/

/*主函數(shù)*/

void main(void)

{

Init();/*圖形驅(qū)動*/

DrawK();/*開始畫面*/

GamePlay();/*玩游戲具體過程*/

Close();/*圖形結(jié)束*/

}

/*圖形驅(qū)動*/

void Init(void)

{

int gd=DETECT,gm;

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

cleardevice();

}

/*開始畫面,左上角坐標(biāo)為(50,40),右下角坐標(biāo)為(610,460)的圍墻*/

void DrawK(void)

{

/*setbkcolor(LIGHTGREEN);*/

setcolor(11);

setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*設(shè)置線型*/

for(i=50;i=600;i+=10)/*畫圍墻*/

{

rectangle(i,40,i+10,49); /*上邊*/

rectangle(i,451,i+10,460);/*下邊*/

}

for(i=40;i=450;i+=10)

{

rectangle(50,i,59,i+10); /*左邊*/

rectangle(601,i,610,i+10);/*右邊*/

}

}

/*玩游戲具體過程*/

void GamePlay(void)

{

randomize();/*隨機(jī)數(shù)發(fā)生器*/

food.yes=1;/*1表示需要出現(xiàn)新食物,0表示已經(jīng)存在食物*/

snake.life=0;/*活著*/

snake.direction=1;/*方向往右*/

snake.x[0]=100;snake.y[0]=100;/*蛇頭*/

snake.x[1]=110;snake.y[1]=100;

snake.node=2;/*節(jié)數(shù)*/

PrScore();/*輸出得分*/

while(1)/*可以重復(fù)玩游戲,壓ESC鍵結(jié)束*/

{

while(!kbhit())/*在沒有按鍵的情況下,蛇自己移動身體*/

{

if(food.yes==1)/*需要出現(xiàn)新食物*/

{

food.x=rand()%400+60;

food.y=rand()%350+60;

while(food.x%10!=0)/*食物隨機(jī)出現(xiàn)后必須讓食物能夠在整格內(nèi),這樣才可以讓蛇吃到*/

food.x++;

while(food.y%10!=0)

food.y++;

food.yes=0;/*畫面上有食物了*/

}

if(food.yes==0)/*畫面上有食物了就要顯示*/

{

setcolor(GREEN);

rectangle(food.x,food.y,food.x+10,food.y-10);

}

for(i=snake.node-1;i0;i--)/*蛇的每個(gè)環(huán)節(jié)往前移動,也就是貪吃蛇的關(guān)鍵算法*/

{

snake.x[i]=snake.x[i-1];

snake.y[i]=snake.y[i-1];

}

/*1,2,3,4表示右,左,上,下四個(gè)方向,通過這個(gè)判斷來移動蛇頭*/

switch(snake.direction)

{

case 1:snake.x[0]+=10;break;

case 2: snake.x[0]-=10;break;

case 3: snake.y[0]-=10;break;

case 4: snake.y[0]+=10;break;

}

for(i=3;isnake.node;i++)/*從蛇的第四節(jié)開始判斷是否撞到自己了,因?yàn)樯哳^為兩節(jié),第三節(jié)不可能拐過來*/

{

if(snake.x[i]==snake.x[0]snake.y[i]==snake.y[0])

{

GameOver();/*顯示失敗*/

snake.life=1;

break;

}

}

if(snake.x[0]55||snake.x[0]595||snake.y[0]55||

snake.y[0]455)/*蛇是否撞到墻壁*/

{

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

snake.life=1; /*蛇死*/

}

if(snake.life==1)/*以上兩種判斷以后,如果蛇死就跳出內(nèi)循環(huán),重新開始*/

break;

if(snake.x[0]==food.xsnake.y[0]==food.y)/*吃到食物以后*/

{

setcolor(0);/*把畫面上的食物東西去掉*/

rectangle(food.x,food.y,food.x+10,food.y-10);

snake.x[snake.node]=-20;snake.y[snake.node]=-20;

/*新的一節(jié)先放在看不見的位置,下次循環(huán)就取前一節(jié)的位置*/

snake.node++;/*蛇的身體長一節(jié)*/

food.yes=1;/*畫面上需要出現(xiàn)新的食物*/

score+=10;

PrScore();/*輸出新得分*/

}

setcolor(4);/*畫出蛇*/

for(i=0;isnake.node;i++)

rectangle(snake.x[i],snake.y[i],snake.x[i]+10,

snake.y[i]-10);

delay(gamespeed);

setcolor(0);/*用黑色去除蛇的的最后一節(jié)*/

rectangle(snake.x[snake.node-1],snake.y[snake.node-1],

snake.x[snake.node-1]+10,snake.y[snake.node-1]-10);

} /*endwhile(!kbhit)*/

if(snake.life==1)/*如果蛇死就跳出循環(huán)*/

break;

key=bioskey(0);/*接收按鍵*/

if(key==ESC)/*按ESC鍵退出*/

break;

else

if(key==UPsnake.direction!=4)

/*判斷是否往相反的方向移動*/

snake.direction=3;

else

if(key==RIGHTsnake.direction!=2)

snake.direction=1;

else

if(key==LEFTsnake.direction!=1)

snake.direction=2;

else

if(key==DOWNsnake.direction!=3)

snake.direction=4;

}/*endwhile(1)*/

}

/*游戲結(jié)束*/

void GameOver(void)

{

cleardevice();

PrScore();

setcolor(RED);

settextstyle(0,0,4);

outtextxy(200,200,"GAME OVER");

getch();

}

/*輸出成績*/

void PrScore(void)

{

char str[10];

setfillstyle(SOLID_FILL,YELLOW);

bar(50,15,220,35);

setcolor(6);

settextstyle(0,0,2);

sprintf(str,"score:%d",score);

outtextxy(55,20,str);

}

/*圖形結(jié)束*/

void Close(void)

{

getch();

closegraph();

}

用C語言編寫的小游戲代碼是什么?

/*也不知道你是什么級別的,我是一個(gè)新手,剛接觸編程語言,以下是我自己變得一個(gè)小程序,在所有c語言的編譯器(vc++6.0、turbo????)上都能運(yùn)行,你還可以進(jìn)一步改進(jìn)。這是一個(gè)類似貪吃蛇的小游戲。祝你好運(yùn)*/\x0d\x0a/*貪吃蛇*/\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0a#include\x0d\x0aint head=3 ,tail=0;\x0d\x0aint main()\x0d\x0a{\x0d\x0aint i,j,k=0;\x0d\x0aint zuobiao[2][80];\x0d\x0along start;\x0d\x0aint direction=77;\x0d\x0aint gamespeed;\x0d\x0aint timeover;\x0d\x0aint change(char qipan[20][80],int zuobiao[2][80],char direction);\x0d\x0azuobiao[0][tail]=1;zuobiao[1][tail]=1;zuobiao[0][1]=1;zuobiao[1][1]=2;zuobiao[0][2]=1;zuobiao[1][2]=3;zuobiao[0][head]=1;zuobiao[1][head]=4;\x0d\x0a/*處理棋盤*/\x0d\x0achar qipan[20][80];//定義棋盤\x0d\x0afor(i=0;i for(j=0;jqipan[i][j]=' ';//初始化棋盤\x0d\x0afor(i=0;iqipan[0][i]='_';\x0d\x0afor(i=0;iqipan[i][0]='|';\x0d\x0afor(i=0;iqipan[i][79]='|';\x0d\x0afor(i=0;iqipan[19][i]='_';\x0d\x0aqipan[1][1]=qipan[1][2]=qipan[1][3]='*';//初始化蛇的位置\x0d\x0aqipan[1][4]='#';\x0d\x0aprintf("This is a game of a SNAKE.\nGOOD LUCK TO YOU !\n");\x0d\x0aprintf("Input your game speed,please.(e.g.300)\n");\x0d\x0ascanf("%d",gamespeed);\x0d\x0a\x0d\x0awhile(direction!='q')\x0d\x0a{\x0d\x0asystem("cls");\x0d\x0afor(i=0;ifor(j=0;jprintf("%c",qipan[i][j]);\x0d\x0atimeover=1;\x0d\x0astart=clock();\x0d\x0awhile(!kbhit()(timeover=clock()-startif(timeover)\x0d\x0a{\x0d\x0agetch();\x0d\x0adirection=getch();\x0d\x0a}\x0d\x0aelse\x0d\x0adirection=direction;\x0d\x0aif(!(direction==72||direction==80||direction==75||direction==77))\x0d\x0a{\x0d\x0areturn 0;\x0d\x0asystem("cls");\x0d\x0aprintf("GAME OVER!\n");\x0d\x0a}\x0d\x0aif(!change(qipan,zuobiao,direction))\x0d\x0a{\x0d\x0adirection='q';\x0d\x0asystem("cls");\x0d\x0aprintf("GAME OVER!\n");\x0d\x0a}\x0d\x0a}\x0d\x0areturn 0;\x0d\x0a}\x0d\x0aint change(char qipan[20][80],int zuobiao[2][80],char direction)\x0d\x0a{\x0d\x0aint x,y;\x0d\x0aif(direction==72)\x0d\x0ax=zuobiao[0][head]-1;y=zuobiao[1][head];\x0d\x0aif(direction==80)\x0d\x0ax=zuobiao[0][head]+1;y=zuobiao[1][head];\x0d\x0aif(direction==75)\x0d\x0ax=zuobiao[0][head];y=zuobiao[0][head]-1;\x0d\x0aif(direction==77)\x0d\x0ax=zuobiao[0][head];y=zuobiao[1][head]+1;\x0d\x0aif(x==0||x==18||y==78||y==0)\x0d\x0areturn 0;\x0d\x0aif(qipan[x][y]!=' ')\x0d\x0areturn 0;\x0d\x0aqipan[zuobiao[0][tail]][zuobiao[1][tail]]=' ';\x0d\x0atail=(tail+1)%80;\x0d\x0aqipan[zuobiao[0][head]][zuobiao[1][head]]='*';\x0d\x0ahead=(head+1)%80;\x0d\x0azuobiao[0][head]=x;\x0d\x0azuobiao[1][head]=y;\x0d\x0aqipan[zuobiao[0][head]][zuobiao[1][head]]='#';\x0d\x0areturn 1;\x0d\x0a}

求幾C語言個(gè)小游戲代碼,簡單的,要注釋、、謝謝了、

// Calcu24.cpp : Defines the entry point for the console application.

//

/*

6-6

24點(diǎn)游戲

*/

#include "conio.h"

#include "stdlib.h"

#include "time.h"

#include "math.h"

#include "string.h"/*

從一副撲克牌中,任取4張。

2-10 按其點(diǎn)數(shù)計(jì)算(為了表示方便10用T表示),J,Q,K,A 統(tǒng)一按 1 計(jì)算

要求通過加減乘除四則運(yùn)算得到數(shù)字 24。

本程序可以隨機(jī)抽取紙牌,并用試探法求解。

*/void GivePuzzle(char* buf)

{

char card[] = {'A','2','3','4','5','6','7','8','9','T','J','Q','K'}; for(int i=0; i4; i++){

buf[i] = card[rand() % 13];

}

}

void shuffle(char * buf)

{

for(int i=0; i5; i++){

int k = rand() % 4;

char t = buf[k];

buf[k] = buf[0];

buf[0] = t;

}

}

int GetCardValue(int c)

{

if(c=='T') return 10;

if(c='0' c='9') return c - '0';

return 1;

}

char GetOper(int n)

{

switch(n)

{

case 0:

return '+';

case 1:

return '-';

case 2:

return '*';

case 3:

return '/';

} return ' ';

}double MyCalcu(double op1, double op2, int oper)

{

switch(oper)

{

case 0:

return op1 + op2;

case 1:

return op1 - op2;

case 2:

return op1 * op2;

case 3:

if(fabs(op2)0.0001)

return op1 / op2;

else

return 100000;

} return 0;

}

void MakeAnswer(char* answer, int type, char* question, int* oper)

{

char p[4][3];

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

{

if( question[i] == 'T' )

strcpy(p[i], "10");

else

sprintf(p[i], "%c", question[i]);

}

switch(type)

{

case 0:

sprintf(answer, "%s %c (%s %c (%s %c %s))",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 1:

sprintf(answer, "%s %c ((%s %c %s) %c %s)",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 2:

sprintf(answer, "(%s %c %s) %c (%s %c %s)",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 3:

sprintf(answer, "((%s %c %s) %c %s) %c %s",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

case 4:

sprintf(answer, "(%s %c (%s %c %s)) %c %s",

p[0], GetOper(oper[0]), p[1], GetOper(oper[1]), p[2], GetOper(oper[2]), p[3]);

break;

}

}

bool TestResolve(char* question, int* oper, char* answer)

{

// 等待考生完成

int type[5]={0,1,2,3,4};//計(jì)算類型

double p[4];

double sum=0;

//

for(int i=0; i4; i++) //循環(huán)取得點(diǎn)數(shù)

{

p[i]=GetCardValue(int(question[i]));

} for(i=0;i5;i++)

{

MakeAnswer(answer,type[i],question,oper); //獲取可能的答案

switch(type[i])

{

case 0:

sum=MyCalcu(p[0],MyCalcu( p[1],MyCalcu(p[2], p[3], oper[2]),oper[1]),oper[0]); //A*(B*(c*D))

break;

case 1:

sum=MyCalcu(p[0],MyCalcu(MyCalcu(p[1], p[2], oper[1]),p[3],oper[2]),oper[0]); //A*((B*C)*D)

break;

case 2:

sum=MyCalcu(MyCalcu(p[0], p[1], oper[0]),MyCalcu(p[2], p[3], oper[2]),oper[1]); // (A*B)*(C*D)

break;

case 3:

sum=MyCalcu(MyCalcu(MyCalcu(p[0], p[1], oper[0]),p[2],oper[1]),p[3],oper[2]); //((A*B)*C)*D

break;

case 4:

sum=MyCalcu(MyCalcu(p[0],MyCalcu(p[1], p[2], oper[1]),oper[0]),p[3],oper[2]); //(A*(B*C))*D

break;

}

if(sum==24) return true;

}

return false;

}

/*

采用隨機(jī)試探法:就是通過隨機(jī)數(shù)字產(chǎn)生 加減乘除的 組合,通過大量的測試來命中的解法

提示:

1. 需要考慮用括號控制計(jì)算次序的問題 比如:( 10 - 4 ) * ( 3 + A ), 實(shí)際上計(jì)算次序的數(shù)目是有限的:

A*(B*(c*D))

A*((B*C)*D)

(A*B)*(C*D)

((A*B)*C)*D

(A*(B*C))*D

2. 需要考慮計(jì)算結(jié)果為分?jǐn)?shù)的情況:( 3 + (3 / 7) ) * 7

3. 題目中牌的位置可以任意交換

*/

bool TryResolve(char* question, char* answer)

{

int oper[3]; // 存儲運(yùn)算符,0:加法 1:減法 2:乘法 3:除法

for(int i=0; i1000 * 1000; i++)

{

// 打亂紙牌順序

shuffle(question);

// 隨機(jī)產(chǎn)生運(yùn)算符

for(int j=0; j3; j++)

oper[j] = rand() % 4; if( TestResolve(question, oper, answer) ) return true;

} return false;

}

int main(int argc, char* argv[])

{

// 初始化隨機(jī)種子

srand( (unsigned)time( NULL ) ); char buf1[4]; // 題目

char buf2[30]; // 解答

printf("***************************\n");

printf("計(jì)算24\n");

printf("A J Q K 均按1計(jì)算,其它按牌點(diǎn)計(jì)算\n");

printf("目標(biāo)是:通過四則運(yùn)算組合出結(jié)果:24\n");

printf("***************************\n\n");

for()

{

GivePuzzle(buf1); // 出題

printf("題目:");

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

if( buf1[j] == 'T' )

printf("10 ");

else

printf("%c ", buf1[j]);

} printf("\n按任意鍵參考答案...\n");

getch(); if( TryResolve(buf1, buf2) ) // 解題

printf("參考:%s\n", buf2);

else

printf("可能是無解...\n"); printf("按任意鍵出下一題目,x 鍵退出...\n");

if( getch() == 'x' ) break;

} return 0;

}

c語言程序游戲代碼大全的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于簡單的c語言游戲代碼、c語言程序游戲代碼大全的信息別忘了在本站進(jìn)行查找喔。

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

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

本文鏈接:http://m.smallwaterjetsystem.com/post/8658.html

“c語言程序游戲代碼大全(簡單的c語言游戲代碼)” 的相關(guān)文章

商丘軟件開發(fā)(商丘軟件公司)

商丘軟件開發(fā)(商丘軟件公司)

本篇文章給大家談?wù)勆糖疖浖_發(fā),以及商丘軟件公司對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、商丘星集網(wǎng)絡(luò)是詐騙嗎 2、商丘淘樂網(wǎng)絡(luò)科技有限公司怎么樣? 3、商丘盛安電子科技有限公司怎么樣? 4、學(xué)計(jì)算機(jī)的做軟件做網(wǎng)站開發(fā)的在商丘能找到工作嗎 5、商丘萬...

軟件開發(fā)培訓(xùn)學(xué)校(軟件開發(fā)培訓(xùn)學(xué)校排名)

軟件開發(fā)培訓(xùn)學(xué)校(軟件開發(fā)培訓(xùn)學(xué)校排名)

本篇文章給大家談?wù)勡浖_發(fā)培訓(xùn)學(xué)校,以及軟件開發(fā)培訓(xùn)學(xué)校排名對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、北京有哪些比較好的軟件開發(fā)培訓(xùn)學(xué)校 2、游戲軟件開發(fā)培訓(xùn)學(xué)校哪個(gè)比較有名? 3、軟件開發(fā)培訓(xùn)班好的有哪些? 北京有哪些比較好的軟件開發(fā)培訓(xùn)學(xué)校 北京的軟件...

濟(jì)南軟件開發(fā)(濟(jì)南軟件開發(fā)公司有哪些)

濟(jì)南軟件開發(fā)(濟(jì)南軟件開發(fā)公司有哪些)

本篇文章給大家談?wù)劃?jì)南軟件開發(fā),以及濟(jì)南軟件開發(fā)公司有哪些對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、濟(jì)南有沒有好的做軟件開發(fā)的公司? 2、濟(jì)南軟件開發(fā)培訓(xùn)哪家好 3、軟件開發(fā)哪家好? 濟(jì)南有沒有好的做軟件開發(fā)的公司? 濟(jì)南有沒有好的做軟件開發(fā)的公司很多人想...

LOL手游怎么賣號(lol手游賣號吧)

LOL手游怎么賣號(lol手游賣號吧)

本篇文章給大家談?wù)凩OL手游怎么賣號,以及l(fā)ol手游賣號吧對應(yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、英雄聯(lián)盟手游賬號好賣么 2、請問lol手游怎么租號? 3、5173怎么賣LOL號?就是在提交賬號信息前要做什么?要解除什么?密碼要嗎?怎么弄啊 4、lol...

阿拉德之怒差不多的游戲(跟阿拉德之怒差不多的游戲)

阿拉德之怒差不多的游戲(跟阿拉德之怒差不多的游戲)

本篇文章給大家談?wù)劙⒗轮畈欢嗟挠螒?,以及跟阿拉德之怒差不多的游戲?qū)?yīng)的知識點(diǎn),希望對各位有所幫助,不要忘了收藏本站喔。 本文目錄一覽: 1、請問一下勇士守護(hù)者和阿拉德之怒一樣嗎 2、阿拉德之怒停服了還有什么類似的嗎 3、有沒有類似dnf的手游? 4、各位大神有沒有好玩的格斗游戲類似...

DAM交易平臺(dam交易平臺會倒貼錢嗎)

DAM交易平臺(dam交易平臺會倒貼錢嗎)

今天給各位分享DAM交易平臺的知識,其中也會對dam交易平臺會倒貼錢嗎進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧!本文目錄一覽: 1、福田DAM16KR發(fā)動機(jī)參數(shù) 2、長安4G15S和DAm15KR發(fā)動機(jī)哪個(gè)好? 3、ops是什么意思? 4、It審計(jì)軟件知道有哪...