欧美中文字幕一区二区三区亚洲_在线成人直播_国产精品玖玖玖在线资源_久久99最新地址

游戲產(chǎn)業(yè)研究網(wǎng)

求C++小游戲源代碼啊~

以下是貪吃蛇源代碼:

#include<iostream.h>

#include<windows.h>

#include<time.h>

#include<stdlib.h>

#include<conio.h>

#define N 21

void gotoxy(int x,int y)//位置函數(shù)

{

COORD pos;

pos.X=2*x;

pos.Y=y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);

}

void color(int a)//顏色函數(shù)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);

}

void init(int apple[2])//初始化函數(shù)(初始化圍墻、顯示信息、蘋果)

{

int i,j;//初始化圍墻

int wall[N+2][N+2]={{0}};

for(i=1;i<=N;i++)

{

for(j=1;j<=N;j++)

wall[i][j]=1;

}

color(11);

for(i=0;i<N+2;i++)

{

for(j=0;j<N+2;j++)

{

if(wall[i][j])

cout<<■;

else cout<<□ ;

}

cout<<endl;

}

gotoxy(N+3,1);//顯示信息

color(20);

cout<<按 W S A D 移動方向<<endl;

gotoxy(N+3,2);

color(20);

cout<<按任意鍵暫停<<endl;

gotoxy(N+3,3);

color(20);

cout<<得分:<<endl;

apple[0]=rand()%N+1;//蘋果

apple[1]=rand()%N+1;

gotoxy(apple[0],apple[1]);

color(12);

cout<<●<<endl;

}

int main()

{

int i,j;

int** snake=NULL;

int apple[2];

int score=0;

int tail[2];

int len=3;

char ch='p';

srand((unsigned)time(NULL));

init(apple);

snake=(int**)realloc(snake,sizeof(int*)*len);

for(i=0;i<len;i++)

snake[i]=(int*)malloc(sizeof(int)*2);

for(i=0;i<len;i++)

{

snake[i][0]=N/2;

snake[i][1]=N/2+i;

gotoxy(snake[i][0],snake[i][1]);

color(14);

cout<<★<<endl;

}

while(1)//進(jìn)入消息循環(huán)

{

tail[0]=snake[len-1][0];

tail[1]=snake[len-1][1];

gotoxy(tail[0],tail[1]);

color(11);

cout<<■<<endl;

for(i=len-1;i>0;i--)

{

snake[i][0]=snake[i-1][0];

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

gotoxy(snake[i][0],snake[i][1]);

color(14);

cout<<★<<endl;

}

if(kbhit())

{

gotoxy(0,N+2);

ch=getche();

}

switch(ch)

{

case 'w':snake[0][1]--;break;

case 's':snake[0][1]++;break;

case 'a':snake[0][0]--;break;

case 'd':snake[0][0]++;break;

default: break;

}

gotoxy(snake[0][0],snake[0][1]);

color(14);

cout<<★<<endl;

Sleep(abs(200-0.5*score));

if(snake[0][0]==apple[0]&&snake[0][1]==apple[1])//吃掉蘋果后蛇分?jǐn)?shù)加1,蛇長加1

{

score++;

len++;

snake=(int**)realloc(snake,sizeof(int*)*len);

snake[len-1]=(int*)malloc(sizeof(int)*2);

apple[0]=rand()%N+1;

apple[1]=rand()%N+1;

gotoxy(apple[0],apple[1]);

color(12);

cout<<●<<endl;

gotoxy(N+5,3);

color(20);

cout<<score<<endl;

}

if(snake[0][1]==0||snake[0][1]==N||snake[0][0]==0||snake[0][0]==N)//撞到圍墻后失敗

{

gotoxy(N/2,N/2);

color(30);

cout<<失敗!!!<<endl;

for(i=0;i<len;i++)

free(snake[i]);

Sleep(INFINITE);

exit(0);

}

}

return 0;

}

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

要源碼的,在評論里打個(gè)@,我先去做

#include<iostream>

#include<windows.h>

#include<conio.h>

#include<time.h>

#include<string>

using namespace std;

ypedef struct Frame

{

COORD position[2];

int flag;

}Frame;

void SetPos(COORD a)// set cursor

{

HANDLE out=GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleCursorPosition(out, a);

}

void SetPos(int i, int j)// set cursor

{

COORD pos={i, j};

SetPos(pos);

}

void HideCursor()

{

CONSOLE_CURSOR_INFO cursor_info = {1, 0};

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);

}

//把第y行,[x1, x2) 之間的坐標(biāo)填充為 ch

void drawRow(int y, int x1, int x2, char ch)

