-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
오류 CS0246 'Knight' 형식 또는 네임스페이스 이름을 찾을 수 없습니다.
23.12.12 13:21 작성 조회수 272
0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharp
{
enum Playertype
{
None=0,
Knight=1,
Archer=2,
Mage=3
}
class Player:Creature
{
protected Playertype type = Playertype.None;
protected int hp = 0;
protected int attack = 0;
protected Player(Playertype type):base(CreatureType.Player)
{
this.type = type;
}
public void SetInfo(int hp, int attack)
{
this.hp = hp;
this.attack = attack;
}
public Playertype GetPlayertype() { return type; }
public int GetHp() { return hp; }
public int GetAttack() { return attack; }
public bool IsDead() { return hp <= 0; }
public void OnDamaged(int damage)
{
hp -= damage;
if (hp <= 0)
{ hp = 0; }
}
class Knight : Player
{
public Knight() : base(Playertype.Knight)
{
SetInfo(100, 10);
}
}
class Archer : Player
{
public Archer() : base(Playertype.Archer)
{
SetInfo(70, 15);
}
}
class Mage : Player
{
public Mage() : base(Playertype.Mage)
{
SetInfo(60, 20);
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CSharp
{
enum Mode
{
None,
Lobby,
Gild,
Biliage
}
;
internal class Game
{
Player player = null;
Monster monster = null;
Mode mode = Mode.Lobby;
public void Process()
{
switch(mode)
{
case Mode.Lobby:
ProcessLobby();
break;
}
}
public void ProcessLobby()
{
while (true)
{
Console.WriteLine("직업을 선택하세요");
Console.WriteLine("[1]검사");
Console.WriteLine("[2]궁");
Console.WriteLine("[3]마법사");
string input = Console.ReadLine();
switch (input)
{
case "1":
player = new Knight();
break;
}
}
}
}
}
이렇게 있을 때 두번째 파일의 player = new Knight();
에서 심각도 오류 CS0246 'Knight' 형식 또는 네임스페이스 이름을 찾을 수 없습니다. using 지시문 또는 어셈블리 참조가 있는지 확인하세요.
라는 오류가 뜹니다 아무리 찾아봐도 뭐가 문젠지 모르겠어요ㅠㅠ
처음엔 오류의 원인을 찾는게 원래 이렇게 어려운건가요?
찾아볼 때 그 과정에서도 모르는 말이 너무 많아서 하나하나 찾아가다보면 이렇게 오래 걸릴 단계가 아닌 것 같은데 시간이 많이 지체되고 결국 잘못된 방향으로 찾아서 해결책도 찾지 못할 때가 많아요.
처음 공부할 때는 너무 막히면 질문하고 일단 넘어가고 나중에 돌아오는게 맞을까요? 아니면 끝까지 문제를 파악하고 넘어가야할까요?
답변을 작성해보세요.
0
Rookiss
지식공유자2023.12.12
class Knight의 위치가 잘못 되었습니다.
밖에다가 만들어야 하는데 class Player 내부에다 만들어서 발생한 문제입니다.
요렇게 밖에다 해주셔야 합니다.
0
Rookiss
지식공유자2023.12.12
처음에 문법 헤딩은 정말 끔찍하고
별 것도 아닌 것 가지고 1시간씩 낭비하고 그런 일이 비일비재합니다.
그런 무한 헤딩과 경험이 쌓이다 보면,
나중에는 에러 메시지만 보고도 원인이 유추되는 내공이 쌓입니다.
위 내용이 보기가 어려워서 잘 모르겠는데
정말 해결이 안되면 전체 솔루션 압축해서 rookiss@naver.com 로 보내주세요.
답변 2