超级马里奥2.0

基本操作一样(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;
	}
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值