5.2 애니메이션 Page 283 ~ 295.

Slides:



Advertisements
Similar presentations
조건문, 함수 정대진 ( ) C Programming -3 일차 ITA 8 월 강의.
Advertisements

제6장 조건문.
대림대학교 2017년도 1학기 강의 왕보현 순서도와 스크래치 5주차 대림대학교 2017년도 1학기 강의 왕보현
프로그래밍실습 제 7 강.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
제3장 게임기본모듈 Page 153 ~ 182.
제1장 코드와라이브러리 Page 1 ~ 30 ■■■■■ ■ ■.
쉽게 풀어쓴 C언어 Express 제8장 함수 C Express.
제3장 추가 실습 3장 관련 C 언어 프로그래밍 실습.
C 11장. 포인터의 활용 #include <stdio.h> int main(void) { int num;
쉽게 풀어쓴 C언어 Express 제4장 변수와 자료형 C Express.
제5장 제어명령
C언어: 배열 (Arrays).
6장. printf와 scanf 함수에 대한 고찰
7. while 문의 흐름 제어.
연산자 대입 연산자 산술 연산자 관계 연산자 논리 연산자 비트 연산자 콤마 연산자 축약 연산자 sizeof 연산자
쉽게 풀어쓴 C언어 Express 제17장 동적 메모리와 연결 리스트 C Express.
쉽게 풀어쓴 C언어 Express 제17장 동적메모리와 연결리스트 C Express.
동적메모리와 연결리스트 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원 E304호,
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 02. 프로그램의 기본구성.
C 9장. 구조체 #include <stdio.h> int main(void) { int num;
컴퓨터 프로그래밍 기초 - 2nd : scanf(), printf() 와 연산자 -
Chapter 06. 선택문.
C언어 프로그래밍의 이해 Ch05. 명령문 Phylogenetic: 계통, 발생(학)의.
쉽게 풀어쓴 C언어 Express 제10장 배열 C Express.
제 3 장 상수와 변수
쉽게 풀어쓴 C언어 Express 제7장 반복문 C Express.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
2장 표준 입출력 표준 입출력 함수의 종류 형식화된 입출력 문자 입출력 문자열 입출력.
개정판 누구나 즐기는 C언어 콘서트 제6장 반복문 출처: pixabay.
제2장 데이터형과 표준 입출력문 문봉근.
컴퓨터의 기초 제 2강 - 변수와 자료형 , 연산자 2006년 3월 27일.
HCI 졸업작품 중간발표 ProjectH_mapedit 조 상 교수님 유종원 오영석.
컴퓨터 프로그래밍 기초 - 4th : 수식과 연산자 -
제어문 & 반복문 C스터디 2주차.
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
Chapter 05. 입출력 함수.
김선균 컴퓨터 프로그래밍 기초 - 7th : 함수 - 김선균
실습과제 1(조건문, ) 표준입력으로 수축기 혈압을 입력 받아 그에 따른 적당한 표현을 화면에 출력하는 프로그램을 if-else 문을 이용하여 작성.
5장 선택제어문 if 선택문 switch-case 선택문 다양한 프로그램 작성 조건 연산자.
Fflush 사용이유 및 방법 [이유] 키보드에서 입력된 내용은 입력버퍼에 저장되었다가 Enter 키가 들어오면 프로그램으로 전달됨 이 때 입력버퍼에 있는 Enter 키도 프로그램으로 전달됨 그러므로 아래와 같은 프로그램에서 문자 하나를 입력해도 Enter키도 입력된 것으로.
#1 배열 활용 #include int main(void) { int i; int grade[5]; grade[0] = 10; grade[1] = 20; grade[2] = 30; grade[3] = 40; grade[4] = 50; for(i=0;i.
-Part2- 제1장 1차원 배열이란 무엇인가.
6장 반복제어문 for 문 while 문 do while 문 기타 제어문.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
C언어 프로그래밍의 이해 Ch05. 명령문.
-Part1- 제7장 반복문이란 무엇인가.
18장. 다차원 배열 그리고 포인터.
함수(Function) ◈ 함수의 개념 및 사용 이유 ◈ 함수 정의, 호출 및 선언 ◈ 지역변수와 전역변수 ◈ return 문
-Part1- 제8장 조건문이란 무엇인가 (교재 199페이지 ~ 224페이지)
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express Slide 1 (of 28)
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
쉽게 풀어쓴 C언어 Express 제6장 조건문 C Express.
-Part2- 제2장 다차원 배열이란 무엇인가.
제10장 전처리기 문봉근.
어서와 C언어는 처음이지 제16장.
개정판 누구나 즐기는 C언어 콘서트 제10장 문자열 출처: pixabay.
C 13장. 입출력 라이브러리 #include <stdio.h> int main(void) { int num;
어서와 C언어는 처음이지 제23장.
어서와 C언어는 처음이지 제21장.
개정판 누구나 즐기는 C언어 콘서트 제11장 구조체, 공용체, 열거형 출처: pixabay.
C.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
C 프로그래밍은 매우 도전적인 작업이다. 도전의 이면에 철저한 준비와 체계적인 노력
Chapter 09. 배열.
어서와 C언어는 처음이지 제22장.
개정판 누구나 즐기는 C언어 콘서트 제12장 파일 입출력 출처: pixabay.
배열, 포인터, 함수 Review & 과제 1, 2.
Presentation transcript:

5.2 애니메이션 Page 283 ~ 295

화살표 키 이용 문자 이동 화살표 키를 이용하여 이동 방향 결정 키를 누를때 이동 do{ gotoxy(x, y); printf(“”); key=getch(); system(“cls”); move_arrow_key(key, &x, &y, X_MAX, Y_MAX); }while(key != 27); //esc 키 입력까지

화살표 키 이용 문자 이동 화살표 키를 이용하여 이동 방향 결정 키의 방향에 따른 지속적 이동 do{ gotoxy(x, y); printf(“”); key=getch(); move_arrow_key(key, &x, &y, X_MAX, Y_MAX); goto(x, y); Sleep(50); system(“cls”); }while(!kbhit()); }while(key != 27); //esc 키 입력까지

[예제 526]화살표키 이용 문자이동

[예제 526]화살표키 이용 문자이동 #include <stdio.h> #include <conio.h> #include <windows.h> #define X_MAX 79 //가로(열)방향의 최대값 #define Y_MAX 24 //세로(행)방향의 최대값 void move_arrow_key(char chr, int *x, int *y, int x_b, int y_b); void gotoxy(int x, int y); int main(void) { char key; int x=10, y=5; do { gotoxy(x, y); printf("□"); key=getch(); move_arrow_key(key, &x, &y, X_MAX, Y_MAX); Sleep(50); system("cls"); } while(!kbhit()); //키를 눌렀는지 확인 }while(key!=27); return 0; }

[예제 526]화살표키 이용 문자이동 void move_arrow_key(char key, int *x1, int *y1, int x_b, int y_b) { switch(key) { case 72: //위쪽(상) 방향의 화살표 키 입력 *y1=*y1-1; if (*y1<1) *y1=1; //y좌표의 최소값 break; case 75: //왼쪽(좌) 방향의 화살표 키 입력 *x1=*x1-1; if (*x1<1) *x1=1; //x좌표의 최소값 case 77: //오른쪽(우) 방향의 화살표 키 입력 *x1=*x1+1; if (*x1>x_b) *x1=x_b; //x좌표의 최대값 case 80: //아래쪽(하) 방향의 화살표 키 입력 *y1=*y1+1; if (*y1>y_b) *y1=y_b; //y좌표의 최대값 default: return; }

[예제 526]화살표키 이용 문자이동 void gotoxy(int x, int y) { COORD Pos = {x - 1, y - 1}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); }

정사각형 크기 제어 화살표 키(왼쪽, 오른쪽)를 이용 최초크기 10으로 가정, 1size 20 키의 방향에 따른 지속적 크기 변경 do { draw_square(square_size); key=getch(); system("cls"); if (key==75) draw_square(square_size--); if (key==77) draw_square(square_size++); if (square_size<1) square_size=1; if (square_size>20) square_size=20; printf("size=%d",square_size); } while(!kbhit()); } while(key!=27);

[예제 527]화살표 키 활용 정사각형 크기 조절

#include <stdio.h> #include <conio.h> #include <stdlib.h> void draw_square(int size); int main(void) { int square_size=10; char key; printf("사각형의 크기를 연속적으로 조절하는 animation\n\n"); printf("좌측방향 화살 표키는 사각형 크기감소,\n"); printf("우측방향 화살 표키는 사각형 크기증가\n"); printf("animation처리 중에 아무키나 누르면 종료합니다,\n\n"); printf("아무키나 누르면 시작합니다. \n"); getch(); system("cls"); do { draw_square(square_size); key=getch(); if (key==75) draw_square(square_size--); if (key==77) draw_square(square_size++); if (square_size<1) square_size=1; if (square_size>20) square_size=20; printf("size=%d",square_size); } while(!kbhit()); } while(key!=27); return 0; }

