#include <stdio.h> // 입출력문 printf, scanf 사용하기 위한 헤더
#include <windows.h> // move 사용하기위한 헤더
#include <conio.h> //_getch가 포함되어있는 헤더
#include <stdlib.h>
#include <time.h>
void move(int i, int j)
{
COORD Pos;
Pos.X = j;
Pos.Y = i;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
void map()
{
int i,j,cnt=0;
move(3,3);
for(i=3;i<=40;i++)
{
move(i,3);
for(j=3;j<=40;j++)
{
if(i==3 || j==3|| i==40 || j==40)
{
printf("*");
}
else
{
printf(" ");
}
}
}
}
//i't'em=ti,tj
int main()
{
int pi=5, pj=5; // player의 위치
int ti,tj; // item 위치
srand(time(NULL));
// 플레이어 점수
int cnt=0;
//배경 출력
map();
//플레이어 출력
move(pi,pj);
printf("*");
// 아이템 랜덤 위치 정하고 출력
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
// 현재 상태 나타내기
move(10,50);
printf(" coordinate : %2d %2d",pi,pj);
move(20,50);
printf(" score : %d",cnt);
move(30,50);
printf(" item : %d %d",ti,tj); //아이템의 좌표 옆에 출력하기
// 플레이어 이동 시작
for(;;)
{
// 키보드 입력받기
char x = _getch();
move(pi,pj);
printf(" ");
// 입력받은 문자에 따라 플레이어 위치 이동하기
if(x=='w')
{
if(pi>=5) pi--;
}
else if(x=='a')
{
if(pj>=5)pj--;
}
else if(x=='s')
{
if(pi<=38)pi++;
}
else if(x=='d')
{
if(pj<=38)pj++;
}
// 이동된 위치에서 플레이어 출력하기
move(pi,pj);
printf("*");
if(pi==ti && pj==tj) // item 먹었으면
{
cnt=cnt+1;
// 새로운 곳에 아이템을 생성
ti = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
tj = rand()%36+4; // 4 ~ 39 사이의 랜덤수 생성
move(ti,tj);
printf("$");
}
// 현재 상태 나타내기
move(10,50);
printf(" coordinate : %2d %2d",pi,pj);
move(20,50);
printf(" score : %d",cnt); //아이템을 먹었을때의 점수 출력하기
move(30,50);
printf(" item : %d %d",ti,tj); //아이템의 좌표 풀력하기
}
}
/*
#include <stdio.h>
int main()
{
srand(time(NULL));
for(int i=0;i<10;i++)
{
//int x = rand(); // 0 ~ 324742 사이의 랜덤수
int x = rand()%10+1;
printf("%d ",x);
}
}
*/