基本操作一样(w 跳跃、a 左、d 右、q 左跳、e 右跳)
拥有了角色选择设定(可以自己添加)
新的地图
和原版地图不能说一模一样,只能说毫不相关
代码如下:
三个文件
game.h(声明)
#include<stdio.h>
#include<windows.h>
#include<time.h>
#include<conio.h>
#define ROW 9
#define COL 100
void menu();
char Role(char role);
void InitBoard(char board[ROW][COL], int row, int col);
void DisplayBoard(char board[ROW][COL], int row, int col);
void Map(char board[ROW][COL], int row, int col);
void MoveLeft(char board[ROW][COL], int x, int y);
void MoveRight(char board[ROW][COL], int x, int y);
game.c(函数)有些没用到,懒得去删了
#include"game.h"
void menu()
{
printf("#######################\n");
printf("####1、play 2、exit####\n");
printf("#######################\n");
printf("#######################\n");
printf("#######################\n");
}
char Role(char role)
{
int a;
sb:
scanf_s("%d", &a);
if (a == 1)
{
return '$';
}
if (a == 2)
{
return '&';
}
else
{
goto sb;
}
}
void InitBoard(char board[ROW][COL], int row, int col)
{
int i = 0;
int j = 0;
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
board[i][j] = ' ';
}
}
}
void DisplayBoard(char board[ROW][COL], int row, int col)
{
int i = 0;
int j = 0;
for (i = 0; i < ROW; i++)
{
for (j = 0; j < COL; j++)
{
printf("%c", board[i][j]);
}
printf("\n");
}
}
test.c(游戏测试、主函数)
#include"game.h"
void test()
{
int x = ROW - 3;
int y = 0;
char role=0;
system("cls");
printf("#######################\n");
printf(" P1 $ \n");
printf(" P2 & \n");
printf(" \n");
printf("#######################\n");
role = Role(role);//角色
char board[ROW][COL] = {
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},//line 1
{' ',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','*',' ',' ',' '},//line 2
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#',' ',' ','|',' ',' ',' '},//line 3
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#','#','#','#',' ',' ','#','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#',' ',' ','#','#','#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#','#','#',' ',' ',' ',' ',' ',' ',' ','#','#',' ',' ','|',' ',' ',' '},//line 4
{' ',' ',' ','#',' ',' ','#','#','#',' ',' ',' ',' ','#','#',' ',' ','#','#',' ',' ','#','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#',' ','#','#',' ',' ',' ',' ','#','#',' ',' ','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#','#',' ',' ','|',' ',' ',' '},//line 5
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#',' ','#','#',' ',' ','#','#',' ',' ','#','#',' ',' ',' ',' ',' ',' ','#','#',' ',' ',' ',' ',' ',' ',' ',' ','#',' ','#','#',' ',' ','#',' ','#','#','#',' ',' ','#',' ',' ',' ',' ',' ','#','#',' ',' ','#','#','#',' ','#','#','#',' ',' ','#','#','#',' ',' ','#','#',' ',' ','#',' ',' ',' ',' ',' ','#',' ',' ',' ','#','#','#','#',' ',' ','|',' ',' ',' '},//line 6
{' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#',' ','#','#','#',' ','#','#','#',' ','#','#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ','#','#','#',' ','#',' ',' ',' ',' ',' ','#',' ',' ','#','#','#','#','#',' ',' ','|',' ',' ',' '},//line 7
{'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ',' ','#','#','#','#','#','#','#','#',' ',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#'},//line 8
{'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ',' ','#','#','#','#','#','#','#','#',' ',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#',' ',' ','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#'},//line 8
};
//InitBoard(board, ROW, COL);
system("cls");
DisplayBoard(board, ROW, COL);
//Map(board, ROW, COL);
board[x][y] = role;
system("cls");
DisplayBoard(board, ROW, COL);
while(1)
{
//方向键开始
int move = _getch();
//move left
if (move == 'a')
{
if (board[x][y - 1] != '#')
{
board[x][y] = board[x][y - 1];
y--;
board[x][y] = role;
system("cls");
DisplayBoard(board, ROW, COL);
Sleep(80);
}
//gravity 重力
while (board[x + 1][y] != '#')
{
board[x][y] = board[x + 1][y];
x++;
board[x][y] = role;
}
system("cls");
DisplayBoard(board, ROW, COL);
}
//move right
if (move == 'd')
{
if (board[x][y + 1] != '#')
{
board[x][y] = board[x][y + 1];
y++;
board[x][y] = role;
system("cls");
DisplayBoard(board, ROW, COL);
Sleep(80);
}
//gravity 重力
while (board[x + 1][y] != '#')
{
board[x][y] = board[x + 1][y];
x++;
board[x][y] = role;
}
system("cls");
DisplayBoard(board, ROW, COL);
}
//jump
if (move == 'w')
{
if (board[x - 1][y] != '#' && board[x - 2][y] != '#')
{
board[x][y] = board[x - 2][y];
x -= 2;
board[x][y] = role;
system("cls");
DisplayBoard(board, ROW, COL);
Sleep(80);
//gravity 重力
while (board[x + 1][y] != '#')
{
board[x][y] = board[x + 1][y];
x++;
board[x][y] = role;
}
system("cls");
DisplayBoard(board, ROW, COL);
}
if (board[x - 1][y] != '#' && board[x - 2][y] == '#')
{
board[x][y] = board[x - 1][y];
x -= 1;
board[x][y] = role;
system("cls");
DisplayBoard(board, ROW, COL);
Sleep(80);
//gravity 重力
while (board[x + 1][y] != '#')
{
board[x][y] = board[x + 1][y];
x++;
board[x][y] = role;
}
system("cls");
DisplayBoard(board, ROW, COL);
}
}
//jump right
if (move == 'e')
{
if (board[x - 1][y] != '#' && board[x - 2][y + 1] != '#' && board[x - 1][y + 2] != '#' && board[x][y + 3] != '#')
{
board[x][y] = board[x - 1][y];
x--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x - 1][y + 1];
x--;
y++;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x + 1][y + 1];
x++;
y++;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x + 1][y + 1];
x++;
y++;
board[x][y] = role;
system("cls");
DisplayBoard(board, ROW, COL);
}
else if (board[x - 1][y] != '#' && board[x - 2][y + 1] != '#' && board[x - 1][y + 2] != '#' && board[x][y + 3] == '#')
{
board[x][y] = board[x - 1][y];
x--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x - 1][y + 1];
x--;
y++;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x + 1][y + 1];
x++;
y++;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
}
else if (board[x - 1][y] != '#' && board[x - 2][y + 1] != '#' && board[x - 1][y + 2] == '#')
{
board[x][y] = board[x - 1][y];
x--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x - 1][y + 1];
x--;
y++;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
}
else if (board[x - 1][y] != '#' && board[x - 2][y + 1] == '#')
{
board[x][y] = board[x - 1][y];
x--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
}
else if (board[x - 1][y] != '#')
{
;
}
while (board[x + 1][y] != '#')
{
board[x][y] = board[x + 1][y];
x++;
board[x][y] = role;
}
system("cls");
DisplayBoard(board, ROW, COL);
}
//jump left
if (move == 'q')
{
if (board[x - 1][y] != '#' && board[x - 2][y - 1] != '#' && board[x - 1][y - 2] != '#' && board[x][y - 3] != '#')
{
board[x][y] = board[x - 1][y];
x--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x - 1][y - 1];
x--;
y--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x + 1][y - 1];
x++;
y--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x + 1][y - 1];
x++;
y--;
board[x][y] = role;
system("cls");
DisplayBoard(board, ROW, COL);
}
else if (board[x - 1][y] != '#' && board[x - 2][y - 1] != '#' && board[x - 1][y - 2] != '#' && board[x][y - 3] == '#')
{
board[x][y] = board[x - 1][y];
x--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x - 1][y - 1];
x--;
y--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x + 1][y - 1];
x++;
y--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
}
else if (board[x - 1][y] != '#' && board[x - 2][y - 1] != '#' && board[x - 1][y - 2] == '#')
{
board[x][y] = board[x - 1][y];
x--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
board[x][y] = board[x - 1][y - 1];
x--;
y--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
}
else if (board[x - 1][y] != '#' && board[x - 2][y - 1] == '#')
{
board[x][y] = board[x - 1][y];
x--;
board[x][y] = role;
Sleep(20);
system("cls");
DisplayBoard(board, ROW, COL);
}
else if (board[x - 1][y] != '#')
{
;
}
while (board[x + 1][y] != '#')
{
board[x][y] = board[x + 1][y];
x++;
board[x][y] = role;
}
system("cls");
DisplayBoard(board, ROW, COL);
}
//方向键结束
if (board[x][y] == board[6][95])//到达游戏最后一列,游戏结束
{
break;
}
}
Sleep(200);
system("cls");
printf(" \n");
printf(" WIN! \n");
printf(" \n");
printf(" \n");
}
int main()
{
menu();
int input;
again:
scanf_s("%d", &input);
switch (input)
{
case 1:
test();
break;
case 2:
break;
default:
goto again;
}
}