즐거운 코딩 시간입니다 !
이번 개발 주제는 '행맨' 게임이구요.
행맨 게임은 다들 아시겠지만 아주 유명한 단어 퀴즈 프로그램입니다. 어떤 단어가 주어지면 그 단어의 길이만큼 빈 칸(밑줄) 이 주어지고 플레이어는 알파벳을 하나씩 얘기하면서 단어를 추측하는데요, 10번만에 맞히지 못하면 게임이 끝납니다.
보통 모음(a e i o u) 을 먼저 시도해보고 나서 자음으로 넘어가는 것이 일반적인 전략이라고 알고 있어요 ㅋㅋ
예를 들면 이런 식입니다.
커피(COFFEE)라는 단어가 주어진다면, 밑줄은 총 6개가 생기겠죠.
_ _ _ _ _ _
그럼 플레이어는 알파벳을 하나 얘기해봅니다.
E 를 해볼까요?
만약 E 가 단어에 포함돼있다면, 해당하는 위치에 E 를 표시해줍니다.
_ _ _ _ E E
이렇게 되겠네요.
이번에는 A 를 해볼까요?
A 는 포함되지 않으므로 기회가 줄어들고 지금까지 맞힌 내용 그대로 출력합니다.
_ _ _ _ E E
변화가 없지요.
이번에는 C 를 해봅시다.
그럼
C _ _ _ E E
다음에는 F 를
C _ F F E E
마지막으로 O 를 해보면
C O F F E E
로 게임은 성공으로 끝나게 됩니다.
파이썬으로 이 게임을 만들어 볼 텐데요, 자세한 내용은 이렇습니다.
이 내용을 소스코드로 만들어보면 아래와 같습니다.
각 줄마다 주석을 달아놨고, 제시 단어는 apple, banana, orange 정도로 해 두었습니다.
from random import * # 랜덤 모듈 import
words = ["apple", "banana", "orange"] # 리스트에 영어 단어 후보를 나열
word = choice(words) # 랜덤으로 단어 중 1개를 선택
print("answer : " + word) # 참고용으로 정답 출력 (실제 게임에서는 지우기)
letters = "" # 플레이어가 지금까지 입력한 알파벳들 저장
# 정답을 맞힐 때까지 무한 반복
while True:
succeed = True # 성공 여부 확인 변수
print()
for w in word: # 제시 단어를 알파벳별로 한 글자씩 비교
if w in letters: # 현재 알파벳이 플레이어가 입력한 값들 중에 있으면
print(w, end=" ") # 그 알파벳을 표시
else: # 입력한 값들 중에 없으면
print("_", end=" ") # 밑줄을 표시
succeed = False # 밑줄이 있다는 것은 아직 다 풀지 못했음을 의미 !
print()
if succeed: # 만약 성공했다면 게임 종료
print("Success")
break
letter = input("Input letter > ") # 플레이어로부터 한 글자씩 입력
if letter not in letters: # 입력값 중에 포함되어 있지 않다면
letters += letter # 새로 입력받은 글자를 입력값에 추가
if letter in word: # 입력한 글자가 제시 단어에 포함되었다면
print("Correct")
else: # 포함되어있지 않다면
print("Wrong")
게임을 실행해보면 이런 모습이에요 ^^
보다 상세한 설명이 필요하신 분들은 아래 영상을 통해서 공부해주세요~
감사합니다.
호봉개드리퍼
ㅋㅋㅋㅋㅋㅋ 귀엽다
호봉개드리퍼
아 물론 행맨그림
나코
좋다 말았네
야너도자위중이냐
팩맨인줄 알고 들어와서 ㅂㅁ ㅡㅡ
나코
오 팩맨?! 만들어볼까나 ㅋㅋㅋ
야너도자위중이냐
사실 추천 박았음. 팩맨도 만들어줘~~~~
나코
오케바링 ㅋㅋㅋ 과연 텍스트로 어떻게 비벼볼수 있을진 몰겠지만 고민해볼게 ㅋㅋㅋ
닥터후아크바르
나코
ㅋㅋㅋ 감사합니다 ^^
딥러닝학부연구생
프로그래밍 언어로 게임 만들기 특) 게임아님
농담이고 설명 잘하시네요 재밌게봤습니다
나코
딥러닝 하시는 분 ㄷㄷㄷ 멋져요 ㅋㅋ
숨은음은
행맨 그림까지 텍스트로 잘 그렸으면 추천인데 아깝..
그리고 행맨을 진짜 만드려면 라이프도 잇고 겜 오버도 잇어야징
나코
ㅋㅋ 인정!! 담엔 텍스트로 그림도 한번 그려볼게 ㅋㅋㅋ
드럼을잘치자
아저씨 이걸 2018년에 올리셨어야죠 교양팀플과제였ㄴ는데!
나코
?? 아직 재학중이면 재수강 해요 ㅋㅋㅋ
유즈리하
파이썬 독학에 큰 도움이 됩니다. 감사합니다.
그리고 혹시 제가 정보보안 쪽으로 진로를 생각하고있는데 어떤 학과를 가야하는지, 어떤 공부를 가야하는지와 같은 것에 대한 팁이 있으시다면 알려주시면 감사하겠습니다.
숨은음은
난 그쪽까지는 명확히 몰라도 개발자하고 있는디 정보보안이면 파이썬 안쓸거임
나코
정보보안이래도 일단은 기본적으로 컴퓨터에 대한 배경지식이 필요하지요 ^^ 요기 설명 참고하세요~
https://m.blog.naver.com/cdh0584/221975593682
asaid
선생님 스크래핑 잘배웠습니다 감삼다 ^^ 이거도 잘 보겠슴다
나코
^^ 이건 짧은거니 가벼운 맘으로 보세요~
스미스의유기화학
우리학교 소프트웨어과목에서 배웠던거네 ㅋㅋㅋ
나코
앗 ㅋ 워낙 유명한 겜이라 그런가봐요. 담엔 뭘 만들지..
dhejrtlfj
퍼스트퀸4같은 게임은 안됨? 와룡전 같은게임이나
안되겠지?
나코
?? 안되는게 어딨어~~ 플밍은 하고싶은거 모두 가능!! 근데 그래픽이 들어가는거면 이렇게 간단한 코드로는 어렵지 ㅋ
dhejrtlfj
만들어줘
나코
돈 줘
dhejrtlfj
아잉 만들어줭 ㅋ
이나온주사위
이 글을 보니 지난학기에 들었던 파이썬 교양이 생각났읍니다....
다시 파이썬 겉핥기 들어갑니다잉
나코
교양으로 파이썬을 가르치네요. 프로젝트는 어떤걸 하나요?
이나온주사위
문돌이 교양이라서 학기 초에는 간단한 변수 설정이나 문법같은거 배웠고 학기말에는 약간 응용해서 본문에 나온 랜덤을 이용한 주사위 게임이나 def같은거를 조금 써먹었어요
나코
ㅋㅋ 막 엄청 어려운걸 다루진 않았네요! 적당한 난이도로 보입니다 ^^ 답변 고마워요~~
헛소리를
넘모좋당. 나코. 구독했다. 업무에 활용하는 코딩도 만들어주셈.
나코
Yes sir !!
울랄라숑숑
나 질문!!
from random import *
import random
이 두개 차이점 좀ㅠㅠㅠ
그리고
from numpy import dot 처럼 왜 하는거야? 그냥 import numpy로 다 불러들이면 안돼??
프로그램이 무거워지나..? 나 비전공자인데 혹시 설명 해줄 수 있을까?? 고마워엉~!!
도넛조아
그래서 이분이 개드립 최대 아웃풋 맞죠?