본문 바로가기

코딩

파이썬으로 행맨 만들기 2 - 알파벳 확인하고 출력하기

어제에 이어서 2편으로 돌아온 행맨 만들기. 이번에는 플레이어 입력을 가지고 그 알파벳이 단어에 포함되어 있는지 확인하는 함수를 만들어보겠습니다.

 

먼저 새로운 변수를 만들어볼 거예요. 바로 current_word라는 변순데요. 

이 변수는 리스트 형태로 모든 값들은 False로 단어의 길이만큼 값을 지정해줄 거예요. 이 변수는 조금 이따 알파벳을 확인할 때 사용될 겁니다.

 

이제 한번 check 함수를 만들어 볼 건데요. 아주 짧고 이해하기 쉬워요. 코드를 봐보죠.

check 함수

함수가 3줄밖에 되지 않죠? 이 함수는 단어의 길이만큼 돌아서 만약 단어의 x번째 글자가 check 함수의 인수로 들어온 letter 변수와 같다면 아까 만든 current_word 변수의 x번째 값은 False에서 True로 바뀌는 거죠. (여기서 x는 0부터 시작합니다) 만약 단어에 letter가 들어가 있지 않으면 처음에 지정해둔 대로 False로 남아있겠죠. 마지막으로 저번 시간에 만든 getInput 함수 else 마지막에 넣어줄 거예요. 그러면 입력을 받고 바로 체크할 수 있겠죠. check 함수 인수는 alphabet 변수를 넣어줄 거예요.

else 마지막에 check 함수

이제 빈칸들을 출력하는 함수를 만들어봅시다.

만약 플레이어가 알파벳을 맞혔으면 알파벳을 표시하고, 아닌 알파벳들은 빈칸으로 출력해야겠죠? 여기서 아까 만든 current_word 변수가 사용됩니다. 만약 current_word의 i번째 값이 True면 단어의 i번째 값을 출력하고 False면 빈칸을 출력하는 거죠. 그리고 마지막에 가독성을 위해 줄 바꿈을 넣었어요.

이렇게 출력하는 함수를 만들었네요.

printWord 함수

 

한번 코드 전체를 실행해보면

실행 해보았을 때

맨 처음에 지정한 python에 d는 포함돼있지 않으니까 아무 일도 일어나지 않죠. 근데 p를 입력해보면? python에서 p가 딱 출력이 되는 게 보이죠.

이렇게 오늘은 함수 2개를 만들어봤네요. 이제 플레이어의 입력을 받고 그 알파벳이 단어 안에 있는지 확인할 수 있어요. 또 출력도 할 수 있죠. 이제 거의 다 끝났어요! 마무리 작업만 하면 끝나는 거예요. 내일 마지막 3편을 올릴게요.