【C언어】크리스마스 트리를 커맨드 라인으로
13814 단어 C
크리스마스 트리
그런데 커맨드 라인에 크리스마스 트리를 그리고 싶다는 것을 생각한 것입니다. 나무의 모습으로는
¥
₩₩
₩₩₩
₩₩₩₩₩
₩₩
₩₩₩
₩₩₩₩₩
₩₩₩₩₩₩₩₩
₩₩₩
₩₩₩₩₩
₩₩₩₩₩₩₩₩
₩₩₩₩₩₩₩₩₩₩₩₩₩₩₩
]
]
""""""
이런 느낌의 나무를 선 대상으로 만드는 코드를 그립니다. (덧붙여서 기분으로 피보나치 수열이 되어 있습니다.)
코드
코드는 이런 느낌입니다.
tree.c#include "tree.h"
int main()
{
color_change(0x0e);
printf("%35s\n","*\0" );
color_change(0x02);
leaves_2();
color_change(0x04);
miki();
color_change(0x0b);
printf("Happy,Christmas!!\n");
color_change(0x0f);
return 0;
}
tree.h#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#define ARRAY_MAX 35
#define LEEFF "\\"
#define DECO1 "*"
#define DECO2 "?"
#define DECO3 "&"
#define SEED 25
void pri_deco1();
void pri_deco2();
void pri_deco3();
void leaves_2()
{
int a=1,b=2,tmp=0;
int i,j,k;
int x,y,z;
srand((unsigned)time(NULL));
printf("%35s\n",LEEFF);
for(k=0;k<4;k++){
x=a;
y=b;
for(i=0;i<5;i++){
for(j=0;j<34-a;j++){
printf(" ");
}
for(j=0;j<a;j++){
if ((rand()%15)==0) {
pri_deco1();
} else if((rand()%SEED)==1){
pri_deco2();
} else if((rand()%SEED)==2){
pri_deco3();
}else{
printf(LEEFF);
}
}
printf(LEEFF);
for(j=0;j<a;j++){
if ((rand()%15)==0) {
pri_deco1();
} else if((rand()%SEED)==1){
pri_deco2();
} else if((rand()%SEED)==2){
pri_deco3();
}else{
printf(LEEFF);
}
}
printf("\n");
tmp=a+b;
a=b;
b=tmp;
}
a=y;
b=x+y;
tmp=0;
}
}
void miki()
{
int i=0;
for(i=0;i<5;i++){
printf("%35s","| \0" );
printf("%7s\n","|" );
}
printf("%35s","-------\0" );
printf("%s\n","-------\0" );
}
void color_change(char col)
{
SetConsoleTextAttribute(
GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | col );
}
void pri_deco1()
{
color_change(0x0d);
printf(DECO1);
color_change(0x02);
}
void pri_deco2()
{
color_change(0x0b);
printf(DECO2);
color_change(0x02);
}
void pri_deco3()
{
color_change(0x0e);
printf(DECO3);
color_change(0x02);
}
이 코드를 실행하면 ↓
미토, 크리스마스 트리가 완성되었습니다.
이 코드는 난수로 장식을 출력하고 있기 때문에 장식의 위치가 매번 바뀌는 것도 재미 중 하나입니다 w
봐 주셔서 감사합니다.
Reference
이 문제에 관하여(【C언어】크리스마스 트리를 커맨드 라인으로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/drumath2237/items/28f48a9852f14cfe4458
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
코드는 이런 느낌입니다.
tree.c
#include "tree.h"
int main()
{
color_change(0x0e);
printf("%35s\n","*\0" );
color_change(0x02);
leaves_2();
color_change(0x04);
miki();
color_change(0x0b);
printf("Happy,Christmas!!\n");
color_change(0x0f);
return 0;
}
tree.h
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#define ARRAY_MAX 35
#define LEEFF "\\"
#define DECO1 "*"
#define DECO2 "?"
#define DECO3 "&"
#define SEED 25
void pri_deco1();
void pri_deco2();
void pri_deco3();
void leaves_2()
{
int a=1,b=2,tmp=0;
int i,j,k;
int x,y,z;
srand((unsigned)time(NULL));
printf("%35s\n",LEEFF);
for(k=0;k<4;k++){
x=a;
y=b;
for(i=0;i<5;i++){
for(j=0;j<34-a;j++){
printf(" ");
}
for(j=0;j<a;j++){
if ((rand()%15)==0) {
pri_deco1();
} else if((rand()%SEED)==1){
pri_deco2();
} else if((rand()%SEED)==2){
pri_deco3();
}else{
printf(LEEFF);
}
}
printf(LEEFF);
for(j=0;j<a;j++){
if ((rand()%15)==0) {
pri_deco1();
} else if((rand()%SEED)==1){
pri_deco2();
} else if((rand()%SEED)==2){
pri_deco3();
}else{
printf(LEEFF);
}
}
printf("\n");
tmp=a+b;
a=b;
b=tmp;
}
a=y;
b=x+y;
tmp=0;
}
}
void miki()
{
int i=0;
for(i=0;i<5;i++){
printf("%35s","| \0" );
printf("%7s\n","|" );
}
printf("%35s","-------\0" );
printf("%s\n","-------\0" );
}
void color_change(char col)
{
SetConsoleTextAttribute(
GetStdHandle(STD_OUTPUT_HANDLE),
FOREGROUND_INTENSITY | col );
}
void pri_deco1()
{
color_change(0x0d);
printf(DECO1);
color_change(0x02);
}
void pri_deco2()
{
color_change(0x0b);
printf(DECO2);
color_change(0x02);
}
void pri_deco3()
{
color_change(0x0e);
printf(DECO3);
color_change(0x02);
}
이 코드를 실행하면 ↓
미토, 크리스마스 트리가 완성되었습니다.
이 코드는 난수로 장식을 출력하고 있기 때문에 장식의 위치가 매번 바뀌는 것도 재미 중 하나입니다 w
봐 주셔서 감사합니다.
Reference
이 문제에 관하여(【C언어】크리스마스 트리를 커맨드 라인으로), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/drumath2237/items/28f48a9852f14cfe4458텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)