{

SetPos(x1,y);

for(int i = 0; i <= (x2-x1); i++)

cout<<ch;

}

//在a, b 縱坐標(biāo)相同的前提下,把坐標(biāo) [a, b] 之間填充為 ch

void drawRow(COORD a, COORD b, char ch)

{

if(a.Y == b.Y)

drawRow(a.Y, a.X, b.X, ch);

else

{

SetPos(0, 25);

cout<<error code 01:無法填充行,因?yàn)閮蓚€(gè)坐標(biāo)的縱坐標(biāo)(x)不相等;

system(pause);

}

}

//把第x列,[y1, y2] 之間的坐標(biāo)填充為 ch

void drawCol(int x, int y1, int y2, char ch)

{

int y=y1;

while(y!=y2+1)

{

SetPos(x, y);

cout<<ch;

y++;

}

}

//在a, b 橫坐標(biāo)相同的前提下,把坐標(biāo) [a, b] 之間填充為 ch

void drawCol(COORD a, COORD b, char ch)

{

if(a.X == b.X)

drawCol(a.X, a.Y, b.Y, ch);

else

{

SetPos(0, 25);

cout<<error code 02:無法填充列,因?yàn)閮蓚€(gè)坐標(biāo)的橫坐標(biāo)(y)不相等;

system(pause);

}

}

void drawFrame(COORD a, COORD b, char row, char col)

{

drawRow(a.Y, a.X+1, b.X-1, row);

drawRow(b.Y, a.X+1, b.X-1, row);

drawCol(a.X, a.Y+1, b.Y-1, col);

drawCol(b.X, a.Y+1, b.Y-1, col);

}

void drawFrame(int x1, int y1, int x2, int y2, char row, char col)

{

COORD a={x1, y1};

COORD b={x2, y2};

drawFrame(a, b, row, col);

}

void drawFrame(Frame frame, char row, char col)

{

COORD a = frame.position[0];

COORD b = frame.position[1];

drawFrame(a, b, row, col);

}

void drawPlaying()

{

drawFrame(0, 0, 48, 24, '=', '|');// draw map frame;

drawFrame(49, 0, 79, 4, '-', '|');// draw output frame

drawFrame(49, 4, 79, 9, '-', '|');// draw score frame

drawFrame(49, 9, 79, 20, '-', '|');// draw operate frame

drawFrame(49, 20, 79, 24, '-', '|');// draw other message frame

SetPos(52, 6);

cout<<得分:;

SetPos(52, 7);

cout<<稱號:;

SetPos(52,10);

cout<<操作方式:;

SetPos(52,12);

cout<< a,s,d,w 控制戰(zhàn)機(jī)移動。;

SetPos(52,14);

cout<< p 暫停游戲。;

SetPos(52,16);

cout<< e 退出游戲。;

}

int random(int a, int b)

{

int c=(rand() % (a-b))+ a;

return c;

}

COORD random(COORD a, COORD b)

{

int x=random(a.X, b.X);

int y=random(a.Y, b.Y);

COORD c={x, y};

return c;

}

bool judgeCoordInFrame(Frame frame, COORD spot)

{

if(spot.X>=frame.position[0].X)

if(spot.X<=frame.position[1].X)

if(spot.Y>=frame.position[0].Y)

if(spot.Y<=frame.position[0].Y)

return true;

return false;

}

void printCoord(COORD a)

{

cout <<( <<a.X<< , <<a.Y<< );

}

void printFrameCoord(Frame a)

{

printCoord(a.position[0]);

cout << - ;

printCoord(a.position[1]);

}

int drawMenu()

{

SetPos(30, 1);

cout<<P l a n e W a r;

drawRow(3, 0, 79, '-');

drawRow(5, 0, 79, '-');

SetPos(28, 4);

cout<<w 和 s 選擇, k 確定;

SetPos(15, 11);

cout<<1. 簡單的敵人;

SetPos(15, 13);

cout<<2. 冷酷的敵人;

drawRow(20, 0, 79, '-');

drawRow(22, 0, 79, '-');

SetPos(47, 11);

cout<<簡單的敵人:;

SetPos(51, 13);

cout<<簡單敵人有著較慢的移動速度。;

SetPos(24, 21);

cout<<制作:老八(秘制小漢堡);

int j=11;

SetPos(12, j);

cout<<>>;

//drawFrame(45, 9, 79, 17, '=', '|');

while(1)

{ if( _kbhit() )

{

char x=_getch();

switch (x)

{

case 'w' :

{

if( j == 13)

{

SetPos(12, j);

cout<< ;

j = 11;

SetPos(12, j);

cout<<>>;

SetPos(51, 13);

cout<< ;

SetPos(47, 11);

cout<<簡單的敵人:;

SetPos(51, 13);

cout<<簡單敵人有著較慢的移動速度,比較容易對付;

}

break;

}

case 's' :

{

if( j == 11 )

{

SetPos(12, j);

cout<< ;

j = 13;

SetPos(12, j);

cout<<>>;

SetPos(51, 13);

cout<< ;

SetPos(47, 11);

cout<<冷酷的敵人:;

SetPos(51, 13);

cout<<冷酷的敵人移動速度較快,難對付喲。;

}

break;

}

case 'k' :

{

if (j == 8) return 1;

else return 2;

}

}

}

}

}

