/mazeGame-cpp

C++을 활용한 중력미로게임

Primary LanguageC++

<C++을 활용한 중력 미로 탈출 게임>

게임 소개

  • 게임 배경

    • 다양한 병으로 인해 아픈 사람들을 치료하기 위한 알약 공급 게임 미로에는 '파란약'과 '빨간약'이 존재함
      최종 목표 : 파란약을 탈출시켜 환자에게 전달하는 것
      • 파란약은 환자의 병을 치료하기에 알맞은 치료약
      • 빨간약은 환자에게 부작용을 초래
  • 게임 규칙

    1. 좌우 방향키로 미로판을 회전시킬 수 있음
      '약 '을 움직이는 게 아니라 미로판을 움직임

    2. 미로 중간중간 움직이는 NPC들을 피해야 함

    3. 미로의 길목에 존재하는 폭탄 아이템을 획득해 막혀있는 벽을 부숴야 함
      획득가능한 폭탄아이템의 개수와 탈출구로 가는 길을 막고 있는 벽의 개수를 잘 파악하며 아이템을 사용할 것

    4. 라운드가 증가될 수록, 미로가 복잡해지고 NPC의 개수는 증가함

    5. 미로탈출시 제약사항
      첫번째, 타이머
      : 매 라운드 별 주어진 시간 안에 탈출해야 함
      시간 안에 탈출을 실패하면 TIME OVER! -> 게임의 첫 화면으로 BACK
      두번째, 한정된 생명
      : 부활이 가능한 횟수는 3개로 제한되어 있다.
      3개의 생명이 사라지면 GAME OVER! -> 게임의 첫 화면으로 BACK

    6. 탈출을 돕기 위한 아이템들을 잘 활용해야 미로를 안전하게 탈출할 수 있음

  • 게임 조작 방법

    • 방향키 좌우 : 게임의 미로판을 반시계(좌), 시계(우) 방향으로 회전 시킴
    • 방향키 상하 : 첫 시작화면의 메뉴 선택 키
  • 아이템

    • NPC 정지 아이템(N키) : 화살표 모양의 NPC를 잠시 동안 정지 시킴(⊙모양 NPC는 정지 불가능)
    • 폭탄 아이템(Spacebar) : 동서남북 네 방향으로 미로벽을 부술 수 있음

함수별 기능 설명

함수 모듈 설계

함수명 기능 인수
OutPut 미로에 출력되어야 하는 전체적인 것들을 출력한다. X
SetMaze 라운드마다의 4가지 방향 미로를 세팅한다. X
gravityBLUE 파란 PC의 중력 방향 이동, 탈출 여부 확인, 빨간 PC와의 충돌 여부 확인, 폭탄 획득 여부 확인을 수행한다. X
gravityRED 빨간 PC의 중력 방향 이동, 탈출 여부 확인을 수행한다. X
arrowMove NPC의 정보들을 이용해 NPC의 움직임을 출력해준다. X
SpecialArrowMove Special NPC의 정보들을 이용해 Special NPC의 움직임을 출력한다 X
RotateLEFT 미로 배열에 저장되지는 않지만 미로와 함께 출력되어야 하는 요소들을 왼쪽으로 회전시킨 위치에 출력해준다. X
RotateRIGHT 미로 배열에 저장되지는 않지만 미로와 함께 출력되어야 하는 요소들을 오른쪽으로 회전시킨 위치에 출력해준다. X
MovePlayer 사용자의 키보드 입력을 받아, 입력에 따른 일을 수행한다. char cInput
stagePlus 한 라운드를 탈출했을 때, 라운드를 증가시킨다. X
GameItemBoard 플레이어에게 알려주어야 할 문구를 출력한다. X
title 게임의 첫 시작 화면의 UI를 설정해 준다. X
titleIcon 게임의 첫 시작 화면의 메뉴 아이콘을 출력해준다. X
titlePicture 게임의 첫 시작 화면의 사진을 미로 배열에 저장해 준다. X
printGameOver “GAME OVER” 화면을 출력해준다. X
printTimeOver “TIME OVER” 화면을 출력해준다. X
printGameSuccess “GAME CLEAR” 화면을 출력해준다. X
printHospital 게임이 시작되면 병원 그림을 출력해준다. X
ResetTime 타이머의 시간을 초기화 해준다. X
ResetBomb 라운드 별로 폭탄의 위치를 초기화해준다. X
ResetNPC 라운드 별로 NPC의 위치를 초기화 해준다. X
playerInform 게임을 플레이 하면서 플레이어가 알아야 할 정보들을 미로 오른쪽에 표시해 준다. X
CreateBomb 폭탄 아이템을 획득하면, 폭탄을 획득했음을 저장해준다. X
cheat 게임의 라운드를 건너뛰게 해준다. X
RemoveCursor 콘솔창에서 커서를 지워준다. X
SetCurrentCursorPos 콘솔창의 (x,y)로 커서를 옮겨준다. int x int y
TextColor 콘솔창에 출력되는 글자의 색을 color_num 색으로 설정한다. int color_num
Speak_C 타자 치는 효과로 speaking 문장 출력한다. const char speaking [] int C
gotoxy 콘솔창의 (x,y) 좌표에 s 문구를 출력한다. int x int y const char* s
gotoxy_C 콘솔창의 (x,y) 좌표에 Color 색상으로 s 문구를 출력한다. int x int y const char* s int Color
tutorial 튜토리얼의 진행을 플레이어에게 안내해준다. char input
startStory 라운드별 시작 스토리를 설명해준다. X