본문 바로가기
00.Project

야구게임(mini)

by chojju 2018. 4. 28.
반응형

//app.h

void logo();
void ending();
void printmenu();

//프로그램 흐름 - 초기화
// 최초에 단 한번 실행
void app_init();

//프로그램 흐름 - 엔진
//반복 실행 코드
void app_run();

//프로그램 흐름 - 종료처리
//프로그램 종료시 단 한번 실행
void app_exit();


//baseball.h

void bb_gamestart();

void comnumberinit();
void usernumberinsert();
void numbercheck();
int is_gameexit();


//data.h

#define DATA_MAX  10


//std.h
// 프로그램에서 필요로하는 모든 h 를 include
#include <stdio.h>
#include <stdlib.h>  //system()
#include <conio.h>  //_getch()
#include <string.h>  //strcpy_s()
#include <time.h>  //time()

#include "data.h"
#include "app.h"
#include "baseball.h"


//app.c
#include "std.h"

void app_init()
{
 srand((unsigned int)time(NULL));
 logo();
}

void app_run()
{
 char idx; 
 while (1)
 {
  system("cls");
  printmenu();
  idx = _getch();
  switch (idx)
  {
  case '1': bb_gamestart();  break;
  //case '2': book_printall(); break;
  case '3': return;
  }
  system("pause");
 }
}

void app_exit()
{
 ending();
}

void logo()
{
 system("cls");
 printf("******************************************\n");
 printf(" 2번째 프로그램 - 야구게임\n");
 printf(" 2016/6/29\n");
 printf(" cjh\n");
 printf("******************************************\n");
 system("pause");
}

void ending()
{
 system("cls"); //출력화면 비우기
 printf("******************************************\n");
 printf(" 프로그램을 종료합니다.\n");
 printf("******************************************\n");
 system("pause");//아무키나 입력받기
}

void printmenu()
{
 printf("******************************************\n");
 printf("  [1] 야구게임\n");
 printf("  [2] 결과보기\n");
 printf("  [3] 프로그램 종료\n");
 printf("******************************************\n");
}


//baseball.c

#include "std.h"
#pragma warning(disable:4996)

int com_number[3];
int user_number[3];
int s = 0, b = 0;

void comnumberinit()

 com_number[0] = (rand() % 9) + 1;
 while (1)
 {
  com_number[1] = (rand() % 9) + 1;
  if (com_number[0] != com_number[1])
   break;
 }
 while (1)
 {
  com_number[2] = (rand() % 9) + 1;
  if (com_number[2] != com_number[0] &&
   com_number[2] != com_number[1])
   break;
 }
}

void usernumberinsert()
{
 printf(">> 숫자입력(ex 3 4 5) : ");
 scanf("%d%d%d", &user_number[0], &user_number[1], &user_number[2]);
}

void numbercheck()
{
 int i,j;
 for (i = 0; i < 3; i++){  
  for (j = 0; j < 3; j++){
   if (com_number[i] == user_number[j])
   {
    if (i == j) s++;
    else        b++;
    break;
   }
  }
 }
 printf("S : %d, B : %d\n", s, b);

}

int is_gameexit(){
 if (s == 3) {
  s = b = 0;
  return 1;
 }
 else{
  s = b = 0;
  return 0;
 }
}

void bb_gamestart()
{
 comnumberinit();
 printf("%d : %d : %d\n", com_number[0], com_number[1], com_number[2]);
 while (1)
 {
  usernumberinsert();
  numbercheck();
  if (is_gameexit() == 1)
  {
   printf("good!!!\n");
   break;
  }  
 } 
}


//소스.c
#include "std.h"

int main()
{
 app_init();
 app_run();
 app_exit();
 return 0;
}

반응형

'00.Project' 카테고리의 다른 글

C++학생관리프로그램(mini)  (0) 2018.05.10
자판기프로그램(mini)  (0) 2018.04.30
간단한 관리프로그램(mini)  (0) 2018.04.28

댓글