#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#include <time.h>
/* 【自学去】网站收集 http://www.zixue7.com */
#define HMAX 22//边界高度的最大值
#define HMIN 3//边界高度的最小值
#define LMAX 37//边界长度的最大值
#define LMIN 2//边界长度的最小值
int mx=20,my=11;
int leave=1;//关卡
int x=20,y=20;//玩家位置
int i,j;
int m=10,n=15;//箱子位置
int pointx=20,pointy=13;//目标位置
char ch;
struct move//小球结构体
{
int x,y;
int xv,yv;
}ball;
/*----------------------------------------------------------------*/
bool judge();//判断条件的函数
void star();
void box(int m,int n);
void gotoxy(int x, int y);
void HideCursor();//隐藏光标
void tell(char s);//推箱子的关键函数
void goal();
void help();
void welcome();
void move(char ch);
void map();//地图界面
void clean(int x,int y);//擦出痕迹函数
void moveball();
void moveplay();
void GameOVER();//游戏结束图像
void GameJudge();//判断是否被球擦到
/*--------------------------------------------------------------*/
void player(int x,int y)//玩家
{
gotoxy(x,y);
printf("★");
}
void box(int m,int n)//创建一个箱子
{
gotoxy(m,n);//箱子的位置
printf("■");
}
void goal()//目标位置的函数
{
if(judge())
{
srand(time(NULL));
pointx=rand()%(36-4)+4;
pointy=rand()%(21-5)+5;
}
gotoxy(pointx,pointy);
printf("⊙");//目标点位置
}
/*--------------------------------------------------------------*/
bool judge()//判断条件。判断箱子是否到达指定地点
{
if(pointx==m&&pointy==n)
return true;
else
return false;
}
void condition(int m,int n)//初始化
{
void goal();
GameJudge();
if(judge())
{
leave++;
system("cls");
star();
}
}
void star()
{
map();
gotoxy(20,1);
printf("第%d关",leave);
box(m,n);
player(x,y);
goal();
}
/*-----------------------------主函数---------------------------------*/
void main()
{
S: system("color 4f"); //修改主界面的颜色
welcome();
HideCursor();
char ch;
while(1)
{
ch=getch();
switch(ch)
{
case 'w':
case 'W':
clean(mx,my);
my=my-3;
if(my<11)
my=my+6;
gotoxy(mx,my);
printf("★");
break;
case 's':
case 'S':
clean(mx,my);
my=my+3;
if(my>14)
my=my-6;
gotoxy(mx,my);
printf("★");
break;
case '\r':
if(my==11)
{
system("cls");
HideCursor();
system("color 2f");//修改游戏界面的颜色
star();
char ch;
moveball( );
}
if(my==14)
{
system("cls");
help();
while(getch())
{
system("cls");
goto S;//由于不懂如何返回一开始的界面所以只能用goto跳到一开始的界面
}
}
break;
}
}
}
/*-----------------------------界面---------------------------------*/
void welcome()
{
printf(" □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□\n");
printf(" □ □\n");
printf(" □ ▁▂▃▄▅▆▇█推箱子改版█▇▆▅▄▃▂▁ □\n");
printf(" □ □\n");
printf(" □ ☆控制说明☆ □\n");
printf(" □ □\n");
printf(" □ W ,S ,A ,D 分别控制上、下、左、右。 □\n");
printf(" □ 回车键确认 □\n");
printf(" □ □\n");
printf(" □ □\n");
printf(" □ ┏━━━━━┓ □\n");
printf(" □ ┃ 开 ★ 始 ┃ □\n");
printf(" □ ┗━━━━━┛ □\n");
printf(" □ ┏━━━━━┓ □\n");
printf(" □ ┃ 帮 助 ┃ □\n");
printf(" □ ┗━━━━━┛ □\n");
printf(" □ □\n");
printf(" □ □\n");
printf(" □ □\n");
printf(" □ □\n");
printf(" □ □\n");
printf(" □ □\n");
printf(" □ by:丿Sky灬夜丨殇 □\n");
printf(" □ QQ:598217213 □\n");
printf(" □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□\n");
gotoxy(0,0);
}
void help()
{
printf(" □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□\n");
printf(" □ □\n");
printf(" □ □\n");
printf(" □ ▁▂▃▄▅▆▇█推箱子改版游戏说明█▇▆▅▄▃▂▁ □\n");
printf(" □ □\n");
printf(" □ □\n");
printf(" □ ☆胜利条件☆ □\n");
printf(" □ □\n");
printf(" □ 把箱子推到圈里就过关 □\n");
printf(" □ 本游戏没有关数限制 □\n");
printf(" □ 直到你被小球打中或者擦到就退出游戏 □\n");
printf(" □ 程序比较简单,所以没什么难度!!!!! □\n");
printf(" □ □\n");
printf(" □ 由于本人刚大一,刚刚学完数组 □\n");
printf(" □ 所以本程序还有很多不足的地方,望大家谅解 □\n");
printf(" □ 欢迎大家一起交流讨论 □\n");
printf(" □ □\n");
printf(" □ ☆☆☆☆☆☆☆ □\n");
printf(" □ ☆任意键返回☆ □\n");
printf(" □ ☆☆☆☆☆☆☆ □\n");
printf(" □ □\n");
printf(" □ □\n");
printf(" □ by:丿Sky灬夜丨殇 □\n");
printf(" □ 2012年12月20日 □\n");
printf(" □□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□\n");
gotoxy(0,0);
}
/*-----------------------------界面---------------------------------*/
void gotoxy(int x, int y)
{
COORD c;
c.X = 2 * x, c.Y = y; //移动光标
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);
}
void HideCursor()//隐藏光标
{
CONSOLE_CURSOR_INFO cursor_info = {1, 0};
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
/*--------------
CrMylive.
- 粉丝: 1w+
- 资源: 4万+
最新资源
- 遥感影像共享-JAVA-基于SpringBoot的遥感影像共享系统设计与实现
- 自习室系统-JAVA-基于springboot的自习室座位预约系统设计与实现
- 人工智能大作业-人脸识别
- 小区停车场-JAVA基于springBoot的小区停车场管理系统设计与实现
- STM32+ESP8266(ESP32)+MQTT+阿里云物联网平台
- 机械自动化与机器人控制中的速度与雅克比矩阵计算
- springboot社区医院信息平台(代码+数据库+LW)
- STM32+ESP8266(ESP32)+MQTT+阿里云物联网平台
- 宠物管理-JAVA-基于springBoot宠物管理系统设计与实现
- X230安装Sonoma成功 博通BCM94352HMB网卡 扩展坞引线改屏1080P
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