欧美中文字幕一区二区三区亚洲_在线成人直播_国产精品玖玖玖在线资源_久久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| 欧美国产综合一区二区| 天天影视色香欲综合网老头| 波多野结衣中文字幕一区 | 欧美三级电影网站| 久久综合久久鬼色| 午夜久久福利影院| 99视频一区二区三区| 精品久久久久久久久久久久包黑料| 国产精品久久久久久久久久免费看| 日本欧美在线观看| 在线观看成人小视频| 国产三级久久久| 免费人成精品欧美精品| 91国偷自产一区二区开放时间| 久久久蜜桃精品| 婷婷中文字幕一区三区| 成人18视频日本| 国产精品天天看| 国产精品12区| 久久一留热品黄| 久久精品国产久精国产| 51精品久久久久久久蜜臀| 一区二区三区不卡视频在线观看| 成人av免费观看| 国产欧美一区二区在线| 国精产品一区一区三区mba桃花 | 日本中文一区二区三区| 欧美调教femdomvk| 亚洲精品乱码久久久久| 99vv1com这只有精品| 亚洲天堂成人在线观看| 成年人网站91| 亚洲欧美视频在线观看视频| www..com久久爱| 自拍偷在线精品自拍偷无码专区| 成人在线综合网| 国产精品麻豆一区二区| 菠萝蜜视频在线观看一区| 国产精品免费久久久久| www.综合网.com| 亚洲男同性恋视频| 欧洲一区二区av| 亚洲国产成人av网| 欧美日韩黄色一区二区| 日韩在线a电影| 久久综合视频网| 成人免费毛片嘿嘿连载视频| 国产精品久久毛片av大全日韩| 99热这里都是精品| 亚洲制服丝袜av| 日韩欧美国产精品一区| 国产一区二区三区电影在线观看| 欧美国产激情二区三区| 91丨九色丨尤物| 五月激情综合网| 2020国产成人综合网| 风间由美一区二区三区在线观看| 一区在线观看免费| 亚洲永久免费视频| 欧美绝品在线观看成人午夜影视| 亚洲欧美国产毛片在线| 欧美视频精品在线| 韩国女主播一区| 最新国产の精品合集bt伙计| 色菇凉天天综合网| 韩国女主播成人在线| 亚洲欧美国产三级| 韩国女主播成人在线观看| 日韩高清一级片| 日产国产欧美视频一区精品| 亚洲电影第三页| 午夜天堂影视香蕉久久| 夜夜亚洲天天久久| 亚洲一区二三区| 亚洲国产欧美在线| 亚洲电影一区二区| 亚洲成人激情av| 日韩精品免费视频人成| 日韩一区精品字幕| 免费成人在线网站| 91国偷自产一区二区三区成为亚洲经典 | 欧美狂野另类xxxxoooo| 欧美在线观看18| 欧美三级在线播放| 欧美日韩一区精品| 7777精品伊人久久久大香线蕉完整版 | 麻豆国产欧美日韩综合精品二区| 日韩中文字幕不卡| 麻豆国产精品视频| 国产一区二区成人久久免费影院| 国产一区欧美一区| 国产精品一区久久久久| 粉嫩13p一区二区三区| 99国产一区二区三精品乱码| 91亚洲资源网| 欧美日韩电影在线| 91麻豆精品国产91久久久资源速度 | 精品三级在线观看| 2021国产精品久久精品| 欧美国产丝袜视频| 亚洲综合一区在线| 日韩av电影一区| 国产成人精品影院| 色就色 综合激情| 91精品国产综合久久久蜜臀粉嫩| 欧美电视剧在线看免费| 中文无字幕一区二区三区| 亚洲免费观看高清完整版在线 | 视频在线在亚洲| 国产一区美女在线| caoporen国产精品视频| 欧美日韩国产在线播放网站| 精品久久久久久久久久久久久久久 | 午夜精品福利一区二区三区av| 精品制服美女久久| 成人av小说网| 日韩欧美国产一区二区三区| 国产精品嫩草影院av蜜臀| 亚洲综合男人的天堂| 精品一区二区三区在线观看| av网站一区二区三区| 在线综合视频播放| 国产精品成人免费在线| 免费看欧美美女黄的网站| 成人精品电影在线观看| 91精品视频网| 亚洲欧美色图小说| 麻豆极品一区二区三区| 91麻豆成人久久精品二区三区| 日韩西西人体444www| 日韩美女视频一区| 久久精品国产99| 在线视频国内自拍亚洲视频| 久久色中文字幕| 亚洲大片免费看| av在线不卡网| 欧美www视频| 亚洲成人先锋电影| 91一区二区在线| 欧美激情一区二区三区全黄| 日日夜夜免费精品| 色婷婷久久一区二区三区麻豆| 久久蜜桃一区二区| 亚洲成人综合在线| 91免费版在线看| 国产欧美一区二区在线| 精品亚洲免费视频| 欧美精品xxxxbbbb| 一区二区三区中文免费| 成人激情动漫在线观看| 亚洲精品在线观看网站| 午夜激情综合网| 精品视频一区三区九区| 亚洲欧洲日韩av| 国产成人一区二区精品非洲| 日韩久久久精品| 日本不卡视频在线| 欧美精品在线一区二区三区| 亚洲精品伦理在线| 91网页版在线| 国产精品高潮久久久久无| 国产91精品久久久久久久网曝门| 精品电影一区二区三区| 久久国产精品区| 日韩免费高清av| 日韩vs国产vs欧美| 欧美高清激情brazzers| 五月开心婷婷久久| 日韩一区二区三区视频在线| 午夜精品久久久久久久久久久| 欧美日韩视频在线第一区| 亚洲综合色视频| 欧美军同video69gay| 五月天激情小说综合| 91精品国产91久久久久久最新毛片| 午夜精品久久久久久久蜜桃app | 国产精品乡下勾搭老头1| 欧美精品一区男女天堂| 国产成人啪午夜精品网站男同| 久久九九全国免费| 风间由美中文字幕在线看视频国产欧美| 久久久国产精品午夜一区ai换脸| 国产乱子伦一区二区三区国色天香| 久久色.com| 成人app软件下载大全免费| 亚洲欧洲日本在线| 欧美亚洲国产一卡| 日本中文一区二区三区| 久久午夜色播影院免费高清| 高清在线观看日韩| 亚洲男人的天堂网| 91精品国产免费| 国产精品资源在线观看| 国产精品久久久久影视| 欧美日韩一区二区三区免费看 | 男女性色大片免费观看一区二区|