다른 에디터를 사용하시는 분들은, 코드 맨 마지막에 t.done()을 추가해 주셔야 터틀 그래픽 창이 바로 닫히지 않습니다~총 20가지 프로젝트를 통해 파이썬의 기초를 다져 나갈 수 있는 파이썬 터틀 그래픽 강좌를 만나보세요! 숨은 터틀 찾기, 축구 게임, 수도 맞히기 퀴즈, 청기 백기 게임, 타로 운세 보기, 맞춤법 폭탄 게임, 미로 탈출 게임, 똥 피하기 게임 등 총 20가지 프로젝트를 만들어 나가는 과정입니다. [티처블 패키지] codethem.co.kr/p/turtle_package [인프런 패키지] www.inflearn.com/roadmaps/576 [유튜브 멤버십] : 구독버튼 옆의 "가입"버튼을 클릭해 주세요~ [티처블 1편] codethem.co.kr/p/turtle1 [인프런 1편] www.inflearn.com/course/파이썬-터틀-1?inst=03d45d6e [티처블 2편] codethem.co.kr/p/turtle2 [인프런 2편] www.inflearn.com/course/파이썬-터틀-2?inst=6c8945fe
안녕하세요 영상이 도움이 많이 되고 있습니다. 그런데 영상과 똑같이 썼는데도 불구하고 창이 열렸다가 바로 닫힙니다. t.done()도 썼구요... 실행할때마다 Traceback (most recent call last): File "c:\Users\Administrator\Desktop\python wrok space\game.py", line 70, in new_turle.up() TypeError: penup() missing 1 required positional argument: 'self' 이렇게 뜨면서 실행이 안되더라구요... 혹시 해결해 줄실수 있나요??
답글이 많이 늦었네요^^ turtle의 addshape과정은 맥이나 윈도우가 동일합니다. 이미지 파일 경로와 gif파일이 맞는지 한번 더 확인하시면 될 듯 합니다. 이미지 경로를 적을 때, "/Users/사용자이름/Downloads/img.gif" 형식으로 해당 이미지 파일이 저장된 절대 경로로 한번 시도해 보세요~
안녕하세요 파이썬 왕초보인데 영상이 정말 많은 도움이 됐습니다!!! 그런데 제공해주신 이미지로는 문제 없이 작동되는데 제가 지정한 사진으로는 되지 않습니다ㅠㅠ 똑같이 100x100사이즈의 gif 이미지로 사용했는데 이미지를 찾을수없다고 나오는데 이유를 알 수 있을까요??
ㅎㅎ 완성을 했는뎅 막 클릭하다 보니 오류 리포트 01. 동일한 카드를 연속으로 눌리면 점수가 계속올라가는것, 02. 이미 맞춘 카드 클릭후에 틀린그림과 누루게 되면 사라지는 현상 03. 성공후 여러번 다른곳 클릭하게 되면 성공 및 game over가 동일하게 노출되는 현상.. ㅠㅠ
import turtle as t import random import time def find_card(x,y): min_idx=0 min_dis=100 for i in range(16): distance=turtles[i].distance(x,y) if distance
오타가 여러 군데 있습니다. find_card 함수 호출도 ind_card로 되어 있고, 이 밖에 오타가 여러 군데 있으니, 오타 및 대소문자 구분 꼼꼼히 하시면서, 천천히 처음부터 다시 만들어 보시는 것이 좋을 듯 합니다. 영상에서 중간 중간 테스트를 할 때 반드시 같이 테스트를 진행하셔야 합니다. 그 과정에서 오류가 발생할 경우 그 오류를 해결 하시고 다음으로 넘어가셔야 하세요. 그렇지 않으면 오류를 잡는데, 더 많은 시간을 소모하게 되실 거예요.
t.bgcolor("pink") t.setup(700,700) t.up() t.ht() t.goto(0,280) t.write("Dessert Memory Game",False,"center",("",30,"bold")) # 점수 펜 객체 생성 score_pen = t.Turtle() score_pen.up() score_pen.ht() score_pen.goto(0,230) #터틀 객체 생성 turtles = [] pos_x = [-210,-70,70,210] pos_y = [-250,-110,30,170] for x in range(4): for y in range(4): new_turtle = t.Turtle() new_turtle.up() new_turtle.color("pink") new_turtle.speed(0) new_turtle.goto(pos_x[x],pos_y[y]) turtles.append(new_turtle) default_img = "images/default_img.gif" t.addshape(default_img) img_list = [] for i in range(8): img = f"images/img{i}.gif" t.addshape(img) img_list.append(img) img_list.append(img) random.shuffle(img_list) for i in range(16): turtles[i].shape(img_list[i]) time.sleep(3) for i in range(16): turtles[i].shape(default_img) click_num = 0 # 클릭 횟수 ( 매 2회 클릭마다 정답체크) score = 0 #점수 attempt = 0 #시도한 횟수 first_pick = "" # 첫 번째 클릭한 이미지 second_pick = "" # 두 번째 클릭한 이미지 t.onscreenclick(play) t.done() 뭐가 틀린건가요ㅠㅠㅠ 클릭해도 성공인지 안뜨고 틀렸을 때 다시 default 이미지로 변경이 안됩니다ㅠㅠ
play 함수내, elif click_num == 2: second_pick == card_idx (==이 아닌 =으로 바꿔야 해요.) click_num = 0 attempt += 1 second_pick == card_idx 을 second_pick = card_idx 로 바꾸시면 되실 거예요~ 이런 실수는 쉽게 눈에 안 들어오죠^^ 이번엔 꼭 성공하길 바랄께요~ ^^
다른 에디터를 사용하시는 분들은, 코드 맨 마지막에 t.done()을 추가해 주셔야 터틀 그래픽 창이 바로 닫히지 않습니다~총 20가지 프로젝트를 통해 파이썬의 기초를 다져 나갈 수 있는 파이썬 터틀 그래픽 강좌를 만나보세요! 숨은 터틀 찾기, 축구 게임, 수도 맞히기 퀴즈, 청기 백기 게임, 타로 운세 보기, 맞춤법 폭탄 게임, 미로 탈출 게임, 똥 피하기 게임 등 총 20가지 프로젝트를 만들어 나가는 과정입니다. [티처블 패키지] codethem.co.kr/p/turtle_package [인프런 패키지] www.inflearn.com/roadmaps/576 [유튜브 멤버십] : 구독버튼 옆의 "가입"버튼을 클릭해 주세요~ [티처블 1편] codethem.co.kr/p/turtle1 [인프런 1편] www.inflearn.com/course/파이썬-터틀-1?inst=03d45d6e [티처블 2편] codethem.co.kr/p/turtle2 [인프런 2편] www.inflearn.com/course/파이썬-터틀-2?inst=6c8945fe
저는 20년차 전문 컴퓨터 프로그래머 이자 코딩 교재 7권을 집필한 저자입니다. 파이썬은 제 전문분야가 아니라서 학생들 가르치려고 여러 교재를 탐독하였는데요, 그 중에서 이 채널이 제일 좋네요. 저를 믿으세요. 이 강좌가 제일 좋습니다.
와! 교재 7권이라니! 멋지십니다~ ^^ 가치있게 봐 주셔서 너무나 감사드립니다! 행복가득가득한 순간순간 만들어나가시길 바랍니다~
좋은 영상 감사합니다!!!!
함께 해주셔서 감사합니다. 그동안 다른 일로 정신이 없어서, 그 사이 해가 바뀌었네요~ 오늘도 멋진 하루 만들어 나가세요~!
아이들 수업용으로 작성하고 있는데 default_img = 'default_image.gif'에서 경로나 파일이 없다고 에러가 납니다. default_image.gif가 같은 폴더에 있습니다.
코드에서 요소들은 무엇이 있나요 요소들 간단히 설명해주세요 ㅜㅜ
화면에 나오는 값을 출력하려고 할떄 false는 왜 쓰는건가요..?
혹시 12번의 시도 끝에 카드를 다 매칭 하지 못하여 gameover이 뜬 후 그 밑에 재시작 버튼을 만들어서 터미널로 가지 않고 재시작이 자동으로 되게 하는 코드를 만들고 싶은데 어떻게 코드를 추가하면 될까요 ㅠ?
안녕하세요 영상이 도움이 많이 되고 있습니다.
그런데 영상과 똑같이 썼는데도 불구하고 창이 열렸다가 바로 닫힙니다.
t.done()도 썼구요...
실행할때마다
Traceback (most recent call last):
File "c:\Users\Administrator\Desktop\python wrok space\game.py", line 70, in
new_turle.up()
TypeError: penup() missing 1 required positional argument: 'self'
이렇게 뜨면서 실행이 안되더라구요...
혹시 해결해 줄실수 있나요??
답변이 많이 늦었네요~ 요즘 다른 일로 정신이 없어서 오랜만에 들어 왔습니다. new_turle.up() 대신, new_turle.penup()으로 사용하시면 문제 해결 되실 거예요. 사용하시는 에디터에 따라 이런 문제가 생길 수 있습니다.
맥북으로는 이미지 저장을 어떡해 해야할까요
이미지 불러오는 작업이 안되네요..
답글이 많이 늦었네요^^ turtle의 addshape과정은 맥이나 윈도우가 동일합니다. 이미지 파일 경로와 gif파일이 맞는지 한번 더 확인하시면 될 듯 합니다. 이미지 경로를 적을 때, "/Users/사용자이름/Downloads/img.gif" 형식으로 해당 이미지 파일이 저장된 절대 경로로 한번 시도해 보세요~
카드를 다른것을 넣고싶은데 gif사진을 써도 오류가뜨는거 어떻게하는게 좋을까요ㅠㅠ
gif 저장 방식 때문인 듯 합니다. 해당 이미지를 그림판에서 gif로 재저장해서 다시 시도해 보시면 되실 거예요. 이미지 사이즈도 적당한 사이즈로 변경 후 저장해서 사용해 보세요~
안녕하세요 파이썬 왕초보인데 영상이 정말 많은 도움이 됐습니다!!!
그런데 제공해주신 이미지로는 문제 없이 작동되는데 제가 지정한 사진으로는 되지 않습니다ㅠㅠ 똑같이 100x100사이즈의 gif 이미지로 사용했는데 이미지를 찾을수없다고 나오는데 이유를 알 수 있을까요??
이미지 경로를 제대로 지정했는지, 폴더명과 이미지명에 오타는 없는지 한번 확인해 보세요~ 파이썬 파일과 동일한 폴더내에 이미지 폴더를 위치시키면 실수를 줄일 수 있어요! 꼭 성공적으로 완성하시길 바라겠습니다!!
@@코드덤 jpg이미지를 컴퓨터에서 gif로 다시저장했을 때는 오류가 났지만 똑같은 jpg이미지 두장을 이어붙여서 gif로 만들어서 사용했더니 정상적으로 작동했습니다! 똑같은 .gif 이미지인데 어떤 차이점이 있는건가요??
ㅎㅎ 완성을 했는뎅 막 클릭하다 보니
오류 리포트
01. 동일한 카드를 연속으로 눌리면 점수가 계속올라가는것,
02. 이미 맞춘 카드 클릭후에 틀린그림과 누루게 되면 사라지는 현상
03. 성공후 여러번 다른곳 클릭하게 되면 성공 및 game over가 동일하게 노출되는 현상.. ㅠㅠ
실행을시키면 예외가 발생했습니다.IndexErrow X list index out of range라고 뜨는데 어떡하죠?
import turtle as t
import random
import time
def find_card(x,y):
min_idx=0
min_dis=100
for i in range(16):
distance=turtles[i].distance(x,y)
if distance
오타가 여러 군데 있습니다. find_card 함수 호출도 ind_card로 되어 있고, 이 밖에 오타가 여러 군데 있으니, 오타 및 대소문자 구분 꼼꼼히 하시면서, 천천히 처음부터 다시 만들어 보시는 것이 좋을 듯 합니다. 영상에서 중간 중간 테스트를 할 때 반드시 같이 테스트를 진행하셔야 합니다. 그 과정에서 오류가 발생할 경우 그 오류를 해결 하시고 다음으로 넘어가셔야 하세요. 그렇지 않으면 오류를 잡는데, 더 많은 시간을 소모하게 되실 거예요.
import turtle as t
import random
import time
def find_card(x,y):
min_idx = 0
min_dis = 100
for i in range(16):
distance = turtles[i].distance(x, y)
if distance < min_dis:
min_dis = distance
min_idx = i
return min_idx
def score_update(m):
score_pen.clear()
score_pen.write(f"{m} {score}점/{attempt}번 시도",False,"center",("",15))
def result(m):
t.goto(0,-60)
t.write(m, False, "center", ("",30,"bold"))
def play(x,y):
global click_num
global first_pick
global second_pick
global attempt
global score
if attempt == 12:
result("Game Over")
else:
click_num += 1
card_idx = find_card(x,y)
turtles[card_idx].shape(img_list[card_idx])
if click_num == 1:
first_pick = card_idx
elif click_num == 2:
second_pick == card_idx
click_num = 0
attempt += 1
if img_list[first_pick] == img_list[second_pick]:
score += 1
score_update("정답")
if score == 8:
result("성공")
else:
score_update("오답")
turtles[first_pick].shape(default_img)
turtles[second_pick].shape(default_img)
t.bgcolor("pink")
t.setup(700,700)
t.up()
t.ht()
t.goto(0,280)
t.write("Dessert Memory Game",False,"center",("",30,"bold"))
# 점수 펜 객체 생성
score_pen = t.Turtle()
score_pen.up()
score_pen.ht()
score_pen.goto(0,230)
#터틀 객체 생성
turtles = []
pos_x = [-210,-70,70,210]
pos_y = [-250,-110,30,170]
for x in range(4):
for y in range(4):
new_turtle = t.Turtle()
new_turtle.up()
new_turtle.color("pink")
new_turtle.speed(0)
new_turtle.goto(pos_x[x],pos_y[y])
turtles.append(new_turtle)
default_img = "images/default_img.gif"
t.addshape(default_img)
img_list = []
for i in range(8):
img = f"images/img{i}.gif"
t.addshape(img)
img_list.append(img)
img_list.append(img)
random.shuffle(img_list)
for i in range(16):
turtles[i].shape(img_list[i])
time.sleep(3)
for i in range(16):
turtles[i].shape(default_img)
click_num = 0 # 클릭 횟수 ( 매 2회 클릭마다 정답체크)
score = 0 #점수
attempt = 0 #시도한 횟수
first_pick = "" # 첫 번째 클릭한 이미지
second_pick = "" # 두 번째 클릭한 이미지
t.onscreenclick(play)
t.done()
뭐가 틀린건가요ㅠㅠㅠ
클릭해도 성공인지 안뜨고 틀렸을 때 다시 default 이미지로 변경이 안됩니다ㅠㅠ
play 함수내,
elif click_num == 2:
second_pick == card_idx (==이 아닌 =으로 바꿔야 해요.)
click_num = 0
attempt += 1
second_pick == card_idx 을 second_pick = card_idx 로 바꾸시면 되실 거예요~ 이런 실수는 쉽게 눈에 안 들어오죠^^ 이번엔 꼭 성공하길 바랄께요~ ^^
@@코드덤 감사합니다
import turtle as t
import random
import time
def find_card(x,y):
min_idx = 0
min_dis = 100
for i in range(16):
distance = turtles[i].distance(x, y)
if distance < min_dis:
min_dis = distance
min_idx = i
return min_idx
def score_update(m):
score_pen.clear()
score_pen.write(f"{m} {score}점/{attempt}번 시도",False,"center",("",15))
def result(m):
t.goto(0,-60)
t.write(m, False, "center", ("",30,"bold"))
def play(x,y):
global click_num
global first_pick
global second_pick
global attempt
global score
if attempt == 12:
result("Game Over")
else:
click_num += 1
card_idx = find_card(x,y)
turtles[card_idx].shape(img_list[card_idx])
if click_num == 1:
first_pick = card_idx
elif click_num == 2:
second_pick = card_idx
click_num = 0
attempt += 1
if img_list[first_pick] == img_list[second_pick]:
score += 1
score_update("정답")
if score == 8:
result("성공")
else:
score_update("오답")
turtles[first_pick].shape(default_img)
turtles[second_pick].shape(default_img)
t.bgcolor("pink")
t.setup(700,700)
t.up()
t.ht()
t.goto(0,280)
t.write("Dessert Memory Game",False,"center",("",30,"bold"))
score_pen = t.Turtle()
score_pen.up()
score_pen.ht()
score_pen.goto(0,230)
#터틀 객체 생성
turtles = []
pos_x = [-210,-70,70,210]
pos_y = [-250,-110,30,170]
for x in range(4):
for y in range(4):
new_turtle = t.Turtle()
new_turtle.up()
new_turtle.color("pink")
new_turtle.speed(0)
new_turtle.goto(pos_x[x],pos_y[y])
turtles.append(new_turtle)
default_img = "images/default_img.gif"
t.addshape(default_img)
img_list = []
for i in range(8):
img = f"images/img{i}.gif"
t.addshape(img)
img_list.append(img)
img_list.append(img)
random.shuffle(img_list)
for i in range(16):
turtles[i].shape(img_list[i])
time.sleep(3)
for i in range(16):
turtles[i].shape(default_img)
click_num = 0 # 클릭 횟수 ( 매 2회 클릭마다 정답체크)
score = 0 #점수
attempt = 0 #시도한 횟수
first_pick = "" # 첫 번째 클릭한 이미지
second_pick = "" # 두 번째 클릭한 이미지
t.onscreenclick(play)
t.done()
맥으로 하고있는데 사진이 안떠서요ㅠㅠ 이미지 경로가 잘못된건가요??