[2019-2] 프로그래밍실습II 빙고게임 과제

2022. 1. 6. 01:17·학교
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;

#define ROW 5
#define COL 5

int Bingo[ROW][COL] = {0};

void initBoard();
void showBoard();
void eraseBoard(int num);
int checkBoard();
int main() {
 int nb = 0; //빙고 줄
 int num; //입력 번호
 initBoard(); //배열 초기화
 while (1) {
  showBoard(); //빙고판 출력
  if (nb >= 3) {
   printf("\n\n ! ! B I N G O ! ! \n\n");
   break;
  }
  else if (nb == 2)
   printf(" ! 2줄 맞았습니다 ! \n");
  else if (nb == 1)
   printf(" ! 1줄 맞았습니다 ! \n");
  
  printf("번호를 입력하세요: ");
  scanf("%d", &num);

  eraseBoard(num);
  nb = checkBoard();
 }
 return 0;
}
void showBoard() {
 // ━ ┃ ┓ ┗ ┛ ┏ ┫ ┳ ┻ ┣ ╋
 printf("┏━━━┳━━━┳━━━┳━━━┳━━━┓\n");
 for (int i = 0; i < ROW; i++) {
  for (int j = 0; j < COL; j++) {
   if (Bingo[i][j] > 0)
    printf("┃%3d", Bingo[i][j]);
   else
    printf("┃ ★", Bingo[i][j]);
  }
  printf("┃\n");
  if (i < 4){
   printf("┣━━━╋━━━╋━━━╋━━━╋━━━┫\n");
  }
 }
 printf("┗━━━┻━━━┻━━━┻━━━┻━━━┛\n");
}
void eraseBoard(int num) {
 for (int i = 0; i < ROW; i++) {
  for (int j = 0; j < COL; j++) {
   if (num == Bingo[i][j])
    Bingo[i][j] = 0;
  }
 }
}
void initBoard() {
 int x, y, count = 1;
 srand((unsigned int)time(NULL));

 while (count < 26) {
  y = rand() % 5;
  x = rand() % 5;

  if (Bingo[y][x] == 0) {
   Bingo[y][x] = count;
   count++;
  }
 }
}

int checkBoard() {
int sum, count = 0;

 for (int i = 0; i < ROW; i++) { //가로 체크
  sum = 0;
  for (int j = 0; j < COL; j++) {
   sum += Bingo[i][j];
  }
  if (sum == 0)
   count++;
 }
 for (int j = 0; j < COL; j++) { //세로 체크
  sum = 0;
  for (int i = 0; i < ROW; i++) {
   sum += Bingo[i][j];
  }
  if (sum == 0)
   count++;
 }
 //대각선 체크
 sum = 0;
 for (int i = 0; i < ROW; i++){
  sum += Bingo[i][i]; 
 }
 if (sum == 0)
  count++;
 //대각선 체크
 sum = 0;
 for (int i = 0; i < ROW; i++) {
  sum += Bingo[i][4-i];
 }
 if (sum == 0)
  count++;

 return count;
}

'학교' 카테고리의 다른 글

[2021-2] 운영체제 프로젝트  (0) 2022.01.13
[2018-2] 웹프로그래밍II 프로젝트 - 장바구니 구현하기  (0) 2022.01.06
[2019-2] 프로그래밍실습II 로또번호 생성 프로그램 과제  (0) 2022.01.06
[2019-2] 디지털신호처리 새 소리 만들기 과제  (0) 2022.01.06
[2019-2] 디지털신호처리 첩 신호 만들기 과제  (0) 2022.01.06
'학교' 카테고리의 다른 글
  • [2021-2] 운영체제 프로젝트
  • [2018-2] 웹프로그래밍II 프로젝트 - 장바구니 구현하기
  • [2019-2] 프로그래밍실습II 로또번호 생성 프로그램 과제
  • [2019-2] 디지털신호처리 새 소리 만들기 과제
덩이
덩이
찍먹 대마왕
  • 덩이
    Devlog
    덩이
  • 전체
    오늘
    어제
    • 분류 전체보기 (104)
      • 강의 (58)
        • SAP ERP (1)
        • KOSTA (32)
        • Inflearn (0)
        • etc (25)
      • 회사 (0)
        • 스터디 (3)
        • 전자정부 (0)
      • 학교 (15)
      • 스터디 (26)
        • 알고리즘 (21)
        • 프로젝트 (3)
        • 에러 (2)
        • 자격증 (0)
      • 기타 (2)
        • 자료 (1)
        • 회고록 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
    • Naver
  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
덩이
[2019-2] 프로그래밍실습II 빙고게임 과제
상단으로

티스토리툴바