• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

오류 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 지시문 또는 어셈블리 참조가 있는지 확인하세요.

라는 오류가 뜹니다 아무리 찾아봐도 뭐가 문젠지 모르겠어요ㅠㅠ

 

처음엔 오류의 원인을 찾는게 원래 이렇게 어려운건가요?

찾아볼 때 그 과정에서도 모르는 말이 너무 많아서 하나하나 찾아가다보면 이렇게 오래 걸릴 단계가 아닌 것 같은데 시간이 많이 지체되고 결국 잘못된 방향으로 찾아서 해결책도 찾지 못할 때가 많아요.

처음 공부할 때는 너무 막히면 질문하고 일단 넘어가고 나중에 돌아오는게 맞을까요? 아니면 끝까지 문제를 파악하고 넘어가야할까요?

 

답변 2

·

답변을 작성해보세요.

0

image
class Knight의 위치가 잘못 되었습니다.
밖에다가 만들어야 하는데 class Player 내부에다 만들어서 발생한 문제입니다.
image
요렇게 밖에다 해주셔야 합니다.

감사합니다!! 강의 너무 재밌어요

열심히 할게요><

0

처음에 문법 헤딩은 정말 끔찍하고
별 것도 아닌 것 가지고 1시간씩 낭비하고 그런 일이 비일비재합니다.
그런 무한 헤딩과 경험이 쌓이다 보면,
나중에는 에러 메시지만 보고도 원인이 유추되는 내공이 쌓입니다.

위 내용이 보기가 어려워서 잘 모르겠는데
정말 해결이 안되면 전체 솔루션 압축해서 rookiss@naver.com 로 보내주세요.