DWORD WINAPI MusicFun(LPVOID lpParamte)

{

//DWORD OBJ;

sndPlaySound(TEXT(bgm.wav), SND_FILENAME|SND_ASYNC);

return 0;

}

class Game

{

public:

COORD position[10];

COORD bullet[10];

Frame enemy[8];

int score;

int rank;

int rankf;

string title;

int flag_rank;

Game ();

//初始化所有

void initPlane();

void initBullet();

void initEnemy();

//初始化其中一個(gè)

//void initThisBullet( COORD );

//void initThisEnemy( Frame );

void planeMove(char);

void bulletMove();

void enemyMove();

//填充所有

void drawPlane();

void drawPlaneToNull();

void drawBullet();

void drawBulletToNull();

void drawEnemy();

void drawEnemyToNull();

//填充其中一個(gè)

void drawThisBulletToNull( COORD );

void drawThisEnemyToNull( Frame );

void Pause();

void Playing();

void judgePlane();

void judgeEnemy();

void Shoot();

void GameOver();

void printScore();

};

Game::Game()

{

initPlane();

initBullet();

initEnemy();

score = 0;

rank = 25;

rankf = 0;

flag_rank = 0;

}

void Game::initPlane()

{

COORD centren={39, 22};

position[0].X=position[5].X=position[7].X=position[9].X=centren.X;

position[1].X=centren.X-2;

position[2].X=position[6].X=centren.X-1;

position[3].X=position[8].X=centren.X+1;

position[4].X=centren.X+2;

for(int i=0; i<=4; i++)

position[i].Y=centren.Y;

for(int i=6; i<=8; i++)

position[i].Y=centren.Y+1;

position[5].Y=centren.Y-1;

position[9].Y=centren.Y-2;

}

void Game::drawPlane()

{

for(int i=0; i<9; i++)

{

SetPos(position[i]);

if(i!=5)

cout<<O;

else if(i==5)

cout<<|;

}

}

void Game::drawPlaneToNull()

{

for(int i=0; i<9; i++)

{

SetPos(position[i]);

cout<< ;

}

}

void Game::initBullet()

{

for(int i=0; i<10; i++)

bullet[i].Y = 30;

}

void Game::drawBullet()

{

for(int i=0; i<10; i++)

{

if( bullet[i].Y != 30)

{

SetPos(bullet[i]);

cout<<^;

}

}

}

void Game::drawBulletToNull()

{

for(int i=0; i<10; i++)

if( bullet[i].Y != 30 )

{

COORD pos={bullet[i].X, bullet[i].Y+1};

SetPos(pos);

cout<< ;

}

}

void Game::initEnemy()

{

COORD a={1, 1};

COORD b={45, 15};

for(int i=0; i<8; i++)

{

enemy[i].position[0] = random(a, b);

enemy[i].position[1].X = enemy[i].position[0].X + 3;

enemy[i].position[1].Y = enemy[i].position[0].Y + 2;

}

}

void Game::drawEnemy()

{

for(int i=0; i<8; i++)

drawFrame(enemy[i].position[0], enemy[i].position[1], '-', '|');

}

void Game::drawEnemyToNull()

{

for(int i=0; i<8; i++)

{

drawFrame(enemy[i].position[0], enemy[i].position[1], ' ', ' ');

}

}

void Game::Pause()

{

SetPos(61,2);

cout<< ;

SetPos(61,2);

cout<<暫停中...;

char c=_getch();

while(c!='p')

c=_getch();

SetPos(61,2);

cout<< ;

}

void Game::planeMove(char x)

{

if(x == 'a')

if(position[1].X != 1)

for(int i=0; i<=9; i++)

position[i].X -= 2;

if(x == 's')

if(position[7].Y != 23)

for(int i=0; i<=9; i++)

position[i].Y += 1;

if(x == 'd')

if(position[4].X != 47)

for(int i=0; i<=9; i++)

position[i].X += 2;

if(x == 'w')

if(position[5].Y != 3)

for(int i=0; i<=9; i++)

position[i].Y -= 1;

}

