본문 ¶
1. printf 노가다 버젼.
#include<stdio.h>
#include<Windows.h>
//system("cls"); -> 비쥬얼 스튜디오에서 화면 깨끗하게 하는 법.
// ㄴ#include<windows.h> 선언후 사용.
// #include<conio.h>의 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<stdio.h>
#include<Windows.h>
//system("cls"); -> 비쥬얼 스튜디오에서 화면 깨끗하게 하는 법.
// ㄴ#include<windows.h> 선언후 사용.
// #include<conio.h>의 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<stdio.h>
#include<Windows.h>
//system("cls"); -> 비쥬얼 스튜디오에서 화면 깨끗하게 하는 법.
// ㄴ#include<windows.h> 선언후 사용.
// #include<conio.h>의 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;
}
<a href=http://pds22.egloos.com/pds/201104/16/51/JT.exe>릴리즈 버전</a>
소감 ¶
- 노가다로 짠게 좀 아쉽다.
- 함수선언 + for문으로 하는데 거의 성공했다. (숫자가 어려워서 *로 도전중이다.)
- 처음으로 흥미롭게 하는 프로젝트 (.. 라기엔 좀 초라한듯) 인것 같다.
- 목표는 스케일을 입력받고 항상 원하는 모양으로 출력되게 하는것이다. (입력 한도는 int 한계까지)
- 이건 벌써 실현 불가능이라고 판명. 화면이 버티질 못한다 ㄷㄷ;;
- 이건 벌써 실현 불가능이라고 판명. 화면이 버티질 못한다 ㄷㄷ;;










