🧼C, C++/자체제작 프로그램및 배포
2차원배열 콘솔 게임 C++
개발환경 >> DevCpp
언어 >> C++11
운영체제 >> Windows10
바야흐로... 내가 C언어 2차원 배열 막 배우기 시작한 시절....
아래와 같은 프로그램을 만들고싶었는데
플레이어가 움직인 뒤, 해당 자리가 빈자리로 초기화되는 것 때문에 결국 포기했었던 그 부분을 구현했다...
지금 한 번 더 만들어보니 진짜 쉬웠다... 뭐징......ㅋㅋㅋㅋ.......
이걸로 왜 고생을 했는지 지금은 뭔가 모르겠다...ㅋㅋㅋㅋ.....ㅋㅋㅋㅋㅋ.......
어쨌든 옛날에 구현하고 싶었던 프로그램을 구현해서 기분이 좋다~~
[[[ 소스코드 ]]]
#include <iostream>
#include <conio.h>
using namespace std;
#define MAX 20 //최대 맵크기
void CreateARC(char arr[MAX][MAX]){ //장애물 생성함수
arr[2][3]='z'; //'z' 장애물 , 'a' 빈공간
arr[5][1]='z';
arr[7][2]='z';
arr[9][5]='z';
arr[2][7]='z';
}
int main(){
register char arr[MAX][MAX]={0},as;
int x=0,y=0,i,j,cnt; //x랑y는 플레이어의 좌표입니다
for(i=0;i<MAX;i++) for(j=0;j<MAX;j++) arr[i][j]='a'; //빈공간으로채우기
CreateARC(arr); //장애물생성
while(1){
cnt=0; //게임을 끝낼지 판단할 변수초기화
for(i=0;i<MAX;i++) for(j=0;j<MAX;j++) if(arr[i][j]=='a') cnt++; //아래와 위와같다
if(MAX*MAX==cnt) return 1; //게임을 끝낼지 판단할 변수를 계산
system("cls");
for(i=0;i<MAX;i++){
for(j=0;j<MAX;j++){
if(arr[i][j]=='a') cout << "□";
if(arr[i][j]=='z') cout << "■";
if(x==j&&y==i) cout << "\b\b♠"; //2바이트문자는 백스페이스 두번
}
cout << endl;
}
as=getch();
if(as=='w'&&y>0) y--;
else if(as=='s'&&y<MAX-1) y++;
else if(as=='a'&&x>0) x--;
else if(as=='d'&&x<MAX-1) x++;
else if(as==' '&&arr[y][x]=='z') arr[y][x]='a'; //스페이스바를 누르면 빈공간으로바뀐다
}
}
그럼 감사합니다!!
'🧼C, C++ > 자체제작 프로그램및 배포' 카테고리의 다른 글
Hyper Connector 1.0 프로그램 배포 (0) | 2021.01.17 |
---|---|
MiniGameDuel - C++ 자작프로그램 (0) | 2021.01.01 |
codeSock <v2.0> 라이브러리 배포 C++ (0) | 2020.11.12 |
파일 자가복제 C++ #1 (0) | 2020.11.05 |
codeSock 헤더파일 배포 <1.0> C++ (0) | 2020.10.09 |
댓글