void Game::bulletMove()

{

for(int i=0; i<10; i++)

{

if( bullet[i].Y != 30)

{

bullet[i].Y -= 1;

if( bullet[i].Y == 1 )

{

COORD pos={bullet[i].X, bullet[i].Y+1};

drawThisBulletToNull( pos );

bullet[i].Y=30;

}

}

}

}

void Game::enemyMove()

{

for(int i=0; i<8; i++)

{

for(int j=0; j<2; j++)

enemy[i].position[j].Y++;

if(24 == enemy[i].position[1].Y)

{

COORD a={1, 1};

COORD b={45, 3};

enemy[i].position[0] = random(a, b);

enemy[i].position[1].X = enemy[i].position[0].X + 3;

enemy[i].position[1].Y = enemy[i].position[0].Y + 2;

}

}

}

void Game::judgePlane()

{

for(int i = 0; i < 8; i++)

for(int j=0; j<9; j++)

if(judgeCoordInFrame(enemy[i], position[j]))

{

SetPos(62, 1);

cout<<墜毀;

drawFrame(enemy[i], '+', '+');

Sleep(1000);

GameOver();

break;

}

}

void Game::drawThisBulletToNull( COORD c)

{

SetPos(c);

cout<< ;

}

void Game::drawThisEnemyToNull( Frame f )

{

drawFrame(f, ' ', ' ');

}

void Game::judgeEnemy()

{

for(int i = 0; i < 8; i++)

for(int j = 0; j < 10; j++)

if( judgeCoordInFrame(enemy[i], bullet[j]) )

{

score += 5;

drawThisEnemyToNull( enemy[i] );

COORD a={1, 1};

COORD b={45, 3};

enemy[i].position[0] = random(a, b);

enemy[i].position[1].X = enemy[i].position[0].X + 3;

enemy[i].position[1].Y = enemy[i].position[0].Y + 2;

drawThisBulletToNull( bullet[j] );

bullet[j].Y = 30;

}

}

void Game::Shoot()

{

for(int i=0; i<10; i++)

if(bullet[i].Y == 30)

{

bullet[i].X = position[5].X;

bullet[i].Y = position[5].Y-1;

break;

}

}

void Game::printScore()

{

if(score == 120 && flag_rank == 0)

{

rank -= 3;

flag_rank = 1;

}

else if( score == 360 && flag_rank == 1)

{

rank -= 5;

flag_rank = 2;

}

else if( score == 480 && flag_rank == 2)

{

rank -= 5;

flag_rank = 3;

}

int x=rank/5;

SetPos(60, 6);

cout<<score;

if( rank!=rankf )

{

SetPos(60, 7);

if( x == 5)

title=初級飛行員;

else if( x == 4)

title=中級飛行員;

else if( x == 3)

title=高級飛行員;

else if( x == 2 )

title=王牌飛行員;

cout<<title;

}

rankf = rank;

}

void Game::Playing()

{

//HANDLE MFUN;

//MFUN= CreateThread(NULL, 0, MusicFun, NULL, 0, NULL);

drawEnemy();

drawPlane();

int flag_bullet = 0;

int flag_enemy = 0;

while(1)

{

Sleep(8);

if(_kbhit())

{

char x = _getch();

if ('a' == x || 's' == x || 'd' == x || 'w' == x)

{

drawPlaneToNull();

planeMove(x);

drawPlane();

judgePlane();

}

else if ('p' == x)

Pause();

else if( 'k' == x)

Shoot();

else if( 'e' == x)

{

//CloseHandle(MFUN);

GameOver();

break;

}

}

/* 處理子彈 */

if( 0 == flag_bullet )

{

bulletMove();

drawBulletToNull();

drawBullet();

judgeEnemy();

}

flag_bullet++;

if( 5 == flag_bullet )

flag_bullet = 0;

/* 處理敵人 */

if( 0 == flag_enemy )

{

drawEnemyToNull();

enemyMove();

drawEnemy();

judgePlane();

}

flag_enemy++;

if( flag_enemy >= rank )

flag_enemy = 0;

/* 輸出得分 */

printScore();

}

}

void Game::GameOver()

