---- [고한종] ---- == 본문 == 1. printf 노가다 버젼. {{{ #include #include //system("cls"); -> 비쥬얼 스튜디오에서 화면 깨끗하게 하는 법. // ㄴ#include 선언후 사용. // #include의 clrscr();은 비쥬얼 C++에서는 안써진다더라. 왜그럴까 ㅠㅜ int main() { while(1) { printf(" 1 \n 2 \n6 7 3 8 9\n 4 \n 5 \n");//1 Sleep(250); system("cls"); printf("6 1\n 7 2 \n 3 \n 4 8 \n5 9\n");//2 Sleep(250); system("cls"); printf(" 6 \n 7 \n5 4 3 2 1\n 8 \n 9 \n");//3 Sleep(250); system("cls"); printf("5 6\n 4 7 \n 3 \n 8 2 \n9 1\n");//4 Sleep(250); system("cls"); printf(" 5 \n 4 \n9 8 3 7 6\n 2 \n 1 \n");//5 Sleep(250); system("cls"); printf("9 5\n 8 4 \n 3 \n 2 7 \n1 6\n");//6 Sleep(250); system("cls"); printf(" 9 \n 8 \n1 2 3 4 5\n 7 \n 6 \n");//7 Sleep(250); system("cls"); printf("1 9\n 2 8 \n 3 \n 7 4 \n6 5\n");//8 Sleep(250); system("cls"); } return 0; } }}} ---- 2. 함수선언으로 노가다를 좀 줄인버전. {{{ #include #include //system("cls"); -> 비쥬얼 스튜디오에서 화면 깨끗하게 하는 법. // ㄴ#include 선언후 사용. // #include의 clrscr();은 비쥬얼 C++에서는 안써진다더라. 왜그럴까 ㅠㅜ void frame1(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9) { printf(" %d \n %d \n%d %d %d %d %d\n %d \n %d \n",n1,n2,n3,n4,n5,n6,n7,n8,n9); Sleep(250); system("cls"); // 이걸 주석처리해서 각 프레임(?)을 볼 수 있다. } void frame2(int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9) { printf("%d %d\n %d %d \n %d \n %d %d \n%d %d\n",n1,n2,n3,n4,n5,n6,n7,n8,n9); Sleep(250); system("cls"); // 이걸 주석처리해서 각 프레임(?)을 볼 수 있다.(2) } int main() { int i=1; while(i/*--*/) // 이렇게 해두면 테스트해볼때 보기 편함 (주석을 뗀다면 말이죠.) { frame1(1,2,6,7,3,8,9,4,5); frame2(6,1,7,2,3,4,8,5,9); frame1(6,7,5,4,3,2,1,8,9); frame2(5,6,4,7,3,8,2,9,1); frame1(5,4,9,8,3,7,6,2,1); frame2(9,5,8,4,3,2,7,1,6); frame1(9,8,1,2,3,4,5,7,6); frame2(1,9,2,8,3,7,4,6,5); } return 0; } }}} ---- 3. 입력 받은 수 로 크기가 결정되고, 회전수가 기록되는 버전. {{{ #include #include //system("cls"); -> 비쥬얼 스튜디오에서 화면 깨끗하게 하는 법. // ㄴ#include 선언후 사용. // #include의 clrscr();은 비쥬얼 C++에서는 안써진다더라. 왜그럴까 ㅠㅜ int scale;// 전역 변수를 써야 한다니 ㅜㅠ void frame1() { int i, j; //i는 행, j는 열 int k; // i=2*scale-1; 이 것들은 최대 넓이. // j=4*scale-3; for(i=1;i<=2*scale-1;i++) { if(i==(scale)) { for(k=1;k<=4*scale-3;k++) { if((k%2)!=0){printf("*");} else{printf(" ");} } printf("\n"); } else { for(j=1;j<=2*scale-2;j++){printf(" ");} printf("*\n"); } } Sleep(250); system("cls"); } void frame2() { int i, j; //i는 행, j는 열 // i=2*scale-1; // j=4*scale-3; for(i=1;i<=2*scale-1;i++) { for(j=1;j<=4*scale-3;j++) { if(j==(2*i-1)) { printf("*"); } else if(j==(4*scale-2*i-1)) { printf("*"); } else { printf(" "); } } printf("\n"); } Sleep(250); system("cls"); } int main() { int spin =0; printf("사용하실 스케일을 입력하세요.\n"); Sleep(100); printf("1 => 1\n2 => 5\n3 => 9\nn => 4n-3\n"); printf("20보다 크게 입력하면 모양이 깨집니다. 주의!\n"); scanf_s("%d",&scale); while(1) { int f; spin++; for(f=0;f<8;f++) { if((f%2)==0)// f가 짝수 일때. { printf("회전수 : %d\n",spin); frame1(); } else //f가 홀수 일때. { printf("회전수 : %d\n",spin); frame2(); } } } return 0; } }}} ---- 릴리즈 버전 ---- == 소감 == * 노가다로 짠게 좀 아쉽다. * 함수선언 + for문으로 하는데 거의 성공했다. (숫자가 어려워서 *로 도전중이다.) * 처음으로 흥미롭게 하는 프로젝트 (.. 라기엔 좀 초라한듯) 인것 같다. * 목표는 스케일을 입력받고 항상 원하는 모양으로 출력되게 하는것이다. (입력 한도는 int 한계까지) * 이건 벌써 실현 불가능이라고 판명. 화면이 버티질 못한다 ㄷㄷ;; == 덧글 == * 마지막 버전의 *을 숫자로 바꾸기만 하면 목표 성공인데 도저히 못하겠습니다 ㅜㅠ 조언을 구합니다. - [고한종]