뭔가 가입은 했는데 뭐라도 올려야 될거 같아서 옛날에 만든거 올려봄 ㅋㅋㅋ
#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();
}
프갤 상위 1%
== 프로그래머 하위 1%