{

system(cls);

COORD p1={28,9};

COORD p2={53,15};

drawFrame(p1, p2, '=', '|');

SetPos(36,12);

string str=Game Over!;

for(int i=0; i<str.size(); i++)

{

Sleep(80);

cout<<str[i];

}

Sleep(1000);

system(cls);

drawFrame(p1, p2, '=', '|');

SetPos(31, 11);

cout<<擊落敵機(jī):<<score/5<< 架;

SetPos(31, 12);

cout<<得 分:<<score;

SetPos(31, 13);

cout<<獲得稱號:<<title;

SetPos(30, 16);

Sleep(1000);

cout<<繼續(xù)? 是(y)| 否(n)制作:老八;

as:

char x=_getch();

if (x == 'n')

exit(0);

else if (x == 'y')

{

system(cls);

Game game;

int a = drawMenu();

if(a == 2)

game.rank = 20;

system(cls);

drawPlaying();

game.Playing();

}

else goto as;

}

int main()

{

srand((int)time(0));

HideCursor();

Game game;

int a = drawMenu();

if(a == 2)

game.rank = 20;

system(cls);

drawPlaying();

game.Playing();

}

一個(gè)戀愛小測試賊靈驗(yàn)哦

#include<bits/stdc++.h>

using namespace std;

int main()

{

int n,m,a,b,c,d,e,f,g,h,i,j,k,l,sum;

cout<<歡迎來到戀愛指數(shù)測試器*>-<*<<endl;

for(int i=1;i<=1000000000;i++)

l=i;

cout<<獨(dú)家的哦*^0^*<<endl;

for(int i=1;i<=1000000000;i++)

l=i;

cout<<以下異性均為合適年齡<<endl;

for(int i=1;i<=1000000000;i++)

l=i;

cout<<下列問題如果是則輸入2,如果不是則輸入1,一點(diǎn)也沒感覺輸入0<<endl;

for(int i=1;i<=1000000000;i++)

l=i;

cout<<加油,面對你自己!*-o-*<<endl;

for(int i=1;i<=1000000000;i++)

l=i;

cout<<question one:<<你是否面對異性時(shí)有莫名心跳?<<endl;

cin>>n;

cout<<endl;

cout<<question two:<<你是否有看到異性被撩時(shí)很憤怒?<<endl;

cin>>m;

cout<<endl;

cout<<question three:<<你是否懼怕見到一位異性的家長<<endl;

cin>>a;

cout<<endl;

cout<<question four:<<你是否經(jīng)常刷一位異性的QQ或其他軟件<<endl;

cin>>b;

cout<<endl;

cout<<question five:<<想不想真心和Ta用情頭?<<endl;

cin>>c;

cout<<endl;

cout<<question six:<<和Ta邂逅過嗎?<<endl;

cin>>d;

cout<<endl;

cout<<question seven:<<吃過同一個(gè)飯碗里的東西嗎?<<endl;

cin>>e;

cout<<endl;

cout<<question eight:<<有過一個(gè)人在夢里與Ta相遇嗎?<<endl;

cin>>f;

cout<<endl;

cout<<question nine:<<有為了等Ta一個(gè)人站在風(fēng)雨中嗎?<<endl;

cin>>g;

cout<<endl;

cout<<question ten:<<想kissTa不,想摸Ta的頭發(fā)嗎?<<endl;

cin>>h;

cout<<endl;

sum=n+m+a+b+c+d+e+f+g+h;

cout<<正在測評中,請稍后...<<endl;

for(int i=1;i<=1000000000;i++)

l=i;

if(sum>=16&&sum<=20)

cout<<你的戀愛指數(shù)為:A。你是一個(gè)深深愛著Ta的人,你往往會走到最后^-^。<<endl;

if(sum<=15&&sum>=12)

cout<<你的戀愛指數(shù)為:B。你是一個(gè)矛盾卻又不失愛意的人,你的愛往往一波三折!-!。<<endl;

if(sum<=11&&sum>=7)

cout<<你的戀愛指數(shù)為:C。你是一個(gè)有點(diǎn)點(diǎn)情絲的人,你想表,卻又懼怕現(xiàn)實(shí),你仍須努力o-o。<<endl;

if(sum<=6&&sum>=0)

cout<<你的戀愛指數(shù)為:D。你是一個(gè)無暇無垢,不食人間煙火的人,想一路踏歌,證道路上需佳人陪伴+-+。<<endl;

if(sum>20||sum<0)

cout<<你出格了喲ooo.ooo<<endl;

cout<<人生在世,恍如昨世,孤獨(dú)的身影終難走遠(yuǎn),你的那個(gè)Ta就在不遠(yuǎn)方,就如漫天繁星,總有一顆屬于你!<<endl;\

cout<<快抓緊你身邊的那個(gè)Ta^-^oooooo<<endl;

cout<<endl;

cout<<作品創(chuàng)造者:yang sky one<<endl;

cout<<戀愛指數(shù)測試器已關(guān)閉,需重啟………………<<endl;

return 0;

}

