이쁘게 구현하려고 노력했습니다....;; -ㅅ-a
~cpp #include <iostream> #include <ctime> using namespace std; int main() { int i=0, j=0, row=0, col=0; int count=1, direction=0, walk=0; int land[12][12]; for(i=0; i<12; i++) // 벽 (〓) { land[i][0] = -1; land[i][11] = -1; } for(j=0; j<12; j++) // 벽 (||) { land[0][j] = -1; land[11][j] = -1; } for(i=1; i<11; i++) // 10 X 10 행렬 { for(j=1; j<11; j++) { land[i][j] = 0; } } srand((time(0))); // 랜덤 row = rand() % 10 + 1; col = rand() % 10 + 1; land[row][col]++; // 임의의 첫째점 while(count != 0) { count = 0; direction = rand() % 8 + 1; switch(direction) { case 1: if(land[row-1][col-1] != -1) // ↖ 방향 이동 { land[--row][--col]++; walk++; break; } case 2: if(land[row-1][col] != -1) // ↑ 방향 이동 { land[--row][col]++; walk++; break; } case 3: if(land[row-1][col+1] != -1) // ↗ 방향 이동 { land[--row][++col]++; walk++; break; } case 4: if(land[row][col-1] != -1) // ← 방향 이동 { land[row][--col]++; walk++; break; } case 5: if(land[row][col+1] != -1) // → 방향 이동 { land[row][++col]++; walk++; break; } case 6: if(land[row+1][col-1] != -1) // ↙ 방향 이동 { land[++row][--col]++; walk++; break; } case 7: if(land[row+1][col] != -1) // ↓ 방향 이동 { land[++row][col]++; walk++; break; } case 8: if(land[row+1][col+1] != -1) // ↘ 방향 이동 { land[++row][++col]++; walk++; break; } } for(i=1; i<11; i++) { for(j=1; j<11; j++) { if(land[i][j] == 0) { count++; break; } } if(land[i][j] == 0) { count++; break; } } cout << "지금까지 " << walk << " 걸음 걸었"; if(walk >= 0 && walk <= 200) cout << "다.\n이 정도 쯤이야! 풉!" << endl; else if(walk > 200 && walk <= 400) cout << "다...\n점점 압박이..." << endl; else if(walk > 400 && walk <= 600) cout << "네....;;\n숨이 가빠오는군...;" << endl; else if(walk > 600 && walk <= 800) cout << "구운.......;;\n언제 쯤 끝나려나...?" << endl; else if(walk > 800 && walk <= 1000) cout << "... 헥헥..;;;\n히, 힘들다... ;□;" << endl; else cout << "슈~~\n꽤애애애액~~~~!! =□=;;;" << endl; for(i=1; i<11; i++) { for(j=1; j<11; j++) cout << land[i][j] << "\t"; cout << "\n"; } system("cls"); } cout << "결국 " << walk << " 걸음으로 모든 곳을 갈 수 있었다... 쿨럭;;\n\n"; for(i=1; i<11; i++) { for(j=1; j<11; j++) cout << land[i][j] << "\t"; cout << "\n"; } return 0; }