#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <conio.h>
char map[10][10][10];
char mapyx[10][10];
char mapzx[10][10];
void rotation();
void init();
void spin();
void print()
{
map[4][4][6] = '0'; // 위에서 봤을때 옆 x, 높이 y, 정면에서 봤을때 옆 x, 높이 z
map[4][4][5] = '0';
map[3][4][6] = '0';
map[3][4][5] = '0';
for (int z = 10; z >= 0; z--)
{
for (int y = 10; y >= 0; y--)
{
for (int x = 0; x < 10; x++)
{
if (map[z][y][x] != 0 && mapyx[y][x] == 0)
{
mapyx[y][x] = map[z][y][x];
}
if (z == 0)
{
printf("%c ", mapyx[y][x]);
}
}
if (z == 0)
{
printf("\n");
}
}
}
printf("\n");
for (int z = 10; z >= 0; z--)
{
for (int y = 10; y >= 0; y--)
{
for (int x = 0; x < 10; x++)
{
if (map[z][y][x] != 0 && mapzx[z][x] == 0)
{
mapzx[z][x] = map[z][y][x];
}
if (y == 0)
{
printf("%c ", mapzx[z][x]);
}
}
if (y == 0)
{
printf("\n");
}
}
}
}
void rotation() //배열 회전시키는 함수
{
char temp_map[10][10][10];
int key = 0;
int a = 0;
for (int z = 9; z >= 0; z--)
{
for (int y = 9; y >= 0; y--)
{
for (int x = 0; x < 10; x++)
{
temp_map[z][y][x] = map[z][y][x];
}
}
}
while (1)
{
key = _getch();
if (key == 224)
{
key = _getch();
if (key == 75)//반시계방향
{
for (int z = 9; z >= 0; z--)
{
for (int x = 9; x >= 0; x--)
{
for (int y = 0; y < 10; y++)
{
a = 9 - x;
map[z][y][x] = temp_map[z][a][y];
}
}
}
for (int z = 0; z < 10; z++)
{
for (int y = 9; y >= 0; y--)
{
for (int x = 0; x < 10; x++)
{
temp_map[z][y][x] = map[z][y][x];
}
}
}
}
if (key == 77)//시계방향
{
for (int z = 9; z >= 0; z--)
{
for (int y = 9; y >= 0; y--)
{
for (int x = 0; x < 10; x++)
{
map[z][y][x] = temp_map[z][x][9 - y];
}
}
}
for (int z = 9; z >= 0; z--)
{
for (int y = 9; y >= 0; y--)
{
for (int x = 0; x < 10; x++)
{
temp_map[z][y][x] = map[z][y][x];
}
}
}
}
}
system("cls");
print();
}
}
int main()
{
srand((unsigned)time(NULL));
int key = 0;
system("cls");
print();
rotation();
}
(실행 시켰을때 첫번째로 보이는 배열은 위에서 바라보는 시점(xy좌표)이고 두번째로 보이는 배열은 정면에서 바라보는 시점(xz좌표)입니다
3차원 배열을 만들어서 방향키로 좌우로 회전시키는걸 해보고 있는데 실행시켜보면 알수 있듯이 배열을 회전 시키면 회전이 되긴 하는데 회전 후에도 회전하기 전에 있던 배열값이 같이 출력이 됩니다... 회전된 배열값만 출력하게 할려면 어떻게 해야하나요?