#include

#include

#include

#define LEFT 0x4b00

#define RIGHT 0x4d00

#define DOWN 0x5000

#define UP 0x4800

#define ESC 0x011b

int i,key;

int score=0;

int gamespeed=32000;

struct Food /*食物的結(jié)構(gòu)體*/

{

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

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

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

}food;

struct Snack /*蛇的結(jié)構(gòu)體*/

{

int x[N];

int y[N];

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

int direction; /*蛇的方向*/

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

}snake;

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

void Close(void); /*關(guān)閉游戲函數(shù)*/

void DrawK(void); /*畫圖函數(shù)*/

void GameOver(void);/*輸出失敗函數(shù)*/

void GamePlay(); /*游戲控制函數(shù) 主要程序*/

void PrScore(void); /*分?jǐn)?shù)輸出函數(shù)*/

DELAY(char ch)/*調(diào)節(jié)游戲速度*/

{

if(ch=='3')

{

delay(gamespeed); /*delay是延遲函數(shù)*/

delay(gamespeed);

}

else if(ch=='2')

{

delay(gamespeed);

}

}

Menu()/*游戲開始菜單*/

{

char ch;

printf(Please choose the gamespeed:\n);

printf(1-Fast 2-Normal 3-Slow\n);

printf(\nPlease Press The numbers..\n);

do

{ch=getch();}

while(ch!='1'&&ch!='2'&&ch!='3');

clrscr();

return(ch);

}

/*主函數(shù)*/

void main(void)

{

int ch;

ch=Menu();

Init();

DrawK();

GamePlay(ch);

Close();

}

void Init(void)

{

int gd=DETECT,gm;

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

cleardevice();

}

void DrawK(void)

{

setcolor(11);

setlinestyle(SOLID_LINE,0,THICK_WIDTH);

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(char ch)

{

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

food.yes=1; /*1代表要出現(xiàn)食物,0表示以存在食物*/

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;

PrScore();

while(1) /*可以重復(fù)游戲*/

{

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

{

if(food.yes==1) /*需要食物*/

{

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

food.y=rand()%350+60; /*使用rand函數(shù)隨機(jī)產(chǎn)生食物坐標(biāo)*/

while(food.x%10!=0)

food.x++;

while(food.y%10!=0)

food.y++; /*判斷食物是否出現(xiàn)在整格里*/

food.yes=0; /*現(xiàn)在有食物了*/

}

if(food.yes==0) /*有食物了就要顯示出來*/

{

setcolor(GREEN);

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

}

for(i=snake.node-1;i>0;i--) /*貪吃蛇的移動算法*/

{

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

snake.y[i]=snake.y[i-1]; /*貪吃蛇的身體移動算法*/

}

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;i<snake.node;i++) /*判斷是否頭部與身體相撞*/

{

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

{

GameOver();

snake.life=1;

break;

}

}

/*下面是判斷是否撞到墻壁*/

if(snake.x[0]595||snake.y[0]455)

{

GameOver();

snake.life=1;

}

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

break;

if(snake.x[0]==food.x&&snake.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; /*現(xiàn)把增加的一節(jié)放到看不到的地方去*/

snake.node++;

food.yes=1;

score+=10;

PrScore();

}

setcolor(4); /*每次移動后將后面的身體擦去*/

for(i=0;i<snake.node;i++)

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

delay(gamespeed);

DELAY(ch);

setcolor(0);

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

}

if(snake.life==1)

break;

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

if(key==ESC)

break;

else

if(key==UP&&snake.direction!=4)/*判斷是否改變方向*/

snake.direction=3;

else

if(key==RIGHT&&snake.direction!=2)

snake.direction=1;

else

if(key==LEFT&&snake.direction!=1)

snake.direction=2;

else

if(key==DOWN&&snake.direction!=3)

snake.direction=4;

}

}

void GameOver(void)

{

cleardevice();

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,scord:%d,score);

outtextxy(55,20,str);

}

void Close(void)

{

getch();

closegraph();

}

貪吃蛇

注:使用Dev-C++編譯運(yùn)行!

#include?<iostream>

#include?<fstream>

#include?<algorithm>

#include?<map>

#include?<conio.h>

#include?<windows.h>

using?namespace?std;

int?x=0,y=0;

/*?Colors?defined?for?SetColor(int)?*/?

????enum

