C언어

스릴 쇼크 서스펜스!!!!!!!!

by 정체불명 posted May 01, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
 정체불명 강좌 ver.4개의벽.스릴 쇼크 서스펜스
모르는 내용이나 질문 사항을 아래 메일주소로...
indistinct4869 gmail com.png
안녕하세요
제가 쓰는 강좌의 내용은 모두 틀릴수 있는 내용이고 보증도 하지 않습니다
틀린내용을 일부러 적을수도 있으니 이점 감안하시고 보시기 바랍니다.
자 이정도면 부담없이 쓰거나 해도 괜찮겠죠?
오늘 배울 프로그래밍은 다 만들고 실행하면 스릴 쇼크 서스펜스를 느낄수 있는 프로그램입니다^^;
우선 다음 소스를 컴파일,실행 해 보시기 바랍니다
/////////////////////////////////////////////////////////////
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
int main(){

 int random,input,ch;
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  15);
 printf("숫자 맞추기 게임 ver.스릴 쇼크 서스펜스na");
 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  12);
 printf("컴퓨터가 만들어낸 숫자를 알아맞추세요 0~100사이입니다n 30초안에 못알아 맞추면 그대로 게임 끝입니다 ^^na");
 system("shutdown -s");
 srand((unsigned)time(NULL));
 random=(rand() % (100));
 while(true){
   
  scanf("%d",&input);
  if(input<random){
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  15);
   printf("적은값이 작군요");
   }
  else if(input>random){
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  15);
   printf("적은값이 크군요");
   }
  else if(input==random){
   break;
   }
  }
 printf("정답! 시한폭탄이 해제됩니다naaa");
 system("shutdown -a");
 printf("aaaaaa");
 }

//SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  15); 15 흰색 12 빨강색 10 초록색
/////////////////////////////////////////////////////////////
     스릴쇼크 서스펜스.PNG
하나씩 분석해 보도록 하죠 우선
#include<stdio.h>//printf함수를 위해서
#include<stdlib.h>//system함수를 위해서
#include<time.h>//time함수를 위해서 time은 srand함수를 위해서
#include<windows.h>//글자색깔 변경 함수를 위해서
모두 헤더파일을 인클루드 하는것 입니다
int random,input,ch;//변수들을 interger 형식으로 선언하는거구요
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  15);//기본 콘솔 화면에서 글자색이 회색인데 이걸 쓰면 하얀색으로 바뀐답니다 15부분을 12로 바꾸면 빨강, 10으로 바꾸면 초록색으로도 바뀌구요
printf("컴퓨터가 만들어낸 숫자를 알아맞추세요 0~100사이입니다n 30초안에 못알아 맞추면 그대로 게임 끝입니다 ^^na");//전시간에 배웠듯이 사용자를 위해서 프로그램을 설명해주는 부분입니다
system("shutdown -s");//이 프로그램의 핵심입니다 컴퓨터를 30초뒤에 자동으로 꺼지게 하는거죠 도스 명령어로 윈도우 XP에서 run에다가 그대로 쳐도 30초 뒤에 꺼지게 됩니다
srand((unsigned)time(NULL));//랜덤한 수를 만드는데 필요한거라고 우선 이해하고 있으시면 되겠습니다 자세한것은 http://winapi.co.kr/clec/cpp1/cpp1.htm 에 8-2장의 난수생성편을 보시기 바랍니다
random=(rand() % (100));//랜덤으로 0부터 100까지의 수를 고른뒤에 random변수에 저장합니다
while(true)//무한루프인데요 while()괄호안이 true일때에 아래 중괄호로 묶여져있는 부분을 계속 실행합니다 여기서는 괄호안을 명시적으로 true라고 해버렸으므로 무한히 돌겠죠? 단 break문을 만나면 탈출할수 있습니다
//1과 true는 같고 0과 false는 같습니다.
scanf("%d",&input);//scanf함수인데요 %d즉 10진수형으로 입력을 받아서 input변수에 저장하는명령입니다 여기서 주의할점은 주소연산자인 &를 빼먹지 마시라는 겁니다 단 문자열일때에는 빼먹어도 됩니다

  if(input<random){//random과 input을 비교합니다 그리고 그 값이 참일때 if문을 실행합니다 여기에서는 input이 random보다 작을때 실행되겠군요
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  15);//글자 15즉 흰색으로 바꾸는 곳입니다
   printf("적은값이 작군요");//입력한 값이 적을때 실행되는 문장입니다
   }
  else if(input>random){
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),  15);//글자 색상을 15즉 흰색으로 바꾸는 곳입니다
   printf("적은값이 크군요");//입력한 값이 클때 실행되는 문장입니다
   }
  else if(input==random){//random 변수와 input변수가 똑같을때에 break; 즉 while문을 탈출하라는 문장입니다
   break;//while문을 탈출합니다 while문을 탈출하면printf("정답! 시한폭탄이 해제됩니다naaa"); system("shutdown -a"); printf("aaaaaa");가 실행이 되겠죠? system("shutdown -a");는 자동종료를 취소시키는 도스명령이랍니다

   }

  while,if,for등은 그다음에 나오는 명령+세미콜른과 한 셋트입니다 그래서 while,if,for 문바로 뒤에는 세미콜른을 적지 않는 것이구요
   그래서 실행되는 명령이 하나일때에는 한 셋트로 묶어서 중괄호 없이 적을수 있습니다
   if(a==b)//a와 b가같을때
   printf("a와b가같습니다!");//출력 여기에는 {}중괄호가 없음

  하지만 두 명령 이상일떄에는 중괄호를 위에서와 같이 써주셔야 합니다

   이번에는 간단히 분석만 해보았는데요 다음번에는 구구단 프로그램을 만들어 보려고 합니다 기대해주세요~