#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万+
最新资源
- marked.min.js
- JSP期末备考试题答案(免费版)与主页试题配套
- 电力电子领域IGBT和MOSFET驱动参数计算方法及优化选择
- 电容触控传感器TC332的技术特性与应用说明
- NICAN通讯库 周立功通讯库 ZLG通讯库 PPL通讯库,只提供打包库,源码价格不一样 可以和周立功自带Demo看看效果,这个使用更方便简单 具体支持哪些看图ZLG的,NICAN所有的都支持
- Flask接口调用失败错误分析与解决方案(含Docker命令)
- 机械设计加油口自动上料焊接线sw21非常好的设计图纸100%好用.zip
- 机械设计离心筛分机step非常好的设计图纸100%好用.zip
- ZW、ZB型产品使用指南:基于pdfFactory Pro创建工具的技术解析与应用手册
- 八自由度车辆动力学Simulink仿真模型 模型包括.slx文件.m车辆参数文件和word说明文档 Matlab版本2018a,可生成低版本 八自由度包括纵向,横向,横摆,侧倾及四个车轮旋转运动,另外
- autosar的arxml转dbc
- 基于机器学习的可调VVC帧划分方案降低编码复杂度研究
- go1.23.4.windows-amd64-src
- 【机器学习实战】kaggle playground最新竞赛,预测贴纸数量-python源码+解析
- 3工位旋转工作台PLC控制系统设计, 西门子plc s7-200程序,和smart程序通用 全套包含:梯形图mwp文件,IO表,〈IO接线图,主电路图,控制电路图,控制系统流程图,液压原理图,dwg
- python语言jianli爬虫程序代码QZQ.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