????{?

????BLACK?=?0,?

????DARK_BLUE?=?1,?

????DARK_GREEN?=?2,?

????TEAL?=?3,?

????DARK_RED?=?4,?

????DARK_PURPLE?=?5,?

????GOLD?=?6,?

????GREY?=?7,?

????DARK_WHITE?=?8,?

????BLUE?=?9,?

????GREEN?=?10,?

????CYAN?=?11,?

????RED?=?12,?

????PURPLE?=?13,?

????YELLOW?=?14,?

????WHITE?=?15,?

????};

void?SetColor(const?int?foreground,?const?int?background)

????{?

?????????

????????int?Color?=?foreground?+?(background?*?16);?

????????HANDLE?hConsole?=?GetStdHandle(STD_OUTPUT_HANDLE);?

????????SetConsoleTextAttribute(hConsole,?Color);?

??????

????????return;?

????}??

????int?cc;

int?main()

{

????system(title?Move?1.3);

????SetColor(BLUE,WHITE);

????

????

????int?cc=getch();

????switch(cc)

????{

????????case?'a':

????????????if(x>0)x--;

????????????break;

????????case?'d':

????????????if(x<76)x++;

????????????????break;

????????case?'w':

????????if(y>0)y--;

????????????break;

????????case?'s':

????????if(y<19)y++;

????????????break;

????????case?27:

????????????????if(MessageBox(FindWindow(ConsoleWindowClass,NULL),Exit?,Question,MB_YESNO)==6)

????????????????return?0;

????}

????system(cls);

????for?(int?i=0;i<y;i++)cout<<'\n';

????for?(int?i=0;i<x;i++)cout<<'?';

????????

????cout<<●;

????for?(int?i=y;i<20;i++)cout<<'\n';

????SetColor(GOLD,WHITE);

cout<<Esc?->?Exit\td?->right\ta->?left\tw?->?up\t????????s?->?down;

SYSTEMTIME?sysTime;

????ZeroMemory(&sysTime,?sizeof(sysTime));

????GetLocalTime(&sysTime);

????printf(\nYear:%d????Month:%d????Day:%d(%d)????%d:%d:,sysTime.wYear,sysTime.wMonth,sysTime.wDay,sysTime.wDayOfWeek,sysTime.wHour,sysTime.wMinute);

????if(sysTime.wSecond<10)printf(0);

????printf(%d,sysTime.wSecond);????

????main();

????return?0;

}

