택스트 rpg에서 게임 시작/종료, 플레이어 이름 설정, 직업 클래스 결정하는 프로그램을 작성중입니다....
일단 오류는 안 뜨는데 마지막에 플레이어 이름, 직업 클레스, 스탯 확인하는 글이 출력이 안되네요.... 도와주세요...
using System;
enum Choosestartorout
{
selectstart = 1,
selectout = 2,
noneselect = 0
}
enum classtype
{
none = 0 ,
knight = 1 ,
magician = 2 ,
archer = 3 ,
rogue = 4
}
namespace text_rpg
{
public class Player
{
public int hp = 0;
public int at = 0;
public string name = "이름";
public void setting( int _at, int _hp)
{
at = _at;
hp = _hp;
}
}
class Program
{
static void Main()
{
Console.WriteLine("Text RPG");
Console.WriteLine("[1] 게임을 시작합니다");
Console.WriteLine("[2] 게임을 종료합니다.");
Open();
}
static Choosestartorout Open()
{
Choosestartorout choice1 = Choosestartorout.noneselect;
ConsoleKeyInfo Csi = Console.ReadKey();
Console.WriteLine();
switch (Csi.Key)
{
case ConsoleKey.D1:
choice1 = Choosestartorout.selectstart;
Console.WriteLine("게임을 시작합니다.");
Player Newplayer = new Player();
classtype choice = classtype.none;
Choosename(Newplayer);
Chooseclass(choice);
Creatplayer(choice,Newplayer);
break;
case ConsoleKey.D2:
choice1 = Choosestartorout.selectout;
Console.WriteLine("게임을 종료합니다.");
Overgame();
break;
}
return choice1;
}
static void Overgame()
{
Environment.Exit(0);
}
static string Choosename(Player Newplayer)
{
Console.WriteLine("당신의 이름은 무엇입니까?");
string input = Console.ReadLine();
Console.WriteLine("이름:" + input);
input = Newplayer.name;
return Newplayer.name;
}
static classtype Chooseclass(classtype choice)
{
Player Newplayer = new Player();
Console.WriteLine("직업을 선택하십시오.");
Console.WriteLine("[1] 기사");
Console.WriteLine("[2] 마법사");
Console.WriteLine("[3] 궁수");
Console.WriteLine("[4] 도적");
ConsoleKeyInfo Csi = Console.ReadKey();
Console.WriteLine();
switch (Csi.Key)
{
case ConsoleKey.D1:
choice = classtype.knight;
Console.WriteLine("기사를 선택했습니다.");
break;
case ConsoleKey.D2:
choice = classtype.magician;
Console.WriteLine("마법사를 선택했습니다.");
break;
case ConsoleKey.D3:
choice = classtype.archer;
Console.WriteLine("궁수를 선택했습니다");
break;
case ConsoleKey.D4:
choice = classtype.rogue;
Console.WriteLine("도적을 선택했습니다");
break;
}
return choice;
}
static void Creatplayer(classtype choice, Player Newplayer)
{
Console.WriteLine(Newplayer.name);
switch (choice)
{
case classtype.knight:
Console.WriteLine("직업: 기사");
Newplayer.setting(20, 80);
Console.WriteLine("공격력:" + Newplayer.at);
Console.WriteLine("생명력:" + Newplayer.hp);
break;
case classtype.magician:
Console.WriteLine("직업: 마법사");
Newplayer.setting(20, 80);
Console.WriteLine("공격력:" + Newplayer.at);
Console.WriteLine("생명력:" + Newplayer.hp);
break;
case classtype.archer:
Console.WriteLine("직업: 궁수");
Newplayer.setting(20, 80);
Console.WriteLine("공격력:" + Newplayer.at);
Console.WriteLine("생명력:" + Newplayer.hp);
break;
case classtype.rogue:
Console.WriteLine("직업: 도적");
Newplayer.setting(20, 80);
Console.WriteLine("공격력:" + Newplayer.at);
Console.WriteLine("생명력:" + Newplayer.hp);
break;
}
}
}
}
static string Choosename(Player Newplayer) { Console.WriteLine("당신의 이름은 무엇입니까?"); string input = Console.ReadLine(); Console.WriteLine("이름:" + input); // input = Newplayer.name; Newplayer.name = input; return Newplayer.name; }
Player Newplayer = new Player(); classtype choice = classtype.none; Choosename(Newplayer); choice = Chooseclass(choice); Creatplayer(choice, Newplayer); break; case ConsoleKey.D2: choice1 = Choosestartorout.selectout; Console.WriteLine("게임을 종료합
죄송한데 뭔가 짤린 것 같은데 다시 올려주실 수 있을까요?
잡소리 안하고 정답만 알려드리면 static classtype Chooseclass(classtype choice) 여기를 static classtype Chooseclass(ref classtype choice)로 바꾸세요
감사합니다!
혹시 이름 출력도 알려주실 수 있을까요?
input = Newplayer.name; -> Newplayer.name = input; 으로 바꾸세요
감사합니다!