这是一个上下左右控制小人移动吃食物的游戏,话不多说,直接上程序。
#include#include #include #include using namespace std; int sorces=0;//分数 int key=72;//方向 int numberofbarrier=0;//障碍个数 void hide_cursor()//隐藏光标 { HANDLE h_GAME =GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO cursor_info; GetConsoleCursorInfo(h_GAME,&cursor_info); cursor_info.bVisible=false; SetConsoleCursorInfo(h_GAME,&cursor_info); } void show_cursor()//显示光标 { HANDLE h_GAME =GetStdHandle(STD_OUTPUT_HANDLE); CONSOLE_CURSOR_INFO cursor_info; GetConsoleCursorInfo(h_GAME,&cursor_info); cursor_info.bVisible=true; SetConsoleCursorInfo(h_GAME,&cursor_info); } struct { int x; int y; int speed=300; }character;//角色的要素 struct { int x; int y; }food;//食物坐标 struct { int x[1005]; int y[1005]; }barrier;//障碍坐标 void gotoxy(int x, int y)//移动光标 { COORD coord; coord.X = x; coord.Y = y; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord); } void colour(int n) { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),n); } void boom() { srand((unsigned int)time(NULL)); int xx;//预先x坐标 int xy;//预先y坐标 while(1) { xx=rand()%(40-2)+1; xy=rand()%(20-2)+1; if(xx!=food.x&&xy!=food.y) { break; } } xx=rand()%(40-2)+1; xy=rand()%(20-2)+1; gotoxy(xx,xy); colour(4); printf("!"); Sleep(2000); barrier.x[numberofbarrier+1]=xx; barrier.y[numberofbarrier+1]=xy; numberofbarrier++; colour(1); gotoxy(barrier.x[numberofbarrier],barrier.y[numberofbarrier]); printf("#"); } void drawmap() { hide_cursor(); for(int i=1;i<=20;i++) { colour(1); gotoxy(0,i); printf("#"); gotoxy(40,i); printf("#"); } for(int i=1;i<=40;i++) { colour(1); gotoxy(i,1); printf("#"); gotoxy(i,20); printf("#"); } character.x=40/2; character.y=20/2; gotoxy(character.x,character.y); colour(14); printf("*") ; for(int i=0;i<5;i++) { while(1) { int f=0; srand((unsigned int)time(NULL)); barrier.x[i]=rand()%(40-2)+1; barrier.y[i]=rand()%(20-2)+1; for(int j=0;j<5;j++) { if(barrier.x[i]==barrier.x[j]&&barrier.y[i]==barrier.y[j]) { f++; } } if(f<=1&&barrier.x[i]!=character.x&&barrier.y[i]!=character.y) { numberofbarrier++; break; } } gotoxy(barrier.x[i],barrier.y[i]); colour(1); printf("#"); } while (1) { int flag=1; srand((unsigned int)time(NULL)); food.x = rand() % (40 - 2) + 1; food.y = rand() % (20 - 2) + 1; for(int i=0;i<5;i++) { if(barrier.x[i]==food.x&&barrier.y[i]==food.y) { flag=0; } } if(food.y==1||food.y==20) { flag=0; } if(food.x==0||food.x==40) { flag=0; } if(flag==1) { break; } } //将光标移到食物的坐标处打印食物 gotoxy(food.x, food.y); colour(4); printf("@"); gotoxy(40,21); colour(8); printf("分数:"); colour(4); printf("0"); } void begin() { colour(14); cout<<" 自编小游戏"< 通过这个程序我们可以看到这样的游戏画面:
如果你遇到了bug,尝试按一按上下左右,如果不行就再开一局。
这就是我的作品,喜欢就关注一下吧。



