5.C++面向过程的方式写的推箱子游戏
来源:互联网 发布:qt淘宝兼职刷单流程 编辑:程序博客网 时间:2024/05/17 02:27
#include<iostream>
#include <Windows.h>
#include <conio.h>
using namespace std;
void HideCursor()//隐藏光标函数
{
CONSOLE_CURSOR_INFO cursor_info = { 1, 0 };
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void GotoXY(int row, int col)//定位光标的函数/将光标移动到指定的像素点
{
COORD pos;
pos.X = 2 * col;
pos.Y = row;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
#define Pass1ROW 9//宏定义地图的行
#define Pass1COL 9//宏定义地图的行
#define Pass2ROW 7
#define Pass2COL 8
#define RAOD 0//空为0
#define WALL 1//■为墙/1
#define BOX 2//★为箱子/2
#define GOAL 3//☆为目标/3
void Pass1()
{
int map[Pass1ROW][Pass1COL] =
{
{ 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 2, 0, 0, 0, 3, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 2, 0, 0, 0, 3, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1 }
};
for (int i = 0; i < Pass1ROW; i++)
{
for (int j = 0; j < Pass1COL; j++)
{
switch (map[i][j])
{
case RAOD:
{
cout << " ";
break;
}
case WALL:
{
cout << "■";
break;
}
case BOX:
{
cout << "★";
break;
}
case GOAL:
{
cout << "☆";
break;
}
}
}cout << endl;
}
cout << " " << "第一关" << " " << endl;
cout << "w:向上" << " " << "s:向下" << endl;
cout << "a:向左" << " " << "d:向右" << endl;
int row = 4, col = 4;
while (true)
{
if (map[2][6] == BOX && map[5][6] == BOX)
{
GotoXY(10, 0);
cout << " " << "恭喜过关" << " " << endl;
cout << "w:向上" << " " << "s:向下" << endl;
cout << "a:向左" << " " << "d:向右" << endl;
system("pause>nul");
Sleep(1000);
system("cls");
return;
}
GotoXY(row, col);
cout << "♀";
char ch = _getch();
switch (ch)
{
case 'w':
case 'W':
if (map[row - 1][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row -= 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row - 1][col] == BOX&&
map[row - 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row - 1, col);
cout << " ";
map[row - 1][col] = RAOD;
map[row - 2][col] = BOX;
row -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row - 1, col);
cout << "★";
}
else if (map[row - 1][col] == BOX&&
map[row - 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row - 1, col);
cout << " ";
map[row - 1][col] = RAOD;
map[row - 2][col] = BOX;
row -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row - 1, col);
cout << "★";
}
else if (map[row - 1][col] == GOAL&&map[row - 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row -= 1;
map[row][col] = RAOD;
map[row - 1][col] = RAOD;
GotoXY(row, col);
cout << "♀";
}
if (map[2][6] != GOAL&&map[2][6] != BOX)
{
GotoXY(2, 6);
cout << "☆";
}
if (map[5][6] != GOAL&&map[5][6] != BOX)
{
GotoXY(5, 6);
cout << "☆";
}
break;
case 's':
case 'S':
if (map[row + 1][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row += 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row + 1][col] == BOX&&
map[row + 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
map[row + 1][col] = RAOD;
map[row + 2][col] = BOX;
row += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "★";
}
else if (map[row + 1][col] == BOX&&
map[row + 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
map[row + 1][col] = RAOD;
map[row + 2][col] = BOX;
row += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "★";
}
else if (map[row + 1][col] == GOAL&&map[row + 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col);
cout << " ";
row += 1;
map[row][col] = RAOD;
map[row + 1][col] = RAOD;
GotoXY(row, col);
cout << "♀";
}
if (map[2][6] != GOAL&&map[2][6] != BOX)
{
GotoXY(2, 6);
cout << "☆";
}
if (map[5][6] != GOAL&&map[5][6] != BOX)
{
GotoXY(5, 6);
cout << "☆";
}
break;
case 'a':
case 'A':
if (map[row][col - 1] == RAOD)
{
GotoXY(row, col);
cout << " ";
col -= 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col - 1] == BOX&&
map[row][col - 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
map[row][col - 1] = RAOD;
map[row][col - 2] = BOX;
col -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col - 1);
cout << "★";
}
else if (map[row][col - 1] == BOX&&
map[row][col - 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
map[row][col - 1] = RAOD;
map[row][col - 2] = BOX;
col -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col - 1);
cout << "★";
}
else if (map[row][col - 1] == GOAL&&map[row][col - 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col);
cout << " ";
col -= 1;
map[row][col] = RAOD;
map[row][col - 1] = RAOD;
GotoXY(row, col);
cout << "♀";
}
if (map[2][6] != GOAL&&map[2][6] != BOX)
{
GotoXY(2, 6);
cout << "☆";
}
if (map[5][6] != GOAL&&map[5][6] != BOX)
{
GotoXY(5, 6);
cout << "☆";
}
break;
case 'd':
case 'D':
if (map[row][col + 1] == RAOD)
{
GotoXY(row, col);
cout << " ";
col += 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col + 1] == BOX&&
map[row][col + 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
map[row][col + 1] = RAOD;
map[row][col + 2] = BOX;
col += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col + 1);
cout << "★";
}
else if (map[row][col + 1] == BOX&&
map[row][col + 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
map[row][col + 1] = RAOD;
map[row][col + 2] = BOX;
col += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col + 1);
cout << "★";
}
else if (map[row][col + 1] == GOAL&&map[row][col + 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col);
cout << " ";
col += 1;
map[row][col] = RAOD;
map[row][col + 1] = RAOD;
GotoXY(row, col);
cout << "♀";
}
if (map[2][6] != GOAL&&map[2][6] != BOX)
{
GotoXY(2, 6);
cout << "☆";
}
if (map[5][6] != GOAL&&map[5][6] != BOX)
{
GotoXY(5, 6);
cout << "☆";
}
break;
}
}
}
void Pass2()
{
int map[Pass1ROW][Pass1COL] =
{
{ 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 2, 0, 0, 2, 0, 0, 1 },
{ 1, 0, 0, 3, 3, 0, 0, 0, 1 },
{ 1, 0, 0, 3, 3, 0, 0, 0, 1 },
{ 1, 0, 2, 0, 0, 2, 0, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1 }
};
//3,1 3,2 3,3 3,4 3,5 3,6 为GOAL 目标点
for (int i = 0; i < Pass1ROW; i++)
{
for (int j = 0; j < Pass1COL; j++)
{
switch (map[i][j])
{
case RAOD:
{
cout << " ";
break;
}
case WALL:
{
cout << "■";
break;
}
case BOX:
{
cout << "★";
break;
}
case GOAL:
{
cout << "☆";
break;
}
}
}
cout << endl;
}
cout << " " << "第二关" << " " << endl;
cout << "w:向上" << "" << "s:向下" << endl;
cout << "a:向左" << "" << "d:向右" << endl;
int row = 6, col = 4;
while (true)
{
if (map[3][3] == BOX && map[3][4] == BOX&&map[4][3] == BOX&&map[4][4] == BOX)
{
GotoXY(10, 0);
cout << " " << "恭喜过关" << " " << endl; cout << " " << "游戏结束" << " " << endl;
cout << "w:向上" << " " << "s:向下" << endl;
cout << "a:向左" << " " << "d:向右" << endl;
system("pause>nul");
Sleep(1000);
exit(0);
return;
}
GotoXY(row, col);
cout << "♀";
char ch = _getch();
switch (ch)
{
case 'w':
case 'W':
if (map[row - 1][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row -= 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row - 1][col] == BOX&&
map[row - 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row - 1, col);
cout << " ";
map[row - 1][col] = RAOD;
map[row - 2][col] = BOX;
row -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row - 1, col);
cout << "★";
}
else if (map[row - 1][col] == BOX&&
map[row - 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row - 1, col);
cout << " ";
map[row - 1][col] = RAOD;
map[row - 2][col] = BOX;
row -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row - 1, col);
cout << "★";
}
else if (map[row - 1][col] == GOAL&&
map[row - 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row -= 1;
map[row][col] = RAOD;
map[row - 1][col] = RAOD;
GotoXY(row, col);
cout << "♀";
}
else if (map[row - 1][col] == GOAL&&
map[row - 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row - 1, col);
cout << " ";
row -= 1;
map[row][col] = RAOD;
map[row - 1][col] = GOAL;
map[row - 2][col] = RAOD;
GotoXY(row, col);
cout << "♀";
GotoXY(row - 1, col);
cout << "☆";
}
if (map[3][3] != GOAL&&map[3][3] != BOX)
{
GotoXY(3, 3);
cout << "☆";
}
if (map[3][4] != GOAL&&map[3][4] != BOX)
{
GotoXY(3, 4);
cout << "☆";
}
if (map[4][3] != GOAL&&map[4][3] != BOX)
{
GotoXY(4, 3);
cout << "☆";
}
if (map[4][4] != GOAL&&map[4][4] != BOX)
{
GotoXY(4, 4);
cout << "☆";
}
break;
case 's':
case 'S':
if (map[row + 1][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row += 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row + 1][col] == BOX&&
map[row + 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
map[row + 1][col] = RAOD;
map[row + 2][col] = BOX;
row += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "★";
}
else if (map[row + 1][col] == BOX&&
map[row + 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
map[row + 1][col] = RAOD;
map[row + 2][col] = BOX;
row += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "★";
}
else if (map[row + 1][col] == GOAL&&
map[row + 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
row += 1;
map[row][col] = RAOD;
map[row + 1][col] = RAOD;
GotoXY(row, col);
cout << "♀";
}
else if (map[row + 1][col] == GOAL&&
map[row + 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
row += 1;
map[row][col] = RAOD;
map[row + 1][col] = GOAL;
map[row + 2][col] = RAOD;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "☆";
}
if (map[3][3] != GOAL&&map[3][3] != BOX)
{
GotoXY(3, 3);
cout << "☆";
}
if (map[3][4] != GOAL&&map[3][4] != BOX)
{
GotoXY(3, 4);
cout << "☆";
}
if (map[4][3] != GOAL&&map[4][3] != BOX)
{
GotoXY(4, 3);
cout << "☆";
}
if (map[4][4] != GOAL&&map[4][4] != BOX)
{
GotoXY(4, 4);
cout << "☆";
}
break;
case 'a':
case 'A':
if (map[row][col - 1] == RAOD)
{
GotoXY(row, col);
cout << " ";
col -= 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col - 1] == BOX&&
map[row][col - 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
map[row][col - 1] = RAOD;
map[row][col - 2] = BOX;
col -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col - 1);
cout << "★";
}
else if (map[row][col - 1] == BOX&&
map[row][col - 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
map[row][col - 1] = RAOD;
map[row][col - 2] = BOX;
col -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col - 1);
cout << "★";
}
else if (map[row][col - 1] == GOAL&&
map[row][col - 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
col -= 1;
map[row][col] = RAOD;
map[row][col - 1] = RAOD;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col - 1] == GOAL&&
map[row][col - 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
row -= 1;
map[row][col] = RAOD;
map[row][col - 1] = GOAL;
map[row][col - 2] = RAOD;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "☆";
}
if (map[3][3] != GOAL&&map[3][3] != BOX)
{
GotoXY(3, 3);
cout << "☆";
}
if (map[3][4] != GOAL&&map[3][4] != BOX)
{
GotoXY(3, 4);
cout << "☆";
}
if (map[4][3] != GOAL&&map[4][3] != BOX)
{
GotoXY(4, 3);
cout << "☆";
}
if (map[4][4] != GOAL&&map[4][4] != BOX)
{
GotoXY(4, 4);
cout << "☆";
}
break;
case 'd':
case 'D':
if (map[row][col + 1] == RAOD)
{
GotoXY(row, col);
cout << " ";
col += 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col + 1] == BOX&&
map[row][col + 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
map[row][col + 1] = RAOD;
map[row][col + 2] = BOX;
col += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col + 1);
cout << "★";
}
else if (map[row][col + 1] == BOX&&
map[row][col + 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
map[row][col + 1] = RAOD;
map[row][col + 2] = BOX;
col += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col + 1);
cout << "★";
}
else if (map[row][col + 1] == GOAL&&
map[row][col + 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
col += 1;
map[row][col] = RAOD;
map[row][col + 1] = RAOD;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col + 1] == GOAL&&
map[row][col + 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
row += 1;
map[row][col] = RAOD;
map[row][col + 1] = GOAL;
map[row][col + 2] = RAOD;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "☆";
}
if (map[3][3] != GOAL&&map[3][3] != BOX)
{
GotoXY(3, 3);
cout << "☆";
}
if (map[3][4] != GOAL&&map[3][4] != BOX)
{
GotoXY(3, 4);
cout << "☆";
}
if (map[4][3] != GOAL&&map[4][3] != BOX)
{
GotoXY(4, 3);
cout << "☆";
}
if (map[4][4] != GOAL&&map[4][4] != BOX)
{
GotoXY(4, 4);
cout << "☆";
}
break;
}
}
}
void main()
{
HideCursor();
Pass1();
Pass2();
}
#include <Windows.h>
#include <conio.h>
using namespace std;
void HideCursor()//隐藏光标函数
{
CONSOLE_CURSOR_INFO cursor_info = { 1, 0 };
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void GotoXY(int row, int col)//定位光标的函数/将光标移动到指定的像素点
{
COORD pos;
pos.X = 2 * col;
pos.Y = row;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
#define Pass1ROW 9//宏定义地图的行
#define Pass1COL 9//宏定义地图的行
#define Pass2ROW 7
#define Pass2COL 8
#define RAOD 0//空为0
#define WALL 1//■为墙/1
#define BOX 2//★为箱子/2
#define GOAL 3//☆为目标/3
void Pass1()
{
int map[Pass1ROW][Pass1COL] =
{
{ 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 2, 0, 0, 0, 3, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 2, 0, 0, 0, 3, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1 }
};
for (int i = 0; i < Pass1ROW; i++)
{
for (int j = 0; j < Pass1COL; j++)
{
switch (map[i][j])
{
case RAOD:
{
cout << " ";
break;
}
case WALL:
{
cout << "■";
break;
}
case BOX:
{
cout << "★";
break;
}
case GOAL:
{
cout << "☆";
break;
}
}
}cout << endl;
}
cout << " " << "第一关" << " " << endl;
cout << "w:向上" << " " << "s:向下" << endl;
cout << "a:向左" << " " << "d:向右" << endl;
int row = 4, col = 4;
while (true)
{
if (map[2][6] == BOX && map[5][6] == BOX)
{
GotoXY(10, 0);
cout << " " << "恭喜过关" << " " << endl;
cout << "w:向上" << " " << "s:向下" << endl;
cout << "a:向左" << " " << "d:向右" << endl;
system("pause>nul");
Sleep(1000);
system("cls");
return;
}
GotoXY(row, col);
cout << "♀";
char ch = _getch();
switch (ch)
{
case 'w':
case 'W':
if (map[row - 1][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row -= 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row - 1][col] == BOX&&
map[row - 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row - 1, col);
cout << " ";
map[row - 1][col] = RAOD;
map[row - 2][col] = BOX;
row -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row - 1, col);
cout << "★";
}
else if (map[row - 1][col] == BOX&&
map[row - 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row - 1, col);
cout << " ";
map[row - 1][col] = RAOD;
map[row - 2][col] = BOX;
row -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row - 1, col);
cout << "★";
}
else if (map[row - 1][col] == GOAL&&map[row - 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row -= 1;
map[row][col] = RAOD;
map[row - 1][col] = RAOD;
GotoXY(row, col);
cout << "♀";
}
if (map[2][6] != GOAL&&map[2][6] != BOX)
{
GotoXY(2, 6);
cout << "☆";
}
if (map[5][6] != GOAL&&map[5][6] != BOX)
{
GotoXY(5, 6);
cout << "☆";
}
break;
case 's':
case 'S':
if (map[row + 1][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row += 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row + 1][col] == BOX&&
map[row + 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
map[row + 1][col] = RAOD;
map[row + 2][col] = BOX;
row += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "★";
}
else if (map[row + 1][col] == BOX&&
map[row + 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
map[row + 1][col] = RAOD;
map[row + 2][col] = BOX;
row += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "★";
}
else if (map[row + 1][col] == GOAL&&map[row + 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col);
cout << " ";
row += 1;
map[row][col] = RAOD;
map[row + 1][col] = RAOD;
GotoXY(row, col);
cout << "♀";
}
if (map[2][6] != GOAL&&map[2][6] != BOX)
{
GotoXY(2, 6);
cout << "☆";
}
if (map[5][6] != GOAL&&map[5][6] != BOX)
{
GotoXY(5, 6);
cout << "☆";
}
break;
case 'a':
case 'A':
if (map[row][col - 1] == RAOD)
{
GotoXY(row, col);
cout << " ";
col -= 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col - 1] == BOX&&
map[row][col - 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
map[row][col - 1] = RAOD;
map[row][col - 2] = BOX;
col -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col - 1);
cout << "★";
}
else if (map[row][col - 1] == BOX&&
map[row][col - 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
map[row][col - 1] = RAOD;
map[row][col - 2] = BOX;
col -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col - 1);
cout << "★";
}
else if (map[row][col - 1] == GOAL&&map[row][col - 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col);
cout << " ";
col -= 1;
map[row][col] = RAOD;
map[row][col - 1] = RAOD;
GotoXY(row, col);
cout << "♀";
}
if (map[2][6] != GOAL&&map[2][6] != BOX)
{
GotoXY(2, 6);
cout << "☆";
}
if (map[5][6] != GOAL&&map[5][6] != BOX)
{
GotoXY(5, 6);
cout << "☆";
}
break;
case 'd':
case 'D':
if (map[row][col + 1] == RAOD)
{
GotoXY(row, col);
cout << " ";
col += 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col + 1] == BOX&&
map[row][col + 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
map[row][col + 1] = RAOD;
map[row][col + 2] = BOX;
col += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col + 1);
cout << "★";
}
else if (map[row][col + 1] == BOX&&
map[row][col + 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
map[row][col + 1] = RAOD;
map[row][col + 2] = BOX;
col += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col + 1);
cout << "★";
}
else if (map[row][col + 1] == GOAL&&map[row][col + 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col);
cout << " ";
col += 1;
map[row][col] = RAOD;
map[row][col + 1] = RAOD;
GotoXY(row, col);
cout << "♀";
}
if (map[2][6] != GOAL&&map[2][6] != BOX)
{
GotoXY(2, 6);
cout << "☆";
}
if (map[5][6] != GOAL&&map[5][6] != BOX)
{
GotoXY(5, 6);
cout << "☆";
}
break;
}
}
}
void Pass2()
{
int map[Pass1ROW][Pass1COL] =
{
{ 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 2, 0, 0, 2, 0, 0, 1 },
{ 1, 0, 0, 3, 3, 0, 0, 0, 1 },
{ 1, 0, 0, 3, 3, 0, 0, 0, 1 },
{ 1, 0, 2, 0, 0, 2, 0, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 0, 0, 0, 0, 0, 0, 0, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1 }
};
//3,1 3,2 3,3 3,4 3,5 3,6 为GOAL 目标点
for (int i = 0; i < Pass1ROW; i++)
{
for (int j = 0; j < Pass1COL; j++)
{
switch (map[i][j])
{
case RAOD:
{
cout << " ";
break;
}
case WALL:
{
cout << "■";
break;
}
case BOX:
{
cout << "★";
break;
}
case GOAL:
{
cout << "☆";
break;
}
}
}
cout << endl;
}
cout << " " << "第二关" << " " << endl;
cout << "w:向上" << "" << "s:向下" << endl;
cout << "a:向左" << "" << "d:向右" << endl;
int row = 6, col = 4;
while (true)
{
if (map[3][3] == BOX && map[3][4] == BOX&&map[4][3] == BOX&&map[4][4] == BOX)
{
GotoXY(10, 0);
cout << " " << "恭喜过关" << " " << endl; cout << " " << "游戏结束" << " " << endl;
cout << "w:向上" << " " << "s:向下" << endl;
cout << "a:向左" << " " << "d:向右" << endl;
system("pause>nul");
Sleep(1000);
exit(0);
return;
}
GotoXY(row, col);
cout << "♀";
char ch = _getch();
switch (ch)
{
case 'w':
case 'W':
if (map[row - 1][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row -= 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row - 1][col] == BOX&&
map[row - 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row - 1, col);
cout << " ";
map[row - 1][col] = RAOD;
map[row - 2][col] = BOX;
row -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row - 1, col);
cout << "★";
}
else if (map[row - 1][col] == BOX&&
map[row - 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row - 1, col);
cout << " ";
map[row - 1][col] = RAOD;
map[row - 2][col] = BOX;
row -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row - 1, col);
cout << "★";
}
else if (map[row - 1][col] == GOAL&&
map[row - 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row -= 1;
map[row][col] = RAOD;
map[row - 1][col] = RAOD;
GotoXY(row, col);
cout << "♀";
}
else if (map[row - 1][col] == GOAL&&
map[row - 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row - 1, col);
cout << " ";
row -= 1;
map[row][col] = RAOD;
map[row - 1][col] = GOAL;
map[row - 2][col] = RAOD;
GotoXY(row, col);
cout << "♀";
GotoXY(row - 1, col);
cout << "☆";
}
if (map[3][3] != GOAL&&map[3][3] != BOX)
{
GotoXY(3, 3);
cout << "☆";
}
if (map[3][4] != GOAL&&map[3][4] != BOX)
{
GotoXY(3, 4);
cout << "☆";
}
if (map[4][3] != GOAL&&map[4][3] != BOX)
{
GotoXY(4, 3);
cout << "☆";
}
if (map[4][4] != GOAL&&map[4][4] != BOX)
{
GotoXY(4, 4);
cout << "☆";
}
break;
case 's':
case 'S':
if (map[row + 1][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
row += 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row + 1][col] == BOX&&
map[row + 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
map[row + 1][col] = RAOD;
map[row + 2][col] = BOX;
row += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "★";
}
else if (map[row + 1][col] == BOX&&
map[row + 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
map[row + 1][col] = RAOD;
map[row + 2][col] = BOX;
row += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "★";
}
else if (map[row + 1][col] == GOAL&&
map[row + 2][col] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
row += 1;
map[row][col] = RAOD;
map[row + 1][col] = RAOD;
GotoXY(row, col);
cout << "♀";
}
else if (map[row + 1][col] == GOAL&&
map[row + 2][col] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row + 1, col);
cout << " ";
row += 1;
map[row][col] = RAOD;
map[row + 1][col] = GOAL;
map[row + 2][col] = RAOD;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "☆";
}
if (map[3][3] != GOAL&&map[3][3] != BOX)
{
GotoXY(3, 3);
cout << "☆";
}
if (map[3][4] != GOAL&&map[3][4] != BOX)
{
GotoXY(3, 4);
cout << "☆";
}
if (map[4][3] != GOAL&&map[4][3] != BOX)
{
GotoXY(4, 3);
cout << "☆";
}
if (map[4][4] != GOAL&&map[4][4] != BOX)
{
GotoXY(4, 4);
cout << "☆";
}
break;
case 'a':
case 'A':
if (map[row][col - 1] == RAOD)
{
GotoXY(row, col);
cout << " ";
col -= 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col - 1] == BOX&&
map[row][col - 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
map[row][col - 1] = RAOD;
map[row][col - 2] = BOX;
col -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col - 1);
cout << "★";
}
else if (map[row][col - 1] == BOX&&
map[row][col - 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
map[row][col - 1] = RAOD;
map[row][col - 2] = BOX;
col -= 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col - 1);
cout << "★";
}
else if (map[row][col - 1] == GOAL&&
map[row][col - 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
col -= 1;
map[row][col] = RAOD;
map[row][col - 1] = RAOD;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col - 1] == GOAL&&
map[row][col - 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col - 1);
cout << " ";
row -= 1;
map[row][col] = RAOD;
map[row][col - 1] = GOAL;
map[row][col - 2] = RAOD;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "☆";
}
if (map[3][3] != GOAL&&map[3][3] != BOX)
{
GotoXY(3, 3);
cout << "☆";
}
if (map[3][4] != GOAL&&map[3][4] != BOX)
{
GotoXY(3, 4);
cout << "☆";
}
if (map[4][3] != GOAL&&map[4][3] != BOX)
{
GotoXY(4, 3);
cout << "☆";
}
if (map[4][4] != GOAL&&map[4][4] != BOX)
{
GotoXY(4, 4);
cout << "☆";
}
break;
case 'd':
case 'D':
if (map[row][col + 1] == RAOD)
{
GotoXY(row, col);
cout << " ";
col += 1;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col + 1] == BOX&&
map[row][col + 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
map[row][col + 1] = RAOD;
map[row][col + 2] = BOX;
col += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col + 1);
cout << "★";
}
else if (map[row][col + 1] == BOX&&
map[row][col + 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
map[row][col + 1] = RAOD;
map[row][col + 2] = BOX;
col += 1;
GotoXY(row, col);
cout << "♀";
GotoXY(row, col + 1);
cout << "★";
}
else if (map[row][col + 1] == GOAL&&
map[row][col + 2] == RAOD)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
col += 1;
map[row][col] = RAOD;
map[row][col + 1] = RAOD;
GotoXY(row, col);
cout << "♀";
}
else if (map[row][col + 1] == GOAL&&
map[row][col + 2] == GOAL)
{
GotoXY(row, col);
cout << " ";
GotoXY(row, col + 1);
cout << " ";
row += 1;
map[row][col] = RAOD;
map[row][col + 1] = GOAL;
map[row][col + 2] = RAOD;
GotoXY(row, col);
cout << "♀";
GotoXY(row + 1, col);
cout << "☆";
}
if (map[3][3] != GOAL&&map[3][3] != BOX)
{
GotoXY(3, 3);
cout << "☆";
}
if (map[3][4] != GOAL&&map[3][4] != BOX)
{
GotoXY(3, 4);
cout << "☆";
}
if (map[4][3] != GOAL&&map[4][3] != BOX)
{
GotoXY(4, 3);
cout << "☆";
}
if (map[4][4] != GOAL&&map[4][4] != BOX)
{
GotoXY(4, 4);
cout << "☆";
}
break;
}
}
}
void main()
{
HideCursor();
Pass1();
Pass2();
}
阅读全文
1 0
- 5.C++面向过程的方式写的推箱子游戏
- 2003年时写的一个类似于推箱子的游戏
- C 推箱子游戏
- Hdu1254-推箱子(经典的推箱子游戏)-bfs
- 用面向过程写简单推箱子逻辑
- c语言的推箱子
- C游戏 推箱子游戏
- 简单的推箱子游戏的实现
- 推箱子游戏算法的一点改进:拉箱子
- 推箱子游戏的自动求解
- 推箱子II游戏代码的改进
- 推箱子游戏的自动求解
- 推箱子游戏的求解算法
- 一个简单的推箱子游戏
- 实例,js实现的推箱子游戏
- [html5游戏开发]经典的推箱子
- [html5游戏开发]经典的推箱子
- c++之简单的推箱子游戏
- Java 抽象类abstract
- Retrofit介绍案例
- Python简单的小实验输出对应车站的中文简写(主要是为了解决汉字编码问题)
- Error:Execution failed for task ':app:mergeDebugResources'. > Crunching CrunCruncher Iicon_light.pn
- 存储模型2---虚拟存储技术
- 5.C++面向过程的方式写的推箱子游戏
- Qt悬浮气泡
- 论文阅读-XGBoost: A Scalable Tree Boosting System
- Java序谈之String类的成员方法以及使用方法
- form表单上传文件时,需要的配置
- SpringBoot系列<五>全局异常处理
- 机器学习实战 Python3编译存在的各种问题
- lintcode 2:尾部的零
- C++与matlab存储方式的不同