欧美中文字幕一区二区三区亚洲_在线成人直播_国产精品玖玖玖在线资源_久久99最新地址
亚洲成精国产精品女| 国产午夜精品久久| 免费观看成人av| 国产sm精品调教视频网站| 一区二区三区日韩在线观看| 成人欧美一区二区三区1314| 91豆麻精品91久久久久久| 国产日韩v精品一区二区| 久久精品国产99国产| 精品久久人人做人人爱| 亚洲卡通欧美制服中文| 不卡高清视频专区| 国产精品久久久久影院老司| 成人av午夜电影| 中文字幕一区二区三中文字幕| 日本韩国精品在线| 色婷婷久久久亚洲一区二区三区 | 国产在线精品国自产拍免费| 欧美大白屁股肥臀xxxxxx| 亚洲国产精品久久人人爱| 色www精品视频在线观看| 亚洲成人免费影院| 日韩久久久久久| 国产福利91精品| 99久久久免费精品国产一区二区| 国产精品白丝av| 精品视频全国免费看| 欧美精品丝袜中出| 中文字幕精品一区二区精品绿巨人| 国产精品色在线观看| 国产精品久久久久久亚洲毛片 | 欧美日韩国产一级| 色综合中文字幕| 日韩三级电影网址| 日韩欧美专区在线| 久久久午夜电影| 成人动漫一区二区三区| 一区二区三区成人| 91精品国产综合久久久蜜臀粉嫩| 日韩精品91亚洲二区在线观看| 欧美成人精品1314www| 国产福利一区在线| 亚洲影院久久精品| 精品少妇一区二区三区| 国产综合色视频| 亚洲另类色综合网站| 精品国产乱码久久| 91久久精品午夜一区二区| 蜜桃久久久久久| 国产精品午夜免费| 欧美美女一区二区| 成人在线一区二区三区| 亚洲成av人片观看| 中文欧美字幕免费| 欧美区在线观看| 国产91精品精华液一区二区三区| 亚洲成av人片在www色猫咪| 国产亚洲欧洲一区高清在线观看| 在线亚洲一区观看| 国产美女在线精品| 水野朝阳av一区二区三区| 中文字幕精品—区二区四季| 日韩一本二本av| 91国偷自产一区二区三区观看| 国产一区二区三区免费| 蜜桃av噜噜一区| 亚洲一区自拍偷拍| 国产精品国产三级国产三级人妇| 欧美一二三区在线观看| 在线观看视频一区二区| 成人综合日日夜夜| 亚洲国产精品久久艾草纯爱| 欧美一区中文字幕| 在线观看免费成人| 色偷偷久久人人79超碰人人澡| 国产又粗又猛又爽又黄91精品| 天天影视色香欲综合网老头| 亚洲少妇30p| 中文字幕成人网| 亚洲精品一区二区三区香蕉| 欧美男男青年gay1069videost | 91免费视频大全| 国产剧情av麻豆香蕉精品| 另类小说视频一区二区| 婷婷综合五月天| 一本色道综合亚洲| 日韩中文欧美在线| 亚洲人成精品久久久久久| 欧美日韩成人激情| 成人黄色国产精品网站大全在线免费观看| 欧美韩日一区二区三区| 91精品国产美女浴室洗澡无遮挡| 成人丝袜高跟foot| 蜜桃一区二区三区在线| 日韩在线一区二区| 中文字幕日韩一区| 91久久线看在观草草青青| 一区二区三区影院| 亚洲黄色小视频| 亚洲精品伦理在线| 一区二区三区四区中文字幕| 亚洲精品老司机| 亚洲一区精品在线| 亚洲欧美视频在线观看| 国产精品视频看| 日韩一区在线免费观看| 亚洲精品乱码久久久久久| 国产精品免费aⅴ片在线观看| 久久综合狠狠综合久久激情| 精品国产一二三| 国产偷国产偷精品高清尤物| 国产丝袜美腿一区二区三区| 国产精品激情偷乱一区二区∴| 中文字幕一区二区三区在线不卡| 国产精品欧美精品| 亚洲日本va午夜在线影院| 亚洲综合成人网| 日韩精品每日更新| 国产精一区二区三区| 成人午夜av影视| 在线一区二区三区做爰视频网站| 91最新地址在线播放| 欧美网站大全在线观看| 欧美一区二区三区视频| 久久久高清一区二区三区| 日韩一区欧美小说| 婷婷亚洲久悠悠色悠在线播放| 韩国中文字幕2020精品| 成人高清视频免费观看| 欧美日韩久久久| 久久免费午夜影院| 亚洲欧美日韩电影| 老司机免费视频一区二区| 成人国产免费视频| 91蝌蚪porny| 日韩免费电影一区| 亚洲一区免费在线观看| voyeur盗摄精品| 久久综合九色欧美综合狠狠| 午夜欧美在线一二页| eeuss国产一区二区三区| 日韩欧美的一区二区| 亚洲午夜激情网页| 97精品超碰一区二区三区| 精品成人在线观看| 美女视频网站久久| 欧美日韩情趣电影| 亚洲免费观看高清完整 | 亚洲福利视频导航| 一本大道久久a久久精品综合| 国产人成亚洲第一网站在线播放| 美女www一区二区| 日韩一级免费观看| 日日欢夜夜爽一区| 首页国产欧美久久| 91麻豆精品国产综合久久久久久| 99久久久免费精品国产一区二区| 五月婷婷综合网| 日韩精品一区国产麻豆| 黄网站免费久久| 国产精品久久久久影院| 欧美在线啊v一区| 日本sm残虐另类| 欧美国产精品一区二区三区| 91视频com| 久久福利资源站| 中文字幕一区二区在线观看| 久久精品日产第一区二区三区高清版 | 亚洲色大成网站www久久九九| 成人午夜在线免费| 欧美国产精品一区二区三区| 国产美女主播视频一区| 日本一区二区综合亚洲| 不卡的av在线播放| 91精彩视频在线| 成人h动漫精品| 日本高清不卡在线观看| 欧美肥大bbwbbw高潮| 香蕉av福利精品导航 | 欧美日韩国产中文| 午夜欧美大尺度福利影院在线看| 欧美偷拍一区二区| 水蜜桃久久夜色精品一区的特点 | 亚洲激情av在线| 欧美精三区欧美精三区| 久久99精品久久久久久国产越南 | 亚洲精品视频一区二区| 欧美性生活一区| 日本伊人午夜精品| 国产亚洲污的网站| 日本韩国一区二区三区视频| 五月婷婷欧美视频| 久久久不卡网国产精品一区| 99re热这里只有精品视频| 亚洲国产日韩a在线播放 | 久久免费的精品国产v∧| 成人免费精品视频| 亚洲午夜电影在线| 精品国产乱码久久久久久久久| 成人丝袜视频网|