할당량이 끝나서 다른 사람들의 스크립트를 안건들이면서 , 뭔가 더 해볼 수 있는게 없을까? 하다가
퀘스트를 새로운 스크립트로 진행하면 되겠다는 생각이 들어 시작해보았다!
아직 전투부분 구현이 덜 되어서 퀘스트 입장하는 부분까지만 진행하였다.
internal class Quest
{
public static void quest()
{
bool exit = false;
while (!exit)
{
Console.Clear();
Console.WriteLine(" ____ _ _ ");
Console.WriteLine(" / __ \\ | | | |");
Console.WriteLine(" | | | |_ _ ___ ___| |_ | |");
Console.WriteLine(" | | | | | | |/ _ \\/ __| __| | |");
Console.WriteLine(" | |__| | |_| | __/\\__ \\ |_ |_|");
Console.WriteLine(" \\___\\_\\\\__,_|\\___||___/\\__| (_)");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("1. 과제발생기 강탈 미션 ★"); // 기본 공격으로 매니저님들의 컴퓨터를 부수면 되는 게임
Console.WriteLine("2. 거대한 혁최몬 소탕 미션 ★ ★ ★"); // 혁최몬 체력이 좀 더 많아집니다
Console.WriteLine("3. 스파르타 코딩클럽에서 생존하기 ★ ★ ★ ★ ★"); // 일단 넣어봄
Console.WriteLine("0. 마을로 돌아가기");
Console.WriteLine();
Console.WriteLine("참여하실 퀘스트 번호를 입력해주세요");
Console.Write(">>");
int choice = ConsoleUtility.PromptMenuChoice(0, 3);
switch (choice)
{
case 0:
exit = true;
break;
case 1:
quest1();
break;
case 2:
quest2();
break;
case 3:
quest3();
break;
}
}
}
public static void quest1()
{
Console.Clear();
Console.WriteLine("[ 퀘스트1. 과제발생기 강탈 미션 ]");
Console.WriteLine("난이도 : ★");
Console.WriteLine();
Console.WriteLine("'있잖아... " + Start.player.Name + " ...'");
Console.WriteLine("'그 소문 들었어?... 우리에게 자꾸 과제를 내주는 과제발생기의 위치를 알아냈대...'");
Console.WriteLine("'그곳에 가서... 과제 발생기를 없애면 과제가 줄어들지도 몰라...'");
Console.WriteLine("'어떻게 할래?... 도전해볼래?...'");
Console.WriteLine();
Console.WriteLine("1. 당연히 참여한다");
Console.WriteLine("0. 무서우니 도망친다");
Console.WriteLine();
Console.Write(">>");
int choice = ConsoleUtility.PromptMenuChoice(0, 1);
switch (choice)
{
case 0:
return;
case 1:
//1. 과제발생기 강탈미션으로 이동
break;
}
}
public static void quest2()
{
Console.Clear();
Console.WriteLine("[ 퀘스트2. 거대한 혁최몬 소탕 미션 ]");
Console.WriteLine("난이도 : ★ ★ ★");
Console.WriteLine();
Console.WriteLine("'큰일이야!! " + Start.player.Name + " !!!'");
Console.WriteLine("'혁최몬이 내가 낸 과제물을 보고 분노해서 거대해져버렸대!!'");
Console.WriteLine("'마을 사람들을 마구 찌르며 괴롭히고 있다는데, 도와주지 않을래?'");
Console.WriteLine();
Console.WriteLine("1. 당연히 참여한다");
Console.WriteLine("0. 무서우니 도망친다");
Console.WriteLine();
Console.Write(">>");
int choice = ConsoleUtility.PromptMenuChoice(0, 1);
switch (choice)
{
case 0:
return;
case 1:
//2. 거대한 혁최몬 소탕 미션으로 이동
break;
}
}
public static void quest3()
{
Console.Clear();
Console.WriteLine("[ 퀘스트3. 스파르타 코딩클럽에서 생존하기 ]");
Console.WriteLine("난이도 : ★ ★ ★ ★ ★");
Console.WriteLine();
Console.WriteLine("'스파르타 코딩클럽에 온 것을 환영한다... " + Start.player.Name + " 이여...'");
Console.WriteLine("'이곳에 온 이상 너는 도망칠 수 없다'");
Console.WriteLine("'코딩을 해라.. 공부를 해라.. " + Start.player.Name + " ..!!!!");
Console.WriteLine();
Console.WriteLine("도망칠 수 없습니다. 아무 키나 입력해 스파르타 코딩클럽에 입장하세요");
Console.ReadKey();
// 아무 키를 누르면 스파르타코딩클럽으로 입장
// 지금은 아무거나 누르면 메인화면으로 돌아감
}
}
일단 먼저! 팀장님께서 뒤로 나가기를 하면 메인화면으로 나가지는데, 한칸씩 뒤로 갔으면 좋겠다고 말씀하셨다,
예를 들면 퀘스트 - 퀘스트1 에서 나가면 바로 메인이었는데,
퀘스트1에서 뒤로가면 퀘스트, 다시 뒤로가면 메인 이런식으로 되는게 좋지 않겠냐는 말씀에 찾아보았더니
bool exit = false;
while (!exit)
{
}
요걸 이용해서 한칸씩 뒤로가게 해줄 수 있을 것 같았다.
뒤로 가고 싶은 경우엔 exit = true; 로 해주면 된다!!
내 코드에 넣어 본 결과 잘 작동하고 있는 듯 하다.
다른 팀원분들께도 알려드렸는데 이걸로 사용하셨을지 다른 방법을 찾으셨을지 궁금하다. 히히
그리고 퀘스트 지문에서 앞서 설정한 캐릭터 이름을 넣고 싶었는데, 어떻게 해야하나 이것 저것 넣어보다가
Start.player.Name 을 넣으면 되는 걸 알게 되었다.
Start 라는 클래스 안의, player 생성자에 있는 Name 정보를 가져온다는 뜻으로 생각한다
생성자가 맞는지 잘 모르겠다!! 생성자 부분이 너무 어렵다.
그리고 팀장님이 게임 시작할 때 콘솔에 그림같은걸 띄우시길래
그냥 글로만 있는게 심심해서 다른 요소를 넣고싶어 고민중이던 찰나에 저걸 써보면 되겠다고 생각했다!
게임 StartScene에 들어간 코드.
Console.WriteLine(" _____ _____ _ _ ");
Console.WriteLine(" / ____| / ____| | | | ");
Console.WriteLine(" | | __ __ _ _ __ ___ ___ | (___ | |_ __ _ _ __| |_ ");
Console.WriteLine(" | | |_ |/ _` | '_ ` _ \\ / _ \\ \\___ \\| __/ _` | '__| __|");
Console.WriteLine(" | |__| | (_| | | | | | | __/ ____) | || (_| | | | |_ ");
Console.WriteLine(" \\_____|\\__,_|_| |_| |_|\\___| |_____/ \\__\\__,_|_| \\__|");
퀘스트 부분에 들어간 코드.
Console.WriteLine(" ____ _ _ ");
Console.WriteLine(" / __ \\ | | | |");
Console.WriteLine(" | | | |_ _ ___ ___| |_ | |");
Console.WriteLine(" | | | | | | |/ _ \\/ __| __| | |");
Console.WriteLine(" | |__| | |_| | __/\\__ \\ |_ |_|");
Console.WriteLine(" \\___\\_\\\\__,_|\\___||___/\\__| (_)");
너무 크고 정신사납지 않으면서, 이 화면이 어떤 화면인지를 재미있게 보여줄 수 있는 걸 찾다가
조금 자그마하면서 글씨는 확실한! 꽤 귀여운걸 발견해서 사용해보았는데 꽤 귀엽다!!!!!
저거 하나 넣어주니 꽤 게임 분위기가 산다.
히히 맘에들어
그리고 오늘은 C# 으로 배치고사가 있었는데, 베이직 스탠다드 챌린지 세가지 분반으로 나뉜다고 한다.
우리 조는 일단 시험 전 배치고사 공부를 하는 시간을 가졌기 때문에 오늘은 조별과제에서 크게 진도가 나가진 않았다.
물론 난... 베이직 확정인듯 ㅠㅠ
차라리 이렇게 분반으로 해서 베이직부터 차근차근 다시 배워나가는 것도 좋을 것 같다.
기능 구현보다 콘솔 꾸미기에 맛들려버려서 큰일이다..
하지만 재밌는걸.
이따 본가에 내려갈 예정이라, 본가에 가서 마저 퀘스트를 구현해 볼 예정이다. 재밌겠다~
'제출용 > TIL' 카테고리의 다른 글
내일배움캠프 16일차 TIL + 퀘스트 구현 완. (2) | 2024.05.07 |
---|---|
내일배움캠프 15일차 TIL + 퀘스트 입장에 드디어 성공 (1) | 2024.05.03 |
내일배움캠프 13일차 TIL + 오류 대수정/그래도 할당량 완료 (1) | 2024.05.01 |
내일배움캠프 12일차 TIL + 시작화면, 상태보기, 오류대수정 (1) | 2024.04.30 |
내일배움캠프 11일차 TIL + 깃허브 연결하기 (0) | 2024.04.29 |