void draw_square(int size) { int i, j; unsigned char a=0xa6; unsigned char b[7]; for(i=1;i<7;i++) b[i]=0xa0+i; printf("%c%c",a, b[3]); for(i=0;i<size;i++) printf("%c%c", a, b[1]); printf("%c%c", a, b[4]); printf("\n"); for(i=0;i<size;i++) { printf("%c%c", a, b[2]); for(j=0;j<size;j++) printf(" "); printf("%c%c",a, b[2]); } printf("%c%c", a, b[6]); printf("%c%c", a, b[5]); 0xa3 0xa1 0xa4 ┌ ─ .... ┐ 0xa2│ .... │0xa2 . . └ ─ .... ┘ 0xa6 0xa1 0xa5

임의 크기 정사각형 좌우 이동 정사각형 크기 입력받아 연속 좌우이동 초기상태 오른쪽 20 이동상태 gotoxy(1, 1); gotoxy(1, i); gotoxy(20, i); gotoxy(1, y); gotoxy(20, y);

[예제 528]임의 크기 정사각형 좌우 이동

#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <windows.h> void draw_square_xy(int size, int x, int y); void gotoxy(int x, int y); int main(void) { int move=1, x=1, size; printf("사각형이 좌우로 움직이는 animation\n"); printf("실행 중에 아무키나 누르면 종료.\n\n"); printf("사각형의 크기를 입력하고 Enter(최대 20)"); scanf("%d", &size); printf("아무키나 누르면 시작합니다. \n"); getch(); do { x+=move; if (x>50-size) //정사각형의 크기에 따라 오른쪽 끝 x좌표 계산 move=-1; if (x<3) //정사각형의 왼쪽 끝 좌표 move=1; system("cls"); draw_square_xy(size, x, 1); } while(!kbhit()); return 0; }

0xa3 0xa1 0xa4 ┌ ─ .... ┐ 0xa2│ .... │0xa2 . . └ ─ .... ┘ 0xa6 0xa1 0xa5 void draw_square_xy(int size, int x, int y) { int i, j; unsigned char a=0xa6; unsigned char b[7]; for(i=1;i<7;i++) b[i]=0xa0+i; gotoxy(x, y); printf("%c%c",a, b[3]); for(i=0;i<size;i++) printf("%c%c", a, b[1]); printf("%c%c", a, b[4]); for(i=0;i<size;i++) { gotoxy(x, y+i+1); printf("%c%c", a, b[2]); for(j=0;j<size;j++) printf(“ "); printf("%c%c",a, b[2]); } printf("%c%c", a, b[6]); printf("%c%c", a, b[5]);

void gotoxy(int x, int y) { COORD Pos = {x - 1, y - 1}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); }

임의 크기 정사각형 상하 이동 정사각형 크기 입력받아 연속 상하이동 초기상태 아래쪽 10 이동상태 gotoxy(1, 1); gotoxy(1, i); gotoxy(1, y); gotoxy(1, i+10); gotoxy(1, y+10);

[예제 529]임의 크기 정사각형 상하 이동

#include <stdio.h> #include <conio.h> #include <stdlib.h> #include <windows.h> void draw_square_xy(int size, int x, int y); void gotoxy(int x, int y); int main(void) { int move=1, x=1, size; printf("사각형이 상하로 움직이는 animation\n"); printf("실행 중에 아무키나 누르면 종료.\n\n"); printf("사각형의 크기를 입력하고 Enter(최대 20)"); scanf("%d", &size); printf("아무키나 누르면 시작합니다. \n"); getch(); do { y+=move; if (y>23-size) //정사각형의 크기에 따라 아래 끝 좌표 계산 move=-1; if (y<3) //정사각형의 시작 y좌표 move=1; system("cls"); draw_square_xy(size, 1, y); //[함수 5.2.1] 참고 } while(!kbhit()); return 0; }

0xa3 0xa1 0xa4 ┌ ─ .... ┐ 0xa2│ .... │0xa2 . . └ ─ .... ┘ 0xa6 0xa1 0xa5 void draw_square_xy(int size, int x, int y) { int i, j; unsigned char a=0xa6; unsigned char b[7]; for(i=1;i<7;i++) b[i]=0xa0+i; gotoxy(x, y); printf("%c%c",a, b[3]); for(i=0;i<size;i++) printf("%c%c", a, b[1]); printf("%c%c", a, b[4]); for(i=0;i<size;i++) { gotoxy(x, y+i+1); printf("%c%c", a, b[2]); for(j=0;j<size;j++) printf(“ "); printf("%c%c",a, b[2]); } printf("%c%c", a, b[6]); printf("%c%c", a, b[5]);

void gotoxy(int x, int y) { COORD Pos = {x - 1, y - 1}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos); }

[Report 503] 상하좌우 화살표 키를 이용하여 임의의 크기를 갖는 정사각형을 이동