오늘도 객체지향 TextRPG를 만들면서 연습하던 도중에,
똑같이만 만들면 지루해서 다른 기능들을 추가해보는 중이였습니다.
그중, Monster 클래스에 만들어놨던 몬스터의 정보를 가져오는 함수인 GetMonsterType을 이용해보고 싶어서
Game 의 ProcessField의 선택지에 하나를 더해서 싸우기 전에 몬스터의 정보를 확인할 수 있게 만들어 봤습니다.
그냥 ProcessField선택지를 추가하면, 프로그램에서 while문으로 Process함수를 계속해서 실행하고 있기 때문에, CreateRandomMonster()함수까지 다시 실행되어 선택지를 다시 선택하는게 아니라, 다른 몬스터를 생성해 버리는 문제가 있습니다.
그 문제를 해결하기 위해서, 위와같이 몬스터를 만드는 부분과, 선택지 부분을 다른 함수로 나누었습니다.
또, 정보를 확인하고 난 뒤에, 다시 Fight()함수가 실행될 수 있도록 하기위해서 GameMode에 Fight 를 추가하여,
메인 함수의 while문에서 호출되는 Process함수 내의 mode를 GameMode.Fight인 상태로 계속 반복되게 만들어, ProcessFight()가 계속해서 실행 될 수 있도록 만들었습니다.
결과는 이렇게 나왔습니다. 정보를 확인하고 도망가거나, 싸우거나 , 다시 몬스터 정보를 확인할 수 있습니다.
6번째 객체지향TextRPG연습인데, 이게 진짜 좋은 연습방법인것 같습니다. 코드흐름이나, 제가 눈치채지 못하고 넘어가던 부분들이 하나씩 보여서 개선해가는 느낌이 아주 기분이 좋습니다.
맞습니다!
TextRPG가 간단하면서도 의외로 많은 것을 배울 수 있습니다.
대부분의 유명 게임 학원에서 TextRPG를 몇 번이고
반복해서 연습을 시키는 것도 그런 이유 아닐까 싶네요
답글
kaiser my hr In, Sign Up Guide 2023 – Kaiser Permanente offers a variety of healthcare products and services all over the globe. The chain also gives you marvelous Kaiser Permanente Employee Benefits and perks for its staff and connections which are great to enjoy.
답글