뭔가 가입은 했는데 뭐라도 올려야 될거 같아서 옛날에 만든거 올려봄 ㅋㅋㅋ


#include<stdio.h>

#include<Windows.h>

#include<time.h>


#define MX 21

#define Mx 20

#define MY 21

#define My 20


int map[MY][MX] = { 1, }, random, x = 0, y = 0;

bool check = true;


void gotoxy(int x, int y)

{

COORD Pos;

Pos.X = x;

Pos.Y = y;

SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);

}


void DrawPath(int addx, int addy)

{

x += addx / 2; y += addy / 2;

map[y][x] = 1;

gotoxy(x * 2, y);

printf("■");

}


void checker()

{

int addx = 0, addy = 0;

if (random == 1)addx = -2; //x--

if (random == 4)addx = 2; //x++

if (random == 2)addy = -2; //y--

if (random == 3)addy = 2; //y++


if ((random == 4 && !(x + 2 > Mx))

|| (random == 1) && !(x - 2 < 0)

|| (random == 2) && !(y - 2 < 0)

|| (random == 3) && !(y + 2 > My))

{

if (map[y + addy][x + addx] == 0) {

DrawPath(addx, addy);

DrawPath(addx, addy);

}

else if (map[y + addy][x + addx] == 1) {

x += addx;

y += addy;

}

}

}


void maze()

{

gotoxy(x * 2, y);

printf("■");

srand(time(NULL));


while (check) {

random = rand() % 4 + 1;

checker();


check = false;

for (int i = 0; i <= Mx; i += 2) {

for (int j = 0; j <= MY - 1; j += 2) {

if (map[j][i] == 0)

check = true;

}

}

}

}


void main()//maze 간략화 clear , 길찾기 ~ing , 0=벽 1= road

{

maze();

}