씨앗게임
땅에 씨앗을 심고 키우고 수확하여 더 많은 씨앗을 얻는 게임입니다. 파이썬 스터디에서 강의 종료 후 풀어보는 퀴즈이기도 합니다.
설명
- 10x10 크기의 점(.)으로 이뤄진 맵에 주인공 C가 있다.
- C는
w, a, s, d
명령으로 맵을 돌아다닐 수 있다. i
로 갖고있는 씨앗을 심을 수 있고o
로 식물을 수확할 수 있다.q
를 입력하면 종료된다.- 심어진 식물은 1~9단계로 성장한다.
- 각 단계에서 수확하면 내 씨앗이 1에서 9만큼 추가된다.
- 식물은 시간이 지나면 1씩 자라는데 C가 움직일 때마다 시간이 지난다.
코드 제출
아직 안 풀어본 분들을 위해 코드는 갠톡으로 받습니다. 채팅방의 고기의 프로필을 클릭하여 갠톡으로 코드를 보내주세요.
검사항목
어느 정도의 코딩이 가능한지 파악하는 목적의 퀴즈이므로 아래와 같은 항목만 확인합니다. 그 외의 세부사항은 마음대로 구현하셔도 됩니다. 여러분의 창의적인 아이디어를 적용해보세요.
- 갖고있는 씨앗만큼만 심을 수 있는지
- 빈 땅에만 심을 수 있는지
- 주인공이 맵을 벗어나는 명령을 했을 때 문제가 없는지
힌트
맵 그리기
map = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
]
me = [0, 0]
# 출력
def draw_map():
pass
# 종료(q)명령이 들어올 때까지 계속 명령(command)을 받기
while True:
draw_map()
command = input()
if command == 'q':
break
위 미완성 예제에 코드를 추가하여 map
을 출력하세요. draw_map()
의 pass
를 지우고 반복문을 사용하여 map
을 순회하며 출력하면 됩니다.
빈땅에 점(.) 찍기
반복문으로 map을 그리는 중 값이 0인 경우 식물이 없는 빈 땅입니다. 조건문을 사용하여 0인 경우 숫자대신 점(.)을 찍습니다.
주인공을 맵위에 출력하기
me
변수는 주인공 C의 좌표를 담고있는 list입니다. 맵 위에 C를 출력하세요.
최초 시작은 0, 0으로 좌상단에 놓여집니다. 맵을 출력하면서 현재 그리는 좌표가 C의 좌표와 일치하면 땅 대신 C를 출력하면 됩니다.
기타 도전과제
WIDTH
,HEIGHT
상수 값을 지정하여 맵 사이즈를 쉽게 바꿀 수 있게 만들기- 게임을 파일로 저장/불러오기
- 캐릭터가 움직일 때마다 식물이 자라는 게 아니라 1분에 1씩 자라게 만들기
- 매 명령마다
<엔터>
입력 없이w, a, s, d, i, o, q
키만으로 움직이도록 만들기input()
사용 피하기