클래스 공부를 위한 -> 구조 공부
namespace TextRpgGame02
{
internal class Program
{
static void Main(string[] args)
{
MainGame mainGame = new MainGame();
//게임을 실행 시키기 위해
mainGame.Initialize();
mainGame.Progress();
}
}
}
namespace TextRpgGame02
{
internal class Info
{
//필요 정보
//이름, 공격력, hp
public string name;
public int attack;
public int hp;
}
}
// 플레이어 선택을 위한
namespace TextRpgGame02
{
//직업 선택을 위함
internal class Player
{
public Info info;
// 직업을 선택하기 위한 내용
public void SelectJob()
{
info = new Info();
Console.WriteLine("직업을 선택하세요 \n 1.기사 2.마법사 3.도둑 \n 입력하시오");
//직업 선택 수 1-3
int ilnput = 0;
// 입력값을 받아야 함.
ilnput = int.Parse(Console.ReadLine());
//switch 문을 통해 선택한 수의 값을 지정해야 함.
switch(ilnput)
{
case 1:
info.name = "기사";
info.attack = 100;
info.hp = 100;
break;
case 2:
info.name = "마법사";
info.attack = 80;
info.hp = 100;
break;
case 3:
info.name = "도둑";
info.attack = 70;
info.hp = 100;
break;
}
}
//입력 후에 나와야 하는 값
public void Render()
{
Console.WriteLine("======================");
Console.WriteLine("직업 이름 : " + info.name);
Console.WriteLine("체력 : " + info.hp + "\t공격력 : " + info.attack);
}
// 소멸자
public Player() { }
~Player() { }
}
}
//맵 선택을 위한
namespace TextRpgGame02
{
internal class Field
{
//맵 선택은 + 플레이어의 정보도 필요함.
Player player = null;
//메소드의 인수를 통해 값을 전달하는 방법 -> 값 전달과 참조전달
public void SetPlayer(ref Player pPlayer)
{
player = pPlayer;
}
// 맵 선택을 위함
public void Progress()
{
// 사냥터로 들어왔다
int ilnput = 0;
//반복처리를 위한while문
while(true)
{
//콘솔을 지워준다
Console.Clear();
player.Render();
//맵 선택 함수
DrawMap();
// 입력함수
ilnput = int.Parse(Console.ReadLine());
if(ilnput == 4)
{
break;
}
else if(ilnput <=3)
{
//몬스터 만들고 싸우기
}
}
}
public void DrawMap()
{
Console.WriteLine("1. 초보맵");
Console.WriteLine("2. 중수맵");
Console.WriteLine("3. 고수맵");
Console.WriteLine("4. 전단계");
Console.WriteLine("=============");
Console.WriteLine("맵을 선택하세요");
}
//소멸자
public Field() { }
~Field() { }
}
}
namespace TextRpgGame02
{
//플레이어 맵 둘다 실행해야 함
internal class MainGame
{
public Player player = null;
public Field field = null;
// 플레이어 직업 선택 플레이
public void Initialize()
{
player = new Player();
player.SelectJob(); //실행
}
// 맵선택
public void Progress()
{
// 맵 선택
int ilnput = 0;
while(true)
{
Console.Clear();
//실행
player.Render();
Console.WriteLine("1.사냥터 \t 2.종료");
ilnput = int.Parse(Console.ReadLine());
if(ilnput == 2)
{
break;
}
else if(ilnput == 1)
{
//사냥터로 가서 맵 구현해야함!
if(field == null)
{
field = new Field();
field.SetPlayer(ref player);
}
field.Progress();
}
}
}
public MainGame() { }
~MainGame() { }
}
}
728x90
'프로그래밍 > 콘솔프로젝트' 카테고리의 다른 글
공의 이동 (0) | 2023.07.11 |
---|---|
공 벽 튕기기 (0) | 2023.07.11 |
TextRpgGame <최종> (0) | 2023.07.11 |
ShootingGame <최종> (0) | 2023.07.04 |
TextRpgGame Ver.2 (0) | 2023.07.04 |