-
C언어 공부 되새김 Win32Api구현해보기 13편 무작위수 발생 randC언어 공부 되새김 Win32api로 구현해보기 2019. 10. 25. 23:54
컴퓨터 프로그래밍 C언어 공부를 콘솔로 공부하고 윈도우 프로그래밍으로 구현하는데
콘솔로 공부하던 소스를 윈도우 프로그래밍 기본 코드를 제외하고 함수 형식으로 콘솔 소스와
비슷하게 구현해보려고 합니다.
콘솔은 쉽고 윈도우는 어렵다가 아니고 윈도우 프로그래밍을 시작부터 접하면서 친숙해졌으면 합니다.
구현은 무료 통합개발 환경인 Dev-C++ 4.9.9.2로 구현합니다.
지난 편에는 while문을 이용한 조건부 반복 실행을 구현하였습니다.
이번 편에는 rand함수를 이용한 2~12단 중 컴퓨터가 임의의 단을 출력하고 10단 이상을 출력하면 프로그램을 종료하는 프로그램을 구현하겠습니다.
▷ Console프로그래밍
#include <stdio.h>
#include <stdlib.h>
#include <time.h> //srand를 이용하여 무작위 발생 테이블을 위한설정을 위해사용
void main(int argc, char *argv[])
{
int i=1;
int Running = 1;
int RunTime=0;
int Dan=5;
// rand사용 시 발생 테이블을 변경시켜 매 실행마다 결과가 달라지도록 하기 위함
srand((unsigned int)time(NULL));
while(Running){
Dan=2+rand()%11; // 2단 ~ 13단 발생하도록 설정 mod계산법(나머지 구하기)
for(i=1;i<10;i++){
printf("%d * %d = %d\n",Dan,i,Dan*i);
}
if(Dan>=10) Running = 0; // 10단 이상 출력이었을 경우 while반복문 탈출하기
}
system("PAUSE");
}▷ windows 프로그래밍 TextOut
void Study_Main(HDC hdc){
char strline[80];
int i=1;
int Running = 1;
int Dan=5;
int LineCounter=1;
// rand사용시 발생 테이블을 변경시켜 매 실행마다 결과가 달라 지도록하기 위함
srand(time(NULL));
while(Running){
Dan=2+rand()%11; // 2단 ~ 13단 발생하도록 설정 mod계산법(나머지 구하기)
for(i=1;i<10;i++){
wsprintf(strline,TEXT("%d * %d = %d"), Dan, i, Dan*i); // 출력할 줄 생성
TextOut(hdc, 0,20*LineCounter,strline,lstrlen(strline)); // 가로 0, 세로 20*i 위치에 출력
LineCounter++;
}
if(Dan>=10) Running = 0; // 10단 이상출력이었을경우 while반복문 탈출하기
}
}▷ windows 프로그래밍 DrawText
void Study_Main(HDC hdc){
char str[80*23];
char strline[80];
int i=1;
int Running = 1;
int Dan=5;
// rand사용시 발생 테이블을 변경시켜 매 실행마다 결과가 달라 지도록하기 위함
srand(time(NULL));
while(Running){
Dan=2+rand()%11; // 2단 ~ 13단 발생하도록 설정 mod계산법(나머지 구하기)
for(i=1;i<10;i++){
wsprintf(strline,TEXT("%d * %d = %d\n"), Dan, i, Dan*i); // 출력할 줄 생성
strcat(str,strline);
}
if(Dan>=10) Running = 0; // 10단 이상출력이었을경우 while반복문 탈출하기
}
// 화면의 (0, 0) 위치부터 (640, 480) 위치까지 사각형 영역을 만든다
RECT rt = {0, 0, 640, 480};
DrawText(hdc, str, -1, &rt, DT_LEFT | DT_WORDBREAK);
}Console출력과 같은형태로 10단을 넘어서면 반복 종료되도록 되었습니다. ^^;
Console에서는 자동으로 화면 끌어올리기가 되지만 windows에서는 자동 화면 끌어올리기가 안되니 결과가 설정한 화면 크기인 640*480 크기내에만 출력이 됩니다.
오늘은 여기까지입니다.
그럼 이만...
'C언어 공부 되새김 Win32api로 구현해보기' 카테고리의 다른 글
Win32Api구현해보기 15편 프로그램 처리방식 (0) 2019.10.28 C언어 공부 되새김 Win32Api구현해보기 14편 움직이는 도형 rand (0) 2019.10.27 C언어 공부 되새김 Win32Api구현해보기 12편 반복문 While (0) 2019.10.24 C언어 공부 되새김 Win32Api구현해보기 11편 조건문 switch case (0) 2019.10.24 C언어 공부 되새김 Win32Api구현해보기 10편 비교문 if else (0) 2019.10.23