프로젝트명: 스파르타 던전 (Text 게임) 만들기
- 던전을 떠나기전 마을에서 장비를 구하는 게임을 텍스트로 구현
- 상점의 아이템 중에서 나만의 장비를 구성하는 부분이 포인트
- 장비는 여러개의 데이터가 함께 있는 만큼 객체나 구조체를 적극 활용(이름, 가격, 효과, 설명 등…)
- 관련된 여러 데이터를 다루는 부분은 배열이 도움이 됨
미숙했던점
- 와이어 프레임 만들지 않음
- 접근제한자 중 private을 많이 안써봐서 이번 프로젝트때 거의 안씀
- 추상클래스 한번 사용해봄
- 기능보다 디자인먼저
그로인해 겪은 어려움
- 와이어 프레임 만들지 않음
이랬다가~
요래됐슴당~
이모.. 많이 노력했지.. ?
- 확실히 와이어 프레임을 만들지 않아서 이 프로그램의 전체적인 구조는 어떻게 할까 생각하고 짠게 아니라 짜다보니깐 이렇게 이렇게 이어지게 됐다.
일단 처음에는 한 파일로 해서 그나마 뼈대가 잘못 세워지는 수준은 아니였는데 진짜 나눌때 너무 힘들었다...... 너무.....
설계를 짜고 시작하는게 중요한걸 느낀 프로젝트였다....
- 접근제한자 중 private을 많이 안써봐서 이번 프로젝트때 거의 안씀
?? : 누가 밖에서 변수 띡띡 하고 값 넣으면 그게 자기꺼가 되는데 그럼 안되지.. 이런건 프라이빗하게 해야합니다.
- 맛워요.. 누가봐도 제꺼 값 바꾸기 좋게 생겼어요. 제가 플레이어 폴더에서 값만 바꾸면 값자기 돈이 24329402원 돼요..
그치만..... 그치만...... 해킹하는 사람이 잘못한거잖아!!
.
.
라고 말하고 싶지만 공부해야한다는걸 알기에 어제 접근제한자 관련해서 자기전에 강의도 보고 공부를 했다.
다른 필수 기능을 구현하느라 이 부분은 고치지는 못했지만 다음 프로젝트때는 신경써서 구현해야할 부분인 듯 싶다.
- 추상클래스 한번 사용해봄
- 위 사진의 당사자가 불리고 있습니다... 궁금하시면 올려봐주세요... 둘이 다른점은 인벤토리는 착용여부 불 변수, 상점은 판매여부 불 변수입니다.. 하하하
되게 편리한데 어렵지도 않은거라 어려워했던 내가 바보같고 더 응용해봐야겠다.
- 기능보다 디자인먼저
- 노코멘트 하겠습니다.
결과물
> 1. 새로하기 입력시 플레이어 생성. 이름은 세글자 제한
> 2. 불러오기 입력시 기존에 저장된 플레이어 정보, 인벤토리 불러옴
> 선택은 총 6개 가능
> 1. 상태보기 입력시 기본 플레이어 생성시 생성되는 능력치 그대로 생성됨
> 0. 나가기 입력시 로비로 이동
> 2. 인벤토리 입력시 구매내역 없으니 비어있는 모습 볼 수 있음
> 장착 관리 눌러봐도 할 수 없다는 알림 출력
> 3. 상점 입력시 아이템 목록과 능력치, 가격이 나옴. 위에는 내가 보유한 골드가 보임
> 1. 아이템 구매 입력시 이벤트가 나오며 아이템의 번호를 고를 수 있게됨.(이미 구매한 아이템은 가격 볼 수 없음)
> 아이템 선택시 아이템 이름과 함께 아이템 설명을 해줌.
> 아이템 설명은 랜덤임
> 1. 똑같은 아이템 구매하려고 할시에는 이미 구매한 아이템입니다! 라는 말을 하게됨.
> 4. 던전 입장시 방어력에 비례하여 실패여부 있음
> 던전 입장 후 퇴장할 때 체력이 랜덤으로 깎이고 음수로 떨어지는걸 방지하기 위해 30% 미만이 되면 주점으로 이동시킴
> 1. 자신이 원하는 체력회복량에 맞게 먹기
> 인벤토리에서 아이템 장착가능. 장착시 아이템 앞에 [E] 표시 생김
> 아이템을 해체하려면 같은 아이템을 연속해서 선택하기
> 아이템 장착시 방어력 +9 (기본 방어력5) 만큼 오름
> 레벨업하면 방어력, 공격력, 체력이 전체적으로 1씩 오름
새로 알게된 사실
public static string CenterAlign(string text, int width)
{
return text.PadLeft((width - text.Length) / 2 + text.Length).PadRight(width);
}
Console.WriteLine("중앙: {0}", CenterAlign("텍스트", 20)); // center
Console.WriteLine("좌측: {0,-20}", "텍스트"); // left
Console.WriteLine("우측: {0,20}", "텍스트"); // right
뻥치지마요.. 얶떻개.. 이럴수가... 잇나요...
> c# 콘솔 폰트 확인 및 폰트(글꼴,크기) 변경 <
c# 콘솔 폰트 확인 및 폰트(글꼴,크기) 변경
사전지식 및 계기 특수문자 또는 외국문자를 출력하다 보면 폰트에 따라서 깨지는 글자가 생긴다. 특히 콘솔에서는 대체 폰트가 없는 듯이 깨진다. 그리고 글꼴이 맘에 안들 수가 있다. 그럴 땐
self-edu.tistory.com
나는.......
나는.................
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine($"\n\t\t\t 스파르타 마을에 오신 {player.playerName}님 환영합니다.\n\t\t 이곳에서 던전으로 들어가기전 활동을 할 수 있습니다.\n");
Console.ResetColor();
Console.WriteLine("\t\t\t\t\t1. 상태보기");
Console.WriteLine("\t\t\t\t\t2. 인벤토리");
Console.WriteLine("\t\t\t\t\t3. 상 점");
Console.WriteLine("\t\t\t\t\t4. 던 전");
Console.WriteLine("\t\t\t\t\t5. 수정주점");
Console.WriteLine("\t\t\t\t\t6. 게임종료");
Console.Write(">> ");
나는 이렇게 썼는데..................
.....
굉장히...
유익했습니다...
이미 다 노가다 했지만......
코드
하지만 저의 더러운 코드는 보지말아주새요...
https://github.com/MilkyQuartz/sujeongProject
GitHub - MilkyQuartz/sujeongProject
Contribute to MilkyQuartz/sujeongProject development by creating an account on GitHub.
github.com
'Record > TIL' 카테고리의 다른 글
[Unity] 평범한 직장인이였던 내가 차에 치였더니.. (2) | 2024.04.29 |
---|---|
[Unity] 내일배움캠프 10일차 TIL:: enum, 열거형 형식 이해하기 (2) | 2024.04.26 |
[Unity] 추상클래스 (2) | 2024.04.24 |
[Unity] 추상클래스와 파일 세분화 중요성 (2) | 2024.04.23 |
[Unity] 코딩 문제로 오니 숨이 트인다!! (2) | 2024.04.22 |