파이썬 게임 만들기 Creating a Python Game with pygame (한글자막)

Поделиться
HTML-код
  • Опубликовано: 24 сен 2024

Комментарии • 653

  • @suanlab
    @suanlab  5 лет назад +12

    한글 자막이 추가되었습니다. 자막과 함께 편하게 보실 수 있습니다. ^^

  • @junghoonan2389
    @junghoonan2389 3 года назад +2

    영상 보면서 옆에다 똑같이 타이핑은 해봤는데. 보면서 드는 생각이 원리를 모르고 베껴 쳤다간 백날쳐도 이해 못하겠네. 역시 프로그래머들은 다른 세상 사람들이군. 이라는 거에요. 좋은 강의 감사해요. 하지만 여기 댓글들 보니 대부분 원리 이해 없이 타이핑해서 오타 가지고 헤매고 있는거 같고. 저도 그래요. 뭘 먼저 하고 이걸 다시 보는게 좋을까요?. 하.. 이걸 진짜 외워서 하다니. 님은 정말 천재같은 사람이군요

    • @suanlab
      @suanlab  3 года назад +1

      그래서 쉽게 이해할 수 있도록 책을 쓰고 있습니다. ^^

  • @user-hk5dr1lu9d
    @user-hk5dr1lu9d 4 года назад +7

    와...파이썬 입문서 1회독하고 뭔가 실전적으로 만들어보고 싶었는데 덕분에 잘 완성했습니다 감사합니다~

  • @project-man
    @project-man 4 года назад +4

    16년도에 저희 학교에서 DB 강의하신분을 유튜브에서 뵙네요 ㅋㅋㅋ 감사합니다

    • @suanlab
      @suanlab  4 года назад +1

      안녕하세요. 인하대 졸업생 이시군요? ㅋㅋ

    • @project-man
      @project-man 4 года назад +2

      @@suanlab 아직 3학년입니다ㅠ ㅎㅎ 교수님 수업 들었을 때는 군대도 가기 전이라.. 하하 이렇게 랜선으로도 지식 전달 받을 수 있어서 기쁩니다. 감사힙니다 ^^ 구독과 좋아요로 보답하겠습니다 ㅋㅋㅋㅋ

    • @suanlab
      @suanlab  4 года назад +3

      인하대에 자주 있으니 오프라인으로도 봐요 ^^

  • @가을의영어성경읽기
    @가을의영어성경읽기 4 года назад +4

    점수가 높아질 때마다 파이썬으 색이 바뀌게 하고 싶다면
    파이썬 클래스의 eat함수를
    def eat(self):
    self.length += 1
    if self.length % 1 == 0:
    del BLACK[0:]
    BLACK.append(random.randrange(0, 256))
    BLACK.append(random.randrange(0, 256))
    BLACK_color.append(random.randrange(0, 256))
    return BLACK
    이렇게 바꾸고 앞에 BLACK = (0, 0, 0)을 BLACK[0, 0, 0]
    이렇게 튜플 형식에서 리스트 형식으로 바꾸면(괄호를 ( )에서 [ ]으로 바꿈)됩니다.

  • @eey5202
    @eey5202 3 года назад +2

    Traceback (most recent call last):
    File "C:\2020\1_leesooan\드디어 파이게임 설치됨!!.py", line 13, in
    window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGTH), 0, 32)
    NameError: name 'WINDOW_WIDTH' is not defined

    • @suanlab
      @suanlab  3 года назад

      코드 윗부분에 전역변수 선언시 오타가 있었나봐요.
      WINDOW_WIDTH 오타 확인해주세요

    • @eey5202
      @eey5202 3 года назад +1

      감사합니다

  • @bumang
    @bumang 5 лет назад +5

    컨텐츠 좀 더 올려주세요 기다리고 있습니다 이 채널 너무 유익해요 좀 있음 뜰듯..

    • @suanlab
      @suanlab  5 лет назад

      감사합니다. ^^
      제가 해외 나갔다가 오느라 컨텐츠가 늦었네요.
      곧 좋은 컨텐츠로 찾아뵙겠습니다. ^^

  • @박민하-k8t
    @박민하-k8t 3 года назад +2

    Traceback (most recent call last):
    File "C:/Users/RTL25/AppData/Local/Programs/Python/Python37/python game.py", line 116, in
    python.move()
    AttributeError: 'python' object has no attribute 'move'
    >>>
    python.move가 문제라는 것인가요?
    이거 뭐라고 고쳐야 실행이 되나요??

    • @suanlab
      @suanlab  3 года назад +1

      class Python 안에 def move를 정의해주셨나요??

  • @dev-playing-gt
    @dev-playing-gt 5 лет назад +2

    코드도 로직도 간단하게 잘 짜시고 잘 설명하시는 것 같아요.
    예전에 자바로 만들었었는데 파이썬 배우는 김에 슬쩍 보고있는데 옛날 생각나네요 ㅋㅋㅋ
    근데 남의 코드를 이렇게 자세히 보니 참 간결하게 잘 짜신다는 생각이 듭니다!

    • @suanlab
      @suanlab  5 лет назад

      감사합니다. 더 좋은 코드와 설명으로 발전하겠습니다. ^^

  • @가이아어
    @가이아어 4 года назад +4

    Warning (from warnings module):
    File "D:/코딩/파이썬게임1.py", line 68
    r = pygame.Rect((pos[0], pos[1]), (GRID_SIZE, GRID_SIZE))
    DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
    Traceback (most recent call last):
    File "D:/코딩/파이썬게임1.py", line 94, in
    pygmae.quit()
    NameError: name 'pygmae' is not defined
    이게 무슨오류에요?

    • @suanlab
      @suanlab  4 года назад +1

      pygmae이 아니라 pygame 입니다. ^^

    • @김현기-h6t
      @김현기-h6t 4 года назад

      와 오류 찾으려면 눈썰미가 상당해야하네

  • @dfjklol
    @dfjklol 3 года назад +3

    "pygame.key_set_repeat(1, 40)" 이 부분은 쓰지 마세요. (오류 안나면 쓰시고요)
    왜냐하면 "AttributeError: module 'pygame' has no attribute 'key_set_repeat'" 이런 오류가 발생할수 있기 때문입니다.

  • @Daineeworld
    @Daineeworld 4 года назад +2

    안녕하세요!! 좋은 강의 넘 잘보고있습니다. 따라 치는 것도 버거울 정도로 초보지만 하나하나 오류를 해결하며 완성해가는 작은 성취감이 좋은 것 같습니다.^^
    보여주신대로 잘 따라했고, 조금더 보완을 해보고 싶어서요.
    문제1) score라는 변수를 추가해서 먹이를 하나 먹을 때마다 100점씩 올리고 싶어서 score를 맨처음 0으로 설정한 후, check_eat이라는 함수 밑에 score += 100 이라고 했거든요. 화면상에 score 표시도 잘 되었지만, 먹이를 하나 먹고 나서 프로그램이 바로 종료가 되며,
    UnboundLocalError: local variable 'SCORE' referenced before assignment 가 나타났습니다. 이를 보완할 수 있는 방법이 무엇이있을 까요? 구글님께 물어보니 global 전역변수를 쓰라고 하네욥. 어느부분에 global을 정의해야할지도 잘 모르겠습니다 ㅠ
    문제2) 그리고 화면에 표시되는 length, speed 등을 한글로 바꾸려했더니, 한글은 인식을 못하더라고요. pygame에서 한글 지원이 안되는 건지? 어떤 해결방법이 있는지 궁금합니다.
    답글 미리 감사드리겠습니다 ♡

    • @suanlab
      @suanlab  4 года назад

      문제1은 변수가 정의되지 않았는데 사용해서 난겁니다. 즉, 점수를 위한 변수가 추가된거니 parameter로 넘겨서 사용해보세요. ^^
      문제2는 영어로 쓰시는게 어떠세요? 한글은 이것저것 문제가 있어서요. ^^

    • @Daineeworld
      @Daineeworld 4 года назад

      @@suanlab 넹 ~ 한번 해볼게요 ^^
      감사합니다

  • @kellylee451
    @kellylee451 3 года назад +2

    def move에서 if new in self.position[2:]:의 줄에서 콜론이 오류에요.... 똑같이 몇번이고 다시 했는데...

    • @_house6662
      @_house6662 3 года назад +1

      저도 그랬는데 바로 윗 줄에 괄호 숫자가 틀렸어요!!

  • @트퀀
    @트퀀 5 лет назад +2

    >> 해결법 좀 알려주세요!Traceback (most recent call last):
    File "E:/곽동건/111.py", line 127, in
    python.draw(surface)
    File "E:/곽동건/111.py", line 61, in draw
    draw_object(surface, self.color, p)
    File "E:/곽동건/111.py", line 77, in draw_object
    r = pygame.Rect(pos[0], pos[1], (GRID_SIZE, GRID_SIZE))
    TypeError: Argument must be rect style object

    • @suanlab
      @suanlab  5 лет назад +1

      타입이 문제네요. 변수 타입을 어떻게 사용했는지 살펴보세요. ^^

  • @가이아어
    @가이아어 4 года назад +3

    Warning (from warnings module):
    File "D:\코딩\파이썬게임1.py", line 71
    r = pygame.Rect((pos[0], pos[1]), (GRID_SIZE, GRID_SIZE))
    DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
    똑같이 했는데도 이런오류가 나요. 또 뱀이 화면 오른쪽 끝까지 안가요 ㅠㅠ

    • @suanlab
      @suanlab  4 года назад

      해당 warning은 GRID_SIZE가 실수형이라서 나는겁니다. 계산 부분에서 int()함수로 감싸주셔서 형변환을 해보세요.
      그리고 뱀이 오른쪽 끝까지 안가는건, WINDOW 크기에 따라 이동을 제한했는데, 그걸 잘못하신거 같아요. 예를 들어 move 쪽 함수에서 WINDOW_HEIGHT와 WINDOW_WIDTH를 바꿔쓰시거나 한것 아닐까요?

  • @이윤정-e9x5u
    @이윤정-e9x5u 3 года назад +1

    def control(self, xy):
    if (xy[0] * -1, xy[1] == self.direction:

    • @suanlab
      @suanlab  3 года назад

      빨간줄 부분에 괄호가 닫히지 않았네요.

    • @이윤정-e9x5u
      @이윤정-e9x5u 3 года назад

      @@suanlab import pygame
      import sys
      import time
      import random
      from pygame.locals import *
      WINDOW_WIDTH = 800
      WINDOW_HEIGHT = 600
      GRIDSIZE = 20
      GRID_WIDTH = WINDOW_WIDTH / GRIDSIZE
      GRID_HEIGHT = WINDOW_HEIGHT / GRIDSIZE
      WHITE = (255, 255, 255)
      GREEN = (0, 50, 0)
      ORANGE = (250, 150, 0)
      GRAY = (100, 100, 100)
      UP = (0, -1)
      DOWN = (0, 1)
      LEFT = (-1, 0)
      RIGHT = (1, 0)
      FPS = 10
      class Python(object):
      def __init__(self):
      self.create()
      self.color = GREEN
      def create(self):
      self.length = 2
      self.positions = [((WINDOW_WIDTH / 2), (WINDOW_HEIGHT / 2))]
      self.direction = random.choice([UP, DOWN, LEFT, RIGHT])
      def control(self, xy):
      if (xy[0] * -1, xy[1] * -1) == self.direction:
      return
      else:
      self.direction = xy
      def move(self):
      cur = self.positions[0]
      x, y = self.direction
      new = ((cur[0] + (x * GRIDSIZE)) % WINDOW_WIDTH), (cur[1] + (y * GRIDSIZE) % WINDOW_HEIGHT)
      if new in self.positions[2:]:
      self.create()
      else:
      self.positions.insert(0, new)
      if len(self.positions) > self.length:
      self.positions.pop()
      def eat(self):
      self.lenght += 1
      def draw(self, surface):
      for p in self.positions:
      draw_object(surface, self.color, p)
      class Feed(object):
      def __init__(self):
      self.positions = (0,0)
      self.color = ORANGE
      self.create()
      def create(self):
      self.position = (random.randint(0, GRID_WIDTH - 1) * GRIDSIZE, random.randint(0, GRID_HEIGHT -1) * GRIDSIZE)

      def draw(self, surface):
      draw_object(surface, self.color, self.position)

      def draw_object(surface, color, pos):
      r = pygame.Rect((pos[0], pos[1]), (GRIDSIZE, GRIDSIZE))
      pygame.draw.rect(surface, color, r)
      def check_eat(python, feed):
      if python.positions[0] == feed.position:
      python.eat()
      feed.create()
      def show_info(length, speed, surface):
      font = pygame.font.Font(None, 34)
      text = font.render("Length: "+" Speed:" + str(round(speed, 2)), 1, GRAY)
      pos = text.get_rect()
      pos.centerx = 150
      surface.blit(text, pos)




      if __name__ == '__main__':
      python = Python()
      feed = Feed()

      pygame.init()
      window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT), 0, 32)
      pygame.display.set_caption('snake_game')
      surface = pygame.Surface(window.get_size())
      surface = surface.convert()
      surface.fill(WHITE)
      clock = pygame.time.Clock()
      pygame.key.set_repeat(1, 40)
      window.blit(surface, (0, 0))
      while True:
      for event in pygame.event.get():
      if event.type == QUIT:
      pygame.quit()
      sys.exit()
      elif event.type == KEYDOWN:
      if event.key == K_UP:
      python.control(UP)
      elif event.key == K_DOWN:
      python.control(DOWN)
      elif event.key == K_LEFT:
      python.control(LEFT)
      elif event.key == K_RIGHT:
      python.control(RIGHT)

      surface.fill(WHITE)
      python.move()
      speed = FPS + (python.length)/2
      show_info(python.length, speed, surface)
      python.draw(surface)
      feed.draw(surface)
      window.blit(surface, (0, 0))
      pygame.display.flip()
      pygame.display.update()
      clock.tick(speed)
      이거 실행하면 검은 창만떠요

  • @revierjh7074
    @revierjh7074 2 года назад +1

    파이썬 게임을 만들고 싶어서 선생님 강의를 보고있는데 정말 유익했습니다!!
    (혹시 먹이 10개를 먹으면 게임 종료가 되는 코드도 알려주실 수 있나요...? 알려주심 감사하겠습니다!!)

    • @suanlab
      @suanlab  2 года назад

      아! 먹이 먹으면 점수와 몸 길이가 증가하는데, 그걸 이용해서 일정 점수 이상이면 게임 종료시키시면 됩니다.

  • @dsk9963
    @dsk9963 4 года назад +1

    혼자 실용적인 프로그램을 만들려면 어떤 방법으로 공부해야 할까요?? 이런 프로그램을 만들려면 뱀도 구현해야 하고 먹이를 먹으면 길이가 길어지는 것도 구현해야 하는데, 이런 기능이 필요할 것이다 라는걸 초보자 입장에서 떠올리가 쉽지가 않아서요.. Leetcode같은데서 혼자 알고리즘 문제 풀어보기는 하는데, 거기서 이런걸 배울 수 는 없는거 같고, 파이썬 모듈도 워낙 다양해서 이런 기능을 구현하기 위해 모듈의 어떤 기능을 써야겠다라고 떠올리는것도 어려운것 같아서 쉽지가 않네요..^^;; 좋은 동영상 감사드립니다!!

    • @suanlab
      @suanlab  4 года назад

      다양한 코드들을 따라하다보면 실력이 조금씩 늘어나실꺼예요. ^^

    • @dsk9963
      @dsk9963 4 года назад +1

      @@suanlab 일단 여러개 따라해보고 분석해 보는게 중요하군요 팁 감사합니다!

  • @user-oe8wp8hl9b
    @user-oe8wp8hl9b 3 года назад +1

    안녕하세요.. 거의 처음부분인 6:50 까지 따라서 하다가 오류가 발생하여 문의 드립니다.
    코드는 아래까지 작성하였고 툴은 VS code를 사용 중입니다. (PyCharm과 기본 Python 3.8도 설치되어 있습니다.)
    오류 메세지는 다음과 같습니다.
    Module 'pygame' has no 'init' member pylint(no-member)
    pygame은 vs code의 terminal에서 pip install pygame 으로 인스톨 하였고 아래의 경로에 해당폴더들(pygame, pygame-2.0.0.dist-info)이 있습니다.
    C:\Users\yespl\AppData\Local\Programs\Python\Python38\Lib\site-packages
    VS code에서 pygame을 불러올때 별도로 환경설정을 해 주어야 하는 부분이 있는지요?
    참고로 Python 3.8에서 실행해보면 정상적으로 잘 되며, VS code에서 실행시 위의 오류와 함께 검은 창이 잠시 떴다가 사라집니다.
    import pygame
    import sys
    import time
    import random
    from pygame.locals import *
    WINDOW_WIDTH = 800
    WINDOW_HEIGHT = 600
    WHITE = (255, 255, 255)
    if __name__ == '__main__':
    pygame.init()
    window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT), 0, 32)
    pygame.display.set_caption('Python Game')
    surface = pygame.Surface(window.get_size())
    surface = surface.convert()
    surface.fill(WHITE)
    clock = pygame.time.Clock()
    pygame.key.set_repeat(1, 40)
    window.blit(surface, (0, 0))
    VS code에서 자동오류 탐지는 6번째 줄의 "from" 과 14번째 줄의 "pygame"에 오류가 있다고 밑줄이 그어져 있습니다.
    VS code에서 별도의 환경설정을 해 주어야 하는것인지,,, 설치된 pygame 폴더들 (pygame, pygame-2.0.0.dist-info)을 VS code 쪽으로 옮겨야 하는 것인지...
    어떤 부분이 문제인지 확인 부탁 드려도 될까요?
    감사합니다.

    • @suanlab
      @suanlab  3 года назад

      VS 에서 사용되는 가상환경에 pygame을 설치해야 할것 같아요.

    • @user-oe8wp8hl9b
      @user-oe8wp8hl9b 3 года назад

      @@suanlab 해결 되었습니다. 답변 감사 드립니다.!

  • @방수컴퓨터
    @방수컴퓨터 4 года назад +1

    감사합니다 덕분에 공부가 되고 있습니다
    저는 2가지 질문 있는데 혹시 드려도 될지...
    1번... 게임은 되는데 게임 끄고 나서
    File "200607snakegame.py", line 83, in
    class Python:
    File "200607snakegame.py", line 102, in Python
    pygmae.quit()
    NameError: name 'pygmae' is not defined
    이 화면 이 나오는데 class Python 해줘도... 해결이 안되네요...
    2번... 클래스랑 definition 한거 대충은 영상보고 알아먹겠는데... 코드 한줄 한줄 까지는 이해가 안되는데... 계속 영상을 보는게 나을까요 아니면 다른거 계속 공부를 진행하면서 하다 보면 자연스럽게 알게 될까요?

    • @suanlab
      @suanlab  4 года назад

      아주 간단한 에러입니다. 영상 초반에 pygame 패키지 설치를 하는데, 그걸 빼먹으신거예요. ^^
      터미널에서 pip install pygame 해주시면 됩니다.

    • @방수컴퓨터
      @방수컴퓨터 4 года назад +1

      @@suanlab 감사합니다... 2번 질문도 있지만 감사합니다^^

    • @suanlab
      @suanlab  4 года назад

      아! 2번이 있군요. ㅋㅋㅋ
      코딩은 따라하면서 배우는 효과가 매우 크답니다.
      영상 보다가 보면 나중에 자연스럽게 알게 될겁니다.
      추후에 파이썬 기초부터 파이게임 기초까지 영상으로 올려드릴께요 ^^

    • @방수컴퓨터
      @방수컴퓨터 4 года назад

      @@suanlab 앗 2번까지 ㅋㅋ 감사합니다!.

  • @Jjimins
    @Jjimins 3 года назад +1

    방향키가 안 움직이는데 혹시 문제점을 찾아주실 수 있나요...?
    if __name__ == '__main__':
    python = Python()
    feed = Feed()
    pygame.init()
    window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT), 0, 32)
    pygame.display.set_caption('Python Game')
    surface = pygame.Surface(window.get_size())
    surface = surface.convert()
    surface.fill(WHITE)
    clock = pygame.time.Clock()
    pygame.key.set_repeat(1, 40)
    window.blit(surface, (0,0))
    while True:

    for event in pygame.event.get():
    if event.type == QUIT:
    pygame.quit()
    sys.exit()
    elif event.type == KEYDOWN:
    if event.key == K_UP:
    python.control(UP)
    elif event.key == K_DOWN:
    python.control(DOWN)
    elif event.key == K_LEFT:
    python.control(LEFT)
    elif event.key == K_RIGHT:
    python.control(RIGHT)
    surface.fill(WHITE)
    python.move()
    check_eat(python, feed)
    speed = (FPS + python.length)/2
    show_info(python.length, speed, surface)
    python.draw(surface)
    feed.draw(surface)
    window.blit(surface, (0,0))
    pygame.display.flip()
    pygame.display.update()
    clock.tick(speed)

    • @suanlab
      @suanlab  3 года назад

      Class Python에 있는 control 메서드에 문제가 있는것 같아요

    • @Jjimins
      @Jjimins 3 года назад +1

      @@suanlab 감사합니다 해결 되었어요~

    • @suanlab
      @suanlab  3 года назад

      해결되었군요 ^^

  • @비둘기러기-l6y
    @비둘기러기-l6y 4 года назад +2

    게임실행까지되는데 방향키를 누르면 에러가뜨면서 멈춰요 ㅠㅠ
    Warning (from warnings module):
    File "/Users/dlalsgur29/Desktop/game1.py", line 73
    r = pygame.Rect((pos[0], pos[1]), (GRID_SIZE, GRID_SIZE))
    DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
    Traceback (most recent call last):
    File "/Users/dlalsgur29/Desktop/game1.py", line 111, in
    python.control(LEFT)
    AttributeError: 'Python' object has no attribute 'control'

    • @suanlab
      @suanlab  4 года назад

      Class python 부분에 control 메소드가 있나요? 오타가 있을꺼 같아요.

    • @비둘기러기-l6y
      @비둘기러기-l6y 4 года назад

      @@suanlab def contorl(self, xy):
      if (xy[0] * -1, xy[1] * -1) == self.direction:
      return
      else:
      self.direction = xy

    • @비둘기러기-l6y
      @비둘기러기-l6y 4 года назад

      @@suanlab 여기에 오타가 잇는건가요 ㅠㅠ

    • @비둘기러기-l6y
      @비둘기러기-l6y 4 года назад

      @@suanlab control 부분에 오타가 있엇네요. 좋은강의 감사합니다

  • @wonsub7
    @wonsub7 5 лет назад +2

    파이썬을 공부하고 있는데 문법만 하다 포기를 몇번했는지....이런 강의 너무 좋습니다. 감사합니다....

    • @suanlab
      @suanlab  5 лет назад

      더 재미난 강의로 찾아갈께요 ^^

  • @대한민국인
    @대한민국인 Год назад

    댓글에 있을까 하여 찾다가 못 찾아서 여쭤 볼게 있습니다 ㅠㅠ 게임 구동 잘 되고 재밌게 잘 배웠습니다 좋은 코드 감사합니다 그런데 x y 좌표 보던 중에 궁금증이 생겨서 문의 드립니다 . x y 좌표로 UP 이면 (0, 1)로 알고 있었는데 구현 코드 보니 (0, -1)이라 궁금증이 생겨서.. 어떤 원리 인지 궁금합니다.. 물론 구동은 제대로 되어 더 궁금증이 생깁니다.. 제가 이거 짜고나서 아 반대로 움직이는 건가 했는데 제대로 움직여서 ... 구글링 실력이 미흡해서 한 시간 찾다가 포기 했습니다.. 답변 기다리겠습니다!!

  • @gonnioo1502
    @gonnioo1502 2 года назад +1

    안녕하세요. 혹시
    NameError: name 'pos' is not defined. Did you mean: 'pow'?
    이오류는 어떻게 고치면 될까요?ㅠㅠ

    • @suanlab
      @suanlab  2 года назад

      pos가 정의 안된 것 같아요. 혹시 오타 나신거 아닐까요?

  • @창창-s2n
    @창창-s2n 5 лет назад +1

    def draw_object(surface, color, pos):
    r = pygame.Rect((pos[0], pos[1]), (GRID_SIZE, GRID_SIZE))
    pygame.draw.rect(surface, color, r)
    이부분
    File "C:\Users\admin\Desktop\Python\d.py", line 73, in draw_object
    pygame.Rect((pos[0], pos[1]),(GRID_SIZE, GRID_SIZE))
    TypeError: 'float' object is not subscriptable
    이렇게 뜨는데 뭐가 문제일까요 도대체 모르겠네요..

    • @suanlab
      @suanlab  5 лет назад

      Rect 에 넣는 각 변수가 올바른지 한번 보셔야할것 같아요.

  • @김순자-t7b
    @김순자-t7b 4 года назад +1

    훌륭한 강의 너무 감사드립니다. 살면서 처음으로 프로그래밍을 따라해보니 감격스럽습니다.
    그런데, 이대로 만들어서, 파이썬 안에서는 실행도 잘 되는데, exe 파일로 만들려다보니, pyinstaller 를 사용해봤습니다. 파일은 만들어지는데, 오류가 납니다. (검은창이 떴다가 없어져버리는) 아무 옵션도 넣지 않고 만들었습니다.
    혹시 py -> exe 파일 만들기 설명해주실수 있을까요?

    • @suanlab
      @suanlab  4 года назад

      넵 ^^
      다음에는 exe 까지 만들께요. ^^

    • @김순자-t7b
      @김순자-t7b 4 года назад

      @@suanlab 감사합니다. 저같은 초보자들은, 프로그램을 만들어서, 누군가에게 자랑하고 싶은 소박한 욕심도 있는데요, exe파일 변환까지 성공해야 그게 가능하답니다. ^^;;

  • @hyunsungyouuu
    @hyunsungyouuu 3 года назад +1

    raceback (most recent call last):
    File "C:\Users\blour\Desktop\동아리.py", line 115, in
    python.move()
    File "C:\Users\blour\Desktop\동아리.py", line 42, in move
    cur = self.positions[0]
    AttributeError: 'Python' object has no attribute 'positions'
    어떤게 틀린거죠?

    • @suanlab
      @suanlab  3 года назад

      Python 클래스에 self.positions가 정의되어있나요?

  • @고경록-i6o
    @고경록-i6o 4 года назад +3

    저는 pygame 버전이 1.9.6 인것 같은데, 6:32 부분에서 저장후 Run이 계속 제대로 안되서 알아보니. pygame.key_set_repeat(1,40) 를 pygame.key.set_repeat(1,40)로 바꾸니 되네요.

    • @태웅윤-q2t
      @태웅윤-q2t 4 года назад +1

      어떻게 하셨나요? 자세히 알려주심 감사하겠습니다

    • @고경록-i6o
      @고경록-i6o 4 года назад +1

      @@태웅윤-q2t 아... 별다른건 없습니다. 그냥 key_set 부분을 key.set으로 고치니 되었어요^^

  • @잉잉-x2x6k
    @잉잉-x2x6k 5 лет назад +2

    Traceback (most recent call last):
    File "C:/Users/note/Desktop/파이게임.py", line 127, in
    python.draw(surface)
    AttributeError: 'Python' object has no attribute 'draw'
    >>>
    왜 그럴까요ㅠㅠ

    • @suanlab
      @suanlab  5 лет назад

      Python 클래스에 draw 매소드가 잘 정의되어있나요?

  • @mina-zs8gx
    @mina-zs8gx 3 года назад +1

    강의 감사드립니다. 지렁이 몸통이 움직이지 않는 것은 왜일까요?
    while True 부분은 다 따라한 것 같은데...
    어렵습니다.

    • @suanlab
      @suanlab  3 года назад

      move() 메소드 부분을 한번 살펴보실래요?

  • @혁12345
    @혁12345 3 года назад +1

    Traceback (most recent call last):
    File "C:\Users\my\Desktop\snake.py", line 121, in
    python.move()
    AttributeError: 'Python' object has no attribute 'move'
    형님 저렇게 뜨고 검은 화면밖에 뜨지 않습니다 살려주십사와요

    • @suanlab
      @suanlab  3 года назад

      class Python 안에 move() 메소드를 정의하신거 맞나요?

  • @metabaduk
    @metabaduk 4 года назад +1

    완성했어요!
    그런데 코드들 중에 이해를 못 한 게 많아서 그냥 배껴 쓴 것도 많은데 이렇게 코딩을 해도 실력이 늘까요?
    그리고 9:15 여기서 UP = (0, -1) 이면 y 축 좌표가 감소해서 아래로 가고, DOWN = (0, 1) 이면 y 축 좌표가 증가해서 위로 가지 않나요?

    • @아르케어학원-히브리
      @아르케어학원-히브리 4 года назад +1

      저도 완성했는데 뭔가 배껴서 쓴 느낌이 들어서 '이래도 실력이늘까?' 하고 걱정되요.

    • @suanlab
      @suanlab  4 года назад +1

      클론 코딩을 통해 자주 코딩을 접하시면 실력이 늘꺼예요.
      언어도 부모의 말을 따라하는것부터 배우잖아요. ^^

    • @suanlab
      @suanlab  4 года назад +1

      0,0 좌표가 중앙인 데카르트 좌표계가 기준이라고 생각하시면, 이해가 편하실꺼예요. 자신의 현재 좌표위치가 (0, 0)이고, y값 기준으로 위로는 음수, 아래는 양수를 가집니다.

    • @metabaduk
      @metabaduk 4 года назад

      @@suanlab 그렇군요.

  • @눙나-m5w
    @눙나-m5w 4 года назад +1

    Line 87, in
    surface = pygame.Surface(window.get_size()) NameError: name 'window' is not defined
    라고 뜨는데 뭐가 오류가 뜬지 모르겠어요.. 알려주실 수 있으신가요 ?

    • @suanlab
      @suanlab  4 года назад

      앞에서 윈도우 변수를 선언 안하신거 같아요.

  • @kevinhwang485
    @kevinhwang485 3 года назад +1

    class Fead(object):
    def __init__(self):
    self.position = (0, 0)
    self_color = ORANGE
    self.create()
    def create(self):
    self.positions = (random.randint(0, GRID_WIDTH - 1) * GRID_SIZE, random.randint(0, GRID_HEIGHT - 1)
    def draw(self, surface):
    draw_object(surface, self.color, self.position)
    이랬는데 샐행이 안되면서 3번째 def에서 오류나요ㅠㅠ 어떻게 해야 할까요?def만 표시되어 있어서 def를 복붙,다시쓰기 몇 번이나 했는데 그래도 오류가 떠요ㅠㅠ

    • @suanlab
      @suanlab  3 года назад

      두번째 def에 정의한 부분에 괄호가 안닫혔네요.

  • @haha9388
    @haha9388 3 года назад +1

    Traceback (most recent call last):
    File "C:\Users\user\Desktop\game.py", line 120, in
    check_eat(python, feed)
    NameError: name 'check_eat' is not defined
    어떻게 해결하나요?

    • @suanlab
      @suanlab  3 года назад

      혹시 check_eat 함수 정의 앞 부분에 들여쓰기 하신거 아닌가요?

  • @dfjklol
    @dfjklol 3 года назад +2

    Traceback (most recent call last):
    File "C:\Users\Mssren\AppData\Local\Programs\Python\Python37\지렁이 게임.py", line 25, in
    class Python(object):
    File "C:\Users\Mssren\AppData\Local\Programs\Python\Python37\지렁이 게임.py", line 59, in Python
    class Feed(object):
    File "C:\Users\Mssren\AppData\Local\Programs\Python\Python37\지렁이 게임.py", line 89, in Feed
    python = Python()
    NameError: name 'Python' is not defined
    이렇게 뜨는데 어떻게 하죠??

    • @suanlab
      @suanlab  3 года назад

      class Python 정의가 잘 안된거 같아요. 혹시 전체 코드 한번 보여주실래요?

    • @dfjklol
      @dfjklol 3 года назад

      ruclips.net/video/PoJUmSk8JWs/видео.html 이 영상에 모든것의 전체코드가 다 있습니다.

  • @김민혁-n6s
    @김민혁-n6s 3 года назад +1

    if new in self.positions[2:]: 이 부분에서 계속 invalid syntax가 뜨네요 ㅜㅜ positions도 class 안에 정의했어요

    • @suanlab
      @suanlab  3 года назад

      positions가 어떻게 정의되어 있나요?

  • @남김지훈-d4u
    @남김지훈-d4u 4 года назад +1

    Traceback (most recent call last):
    File "C:/전산언어학습/PBL 프로젝트/Ex01.py", line 100, in
    pygame.key_set_repeat(1,40)
    AttributeError: module 'pygame' has no attribute 'key_set_repeat'이렇게 뜨는데 뭐가 잘못된 걸까요? ㅜㅠ

    • @suanlab
      @suanlab  4 года назад +1

      pygame.key.set_repeat으로 해주셔야 해요. ^^

  • @healing486-music
    @healing486-music 4 года назад +1

    아래와 같이 feed쪽에 오류 나는데 무슨 의미인가요?
    PS C:\HelloCoding> python Python_Game.py
    pygame 1.9.6
    Hello from the pygame community. www.pygame.org/contribute.html
    Traceback (most recent call last):
    File "Python_Game.py", line 91, in
    feed = Feed()
    File "Python_Game.py", line 64, in __init__
    self.create()
    AttributeError: 'Feed' object has no attribute 'create'

    • @suanlab
      @suanlab  4 года назад

      class Feed 안에 create 메서드 안만드신거 같아요.

  • @hohoyas
    @hohoyas 5 лет назад +1

    한시간 걸렸지만 성공~ 역시 게임으로 배우는게 빠르네요

    • @suanlab
      @suanlab  5 лет назад

      게임이 프로그래밍 배우는데 아주 좋죠 ^^

  • @ilovepornhub7466
    @ilovepornhub7466 4 года назад +1

    Traceback (most recent call last):
    File "D:\민주호\지렁이키우기.py", line 88, in
    feed = Feed()
    File "D:\민주호\지렁이키우기.py", line 61, in __init__
    self.color = ORANGE
    NameError: name 'ORANGE' is not defined
    >>> 왜 이게 뜰까요?

    • @suanlab
      @suanlab  4 года назад

      코드 앞 부분에 ORANGE 전역변수 선언 안하셨어요?

  • @arche3927
    @arche3927 4 года назад +1

    완성했어요. 오류 없이 잘 작동돼요. 그런데 오타 친 부분도 없는데
    Warning (from warnings module):
    File "C:\Users\bitna\OneDrive\바탕 화면\유령의 집\Python Game.py", line 76
    r = pygame.Rect((pos[0], pos[1]), (GRIDSIZE, GRIDSIZE))
    DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
    이렇게 오류가 뜨네요. 왜 그런 걸까요?

    • @suanlab
      @suanlab  4 года назад +1

      이건 오류는 아니고 형변환때문에 발생한 warning 입니다.
      GRIDSIZE가 실수형이라서 int(GRIDSIZE)로 정수형 변환이 필요합니다. ^^

    • @arche3927
      @arche3927 4 года назад

      @@suanlab 그렇군요. 감사합니다.

  • @kennykim9046
    @kennykim9046 4 года назад +1

    재미있게 만들었습니다!! 그런데 질문이 있습니다
    def control 에서 self.direction = xy가 어떻게 작동되는 것인지 잘 모르겠어요.. 윗줄 까지가 방향 유지이고, python.direction = xy 이게 되어서 방향이 바뀐것인데 이해가 안가네요, 간단하게 설명해 주실수 있나요?

    • @suanlab
      @suanlab  4 года назад +1

      xy는 xy[0]과 xy[1]로 x축의 좌표값과 y의 좌표값이 들어가있답니다. 이 두 정보만 있으면 방향 조작이 가능하죠. ^^

    • @kennykim9046
      @kennykim9046 4 года назад +1

      @@suanlab UP일 때, UP 키가 눌려도 else에서 UP으로 유지되는 구조네요.. 코드만큼이나 이런 구조로 간단하게 제어 할 수 있는게 더 놀랍습니다! 참신해요

    • @suanlab
      @suanlab  4 года назад +1

      참신함을 알아보시다니 고수시네요. ^^

  • @madkiwi4856
    @madkiwi4856 5 лет назад +1

    오 더 재밌는 게임이 올라왔네요 이번주 목표는 이 게임!! ps. 저번 슈팅게임 정말 재밌게 했어요

    • @suanlab
      @suanlab  5 лет назад

      이번 게임은 더 쉽게 만드실 수 있을꺼예요 ^^

  • @민이라고해-g3n
    @민이라고해-g3n 3 года назад +1

    for event in pygame.event.get():
    if event.type == pygame.QUIT:
    sys.exit()
    이걸로 창닫기 하려고하는데 X를 누르면 응답없음으로 뜨고 한번에 닫히지않아요,,,ㅜㅜㅜ
    닫히지도 않고 다시 run해보려고해도 콘솔탭을 다시 시작하지않으면 창이 뜨지도 않습니다....
    다른 파일들은 정상적으로 실행이 됩니다..
    for event in pygame.event.get():
    if event.type == pygame.QUIT:
    pygame.exit()
    sys.exit()
    이렇게 하면 AttributeError: module 'pygame' has no attribute 'exit' 이런 오류가 뜹니다..
    '나의 첫 파이썬' 책에서 우주선게임을 따라한건데 저런 오류가 생겨요
    책에서 제공하는 홈페이지에서 아예 완성된 파일을 받았는데도 같이 오류가생깁니다
    아나콘다3 spyder 사용중인데 무슨 오류인지 도통 알수가없어요ㅜㅜ
    pygame은 잘 설치되어있어요
    제발 도와주세요,,,,,
    대학생을 구해주세요,,,

    • @suanlab
      @suanlab  3 года назад

      pygame.exit()이 아니라 pygame.quit() 입니다.

  • @빵빵빵
    @빵빵빵 3 года назад +1

    안녕하세요 이수안님 혹시 위 파이썬 버전과 파이게임 버전이 같아야 할수 있는건가요?(파이썬 입문자라 모르는게 많습니다)

    • @suanlab
      @suanlab  3 года назад

      현재 최신 버전과도 호환이 되고 있습니다.
      단지 float 타입의 암묵적 변환에 따라 warning이 발생할 수 있습니다.

    • @빵빵빵
      @빵빵빵 3 года назад +1

      @@suanlab 넵 감사합니다:)

  • @jaehooh7466
    @jaehooh7466 4 года назад +1

    안녕하세요 차근차근 따라하려고 하는데 시작부터 막히네요
    python 설치 후 CMD에서 "pip install pygame"치니까
    Exception:
    Traceback (most recent call last):
    File "c:\program files (x86)\python36-32\lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
    File "c:\program files (x86)\python36-32\lib\site-packages\pip\commands\install.py", line 342, in run
    prefix=options.prefix_path,
    File "c:\program files (x86)\python36-32\lib\site-packages\pip
    eq
    eq_set.py", line 784, in install
    **kwargs
    File "c:\program files (x86)\python36-32\lib\site-packages\pip
    eq
    eq_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
    File "c:\program files (x86)\python36-32\lib\site-packages\pip
    eq
    eq_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
    File "c:\program files (x86)\python36-32\lib\site-packages\pip\wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
    File "c:\program files (x86)\python36-32\lib\site-packages\pip\wheel.py", line 316, in clobber
    ensure_dir(destdir)
    File "c:\program files (x86)\python36-32\lib\site-packages\pip\utils\__init__.py", line 83, in ensure_dir
    os.makedirs(path)
    File "c:\program files (x86)\python36-32\lib\os.py", line 220, in makedirs
    mkdir(name, mode)
    PermissionError: [WinError 5] 액세스가 거부되었습니다: 'c:\\program files (x86)\\python36-32\\Lib\\site-packages\\pygame'
    You are using pip version 9.0.3, however version 20.0.2 is available.
    You should consider upgrading via the 'python -m pip install --upgrade pip' command.
    이라는 메세지가 뜹니다. 동영상처럼 설치되었다는 메세지가 뜨질 않네요
    내용이 길면 메일로 알려주시셔도 감사하겠습니다.
    jjaeho99@gmail.com

    • @suanlab
      @suanlab  4 года назад

      관리자 권한이 없어서 폴더 생성이 안되는것처럼 보이네요.

  • @정대웅-y2p
    @정대웅-y2p 4 года назад +1

    jupyter를 평소에 이용해서 jupyter에다가 해보았는데 pygame이 응답없음이 계속 뜨는데 왜 이러는지 알 수 있을까요..?
    그리고 27분 대까지 입력하고 실행을 해보니 'Python' object has no attribute 'position' 이런 문구가 뜨는데 이유가 뭔지 모르겠습니다.. 여전히 pygame은 실행이 안되고...

    • @suanlab
      @suanlab  4 года назад

      헛! Pygame은 jupyter에서 아마 안될꺼예요...

    • @suanlab
      @suanlab  4 года назад

      오류 자체는 class Python안에 self.position이 정의되지 않은것 같아요

  • @KJUN-mg1ne
    @KJUN-mg1ne 5 лет назад +1

    Traceback (most recent call last):
    File "C:\Users\Kim Hee Jun\Desktop\과제\뱀1.py", line 89, in
    python = Python()
    NameError: name 'Python' is not defined
    진짜 많으 부분의 오류를 고치고,,,,,,,이게 뜨네요,, 이 오류는 어떻게 교쳐야 되죠? 알려주세요ㅠㅠ 과제 해야되서요!

    • @suanlab
      @suanlab  5 лет назад

      class Python 이 정의되어 있나요?

  • @해미트리
    @해미트리 4 года назад +1

    저도 아랫분이랑 같은 오류가 나는데요 ㅠㅠ 뭐가 문제인지 모르겠네요...
    Traceback (most recent call last):
    File "C:\Users\Z54M\Desktop\파이썬 연습\pygame-1.py", line 120, in
    python.move()
    File "C:\Users\Z54M\Desktop\파이썬 연습\pygame-1.py", line 43, in move
    cur = self.positions[0]
    AttributeError: 'Python' object has no attribute 'positions'
    ...
    def move(self):
    cur = self.positions[0]
    x, y = self.direction
    new = (((cur[0] + (x * GRID_SIZE)) % WINDOW_WIDTH), (cur[1] + (y * GRID_SIZE)) % WINDOW_HEIGHT)
    if new in self.positions[2:]:
    self.create()
    else:
    self.positions.insert(0, new)
    if len(self.positions) > self.length:
    self.positions.pop()
    꼭 좀 알려주시면 감사하겠습니다 ㅠ

    • @suanlab
      @suanlab  4 года назад

      Python 객체 안에 속성으로 positions을 잘 정의하셨죠?

    • @해미트리
      @해미트리 4 года назад

      @@suanlab 네... 그런것 같은데요. 아무리 영상이랑 비교해봐도 뭐가 잘못되었는지 잘 모르겠습니다...
      버전이 20. 뭐였던거 같은데 그게 오류가 나는데에 영향이 있을까요?
      원하신다면 전문을 적어드리겠습니다.

  • @aasm648
    @aasm648 4 года назад +1

    File "C:\Users\Administrator\Desktop\파이썬게임.py", line 124, in
    show_info(python.length, speed, surface)
    File "C:\Users\Administrator\Desktop\파이썬게임.py", line 83, in show_info
    font = pygame.font.font(None, 34)
    AttributeError: module 'pygame.font' has no attribute 'font'
    또 뭐가 잘못된 걸까요?

    • @suanlab
      @suanlab  4 года назад

      pygame.font.Font로 해주셔야 해요. ^^

  • @hyungjinchoi-w3u
    @hyungjinchoi-w3u 5 лет назад +1

    게임도중 지렁이의 먹이가 사라지는경우는 어느부분을 수정해야 하는걸까요?
    유익한 동영상 올려 주셔서 감사합니다~~

    • @suanlab
      @suanlab  5 лет назад

      앗! Feed class에서 먹이에 대한 코드를 확인해보셔야 해요. ^^

  • @유광명-q6g
    @유광명-q6g 4 года назад +1

    Traceback (most recent call last):
    File "C:/Users/ygm23/OneDrive/바탕 화면/2013218093/python.py", line 125, in
    python.draw(surface)
    AttributeError: 'Python' object has no attribute 'draw'
    라고 뜹니다 ㅠㅠ 오타없이 타이핑했는데 왜그런거죠 ;;??ㅠ

    • @suanlab
      @suanlab  4 года назад

      class Python: 안에 메소드 draw(self): 잘 정의하셨나요?

  • @조르방아르마니
    @조르방아르마니 4 года назад +1

    Traceback (most recent call last):
    File "C:/Users/black/OneDrive/바탕 화면/python.py", line 15, in
    window = pygame.display.set.mode((WINDOW_WIDTH,WINDOW_HEIGHT), 0,32)
    AttributeError: module 'pygame.display' has no attribute 'set'
    이렇게 발생하고 실행화면이 발생되지 않는데 이유가 무엇인지 궁금합니다..

    • @suanlab
      @suanlab  4 года назад

      set_mode 아닌가요?

    • @조르방아르마니
      @조르방아르마니 4 года назад

      @@suanlab 일단 어째 저째 해서 작성을 했는데요..
      C:/Users/black/PycharmProjects/pygame1.py:74: DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.
      r = pygame.Rect((pos[0], pos[1]), (GRID_SIZE, GRID_SIZE))
      Traceback (most recent call last):
      File "C:/Users/black/PycharmProjects/pygame1.py", line 127, in
      feed.draw(surface)
      File "C:/Users/black/PycharmProjects/pygame1.py", line 71, in draw
      draw_object(surface, self.color, self.position)
      File "C:/Users/black/PycharmProjects/pygame1.py", line 74, in draw_object
      r = pygame.Rect((pos[0], pos[1]), (GRID_SIZE, GRID_SIZE))
      TypeError: 'int' object is not subscriptable
      이렇게 에러가 발생하는데요..
      뭐가 문제가 되는걸까요.

  • @서하준-d5o
    @서하준-d5o 3 года назад +1

    pip install pygame 을 입력해서 다운받으려고 하면 'pip'은 내부 또는 외부명령,실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라고뜨는데 어떻게 해야하나요

    • @suanlab
      @suanlab  3 года назад

      파이썬 설치할때 환경변수 등록이 안되었나보네요.
      환경변수로 등록해주세요.

  • @소진석-o9t
    @소진석-o9t 4 года назад +1

    좋은 영상 감사합니다😀
    만들어보니 아이템을 하나 추가해보면 좋겠다싶어 feed와 같은 방식으로 객체 생성 했는데, 게임은 정상적으로 작동하지만 아이템은 나타나지 않습니다..추가하려면 어떻게 하는게 좋을까요?

    • @suanlab
      @suanlab  4 года назад

      feed 객체가 언제 create되고 언제 draw되는지를 기존코드를 보고 분석해 보시면 좋을것 같아요.

  • @jantw5
    @jantw5 4 года назад +1

    File "C:\Users\jongk\AppData\Local\Programs\Python\Python38-32\lib\site-packages\pygame\locals.py", line 27, in
    from pygame.rect import Rect
    ModuleNotFoundError: No module named 'pygame.rect'
    라고 뜨는데 어떻게 해야되나요???

    • @suanlab
      @suanlab  4 года назад

      pygame.Rect 입니다. 앞에 대문자로 ㅋㅋㅋ

  • @주말만세
    @주말만세 5 лет назад +1

    처음 기본 설정까지만 했는데
    File "C:/Users/Luke Kim/Desktop/python/game.py", line 1, in
    import pygame
    ModuleNotFoundError: No module named 'pygame'
    이렇게 뜨는군요.... 어떻게 된걸까요?

    • @suanlab
      @suanlab  5 лет назад

      Pygame 모듈을 설치해주셔야해요. ^^
      pip install pygame

    • @주말만세
      @주말만세 5 лет назад +1

      어떻게 설치하죠?ㅠㅠ

    • @suanlab
      @suanlab  5 лет назад

      @@주말만세 command prompt 커맨드창 열고 pip install pygame 해주시면 됩니다. ^^

  • @dongmo8978
    @dongmo8978 4 года назад +1

    아래의 코드를 그대로 짰는데 expected an indedted block 오류가 뜹니다..ㅠㅠ class Feed (object): 이후에 뒤에 빨간 박스 오류뜨네요..ㅠㅠ
    class Feed(object):
    def __init__(self):
    self.position = (0,0)
    self.color = black
    self.create()
    def create(self):
    self.position = (random.randint(0, grid_width-1) * grid_size, random.randint(0,grid_height-1)*grid_size)
    def draw(self, surface):
    draw_object(surface, self.color, self.position)

    • @suanlab
      @suanlab  4 года назад

      class Feed(object): 라인 전에 어떻게 되어 있나요?

    • @dongmo8978
      @dongmo8978 4 года назад

      @@suanlab 라인 전에 오류가 있었네요!! 감사합니다!!

  • @sogufhf
    @sogufhf 4 года назад +1

    실행은 잘 되는데 이러고 자꾸 뭐가 떠요..
    File "C:\Users\user\Desktop\python.py", line 74
    r = pygame.Rect((pos[0], pos[1]), (GRID_SIZE, GRID_SIZE))
    DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using __int__ is deprecated, and may be removed in a future version of Python.

    • @suanlab
      @suanlab  4 года назад

      GRID_SIZE가 정수가 아니라 실수값이라 warning이 뜹니다. int() 로 형변환을 해주세요.

  • @boxplus8609
    @boxplus8609 3 года назад +1

    지렁이가 왼쪽 오른쪽으로 가려면 대각선으로 가고 위 아래는 아예 먹히지 않습니다.
    while True:
    이쪽은 오타가 없는거 같은데 왜이러는걸까요

    • @suanlab
      @suanlab  3 года назад

      혹시 move 메서드 내에서 사용되는 방향 정의를 한 부분에 오타가 있는거 같아요.

  • @워터제네레이션
    @워터제네레이션 3 года назад +1

    def control(self, xy):
    if (xy[0] * -1, xy[1] * -1 == self.direction:
    return
    여기서 잘못됐다고 하는데 뭐가 잘못됐는지 모르겠어요

    • @suanlab
      @suanlab  3 года назад

      괄호가 잘못된 것 같습니다.

  • @wonderl4nd391
    @wonderl4nd391 4 года назад +3

    좋은 영상 감사합니다.
    그런데 화면 끝에 가면 뱀이 죽게 하려면 어떻게 해야할까요?
    혼자서 해보는데 잘 안되요

    • @suanlab
      @suanlab  4 года назад

      move 메소드에서 position이 윈도우 크기를 벗어날 경우 죽게하면 됩니다. ^^

  • @기민한발놀림-u6z
    @기민한발놀림-u6z 5 лет назад +1

    File "D:\pythongame.py", line 111, in
    python.control(UP)
    File "D:\pythongame.py", line 37, in control
    if (xy[0] * -1, xy[1] * -1) == self.direction:
    TypeError: 'float' object is not subscriptable
    위방향키를 누르면 이렇게되요,.,

    • @suanlab
      @suanlab  5 лет назад

      단순한 타입 오류네요. ^^
      근처 코드를 다 한번 봐야겠네용

    • @기민한발놀림-u6z
      @기민한발놀림-u6z 5 лет назад +1

      @@suanlab 수십번을 봤는데... 빨리찾는법없나요??

    • @suanlab
      @suanlab  5 лет назад

      UP값 정의된 부분 한번 봐보셔용

  • @Omggggg12
    @Omggggg12 3 года назад +1

    'pip'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
    배치 파일이 아닙니다.
    파이게임 설치하려고 하는데 저렇게 뜨네요 ..

    • @suanlab
      @suanlab  3 года назад

      파이썬 처음 설치할때 환경 변수에 등록이 안된 것 같습니다.

  • @jongyul1412
    @jongyul1412 3 года назад +1

    AttributeError: module 'pygame.surface' has no attribute 'convert' 오류 가 뜨는데 어떻게 하나요?
    알려주세요

    • @suanlab
      @suanlab  3 года назад

      오류가 발생된 코드가 어떻게 되나요?

  • @브실골브금실력은골드
    @브실골브금실력은골드 2 года назад +1

    교수님 혹시 파이게임으로 RTS 같은건 구현해 볼 수 없을까요??ㅎㅎ

    • @suanlab
      @suanlab  2 года назад

      당연히 가능하죠 ^^

  • @고임-g1x
    @고임-g1x 5 лет назад +1

    Traceback (most recent call last):
    File "C:\Users\승일\Desktop\bamgame.py", line 83, in
    feed = Feed()
    File "C:\Users\승일\Desktop\bamgame.py", line 63, in __init__
    self.create()
    File "C:\Users\승일\Desktop\bamgame.py", line 66, in create
    self.position = (random,random(0, GRID_WIDTH -1) * GRID_SIZE, random.random(0, GRID_HEIGT -1) * GRID_SIZE)
    여기서 막히네요 ㅠㅠ 어떻게 해야하나요?

    • @suanlab
      @suanlab  5 лет назад

      GRID_HEIGHT 입니다. ㅋㅋㅋ

  • @쑤기-e8r
    @쑤기-e8r 4 года назад +1

    Traceback (most recent call last):
    File "C: ₩Users₩owner₩Desktop₩파이게임₩연습.py", line 122, in
    window.blit(suface, (0, 0))
    pygame.error: display Surface quit 라고 뜨는데 뭐가 잘못된건가요?

    • @suanlab
      @suanlab  4 года назад

      오타인거 같아요. suface가 아니라 surface 입니다.

  • @sol4rmy
    @sol4rmy 3 года назад +1

    raceback (most recent call last):
    File "C:/FBI/bbb.py", line 104, in
    elif event.key == KEYDOWN:
    AttributeError: 'Event' object has no attribute 'key' 뭐가 문제인건가요

    • @suanlab
      @suanlab  3 года назад

      event를 get으로 가져오는 부분을 어떻게 하셨어요?

    • @sol4rmy
      @sol4rmy 3 года назад +1

      for event in pygame.event.get():
      if event.type == QUIT:
      pygame.quit()
      sys.exit() 이부분 말씀하시는거 맞나요?

  • @에유잇
    @에유잇 3 года назад +1

    if new in self.positions[2:]: 코드의" : "부분에서 invalid syntax (, line 46)pylint(syntax-error) 에러가 떠요 ㅠㅠ

    • @suanlab
      @suanlab  3 года назад

      혹시 positions 부분에 정의를 어떻게 하셨어요?

  • @배성훈-f8l1c
    @배성훈-f8l1c 4 года назад +1

    check_eat(python, feed)
    NameError: name 'check_eat' is not defined
    라고떠요
    def check_eat(python, feed):
    if python.poitions[0] == feed.position:
    python.eat()
    feed.create()
    라고쳤는대..

    • @suanlab
      @suanlab  4 года назад

      혹시 check_eat 함수가 클래스 안에 들어가 있는것 아니가요?

    • @배성훈-f8l1c
      @배성훈-f8l1c 4 года назад

      @@suanlab 들어가면 안되요??

    • @배성훈-f8l1c
      @배성훈-f8l1c 4 года назад

      @@suanlab 소스파일보내드릴게요.

  • @thk1143
    @thk1143 3 года назад +1

    LEFT가 -1,0 인것은 이해가 되는데 UP이 0,-1인 이유가 이해가 잘 안됩니다. y좌표가 -1이면 보통 그래프에서 아래이지 않나요? ㅠㅠ

    • @김동건-u3s
      @김동건-u3s 3 года назад +2

      컴퓨터에서 는 x축과 y축은 우리가 수학에서 쓰는 것이 아니라 T 자 모양이라서 y축이 + 되면 밑으로 갑니다
      _________________________



    • @thk1143
      @thk1143 3 года назад +1

      @@김동건-u3s 질문드리고 나서 다른코딩들보면서 그런가보다 하고있었는데 명쾌히 답변주셔서 너무 감사드립니다

  • @트퀀
    @트퀀 5 лет назад +3

    invalid syntax 라고 뜨고 실행이 오류 떠요... def draw 밑에오는 pygame을 가르키는데 뭐가 문제인가요????

    • @suanlab
      @suanlab  5 лет назад

      콜론 : 기호를 붙이셨나요?

    • @팝콘15
      @팝콘15 4 года назад

      저는 붙여도 뜨고 안붙여도 떠요. ㅠ

  • @가을의영어성경읽기
    @가을의영어성경읽기 4 года назад +1

    게임의 재미를 위해 먹이 색을 랜덤으로 하려고 코드를 이렇게 수정했어요.
    class Feed(object):
    def __init__(self):
    self.position = (0, 0)
    self.color = (random.randrange(0, 256), random.randrange(0, 256), random.randrange(0, 256))
    self.create()
    그런데 파이썬이 먹이를 먹어서 먹이가 새로 생성될 때 먹이의 색이 안 바뀝니다. 게임을 종료했다가 다시 시작하면 색이 바뀌는데 그게 아니면 색이 안 바뀌는데 왜 그런 건가요?

    • @가을의영어성경읽기
      @가을의영어성경읽기 4 года назад +1

      아 해결했어요. 튜플 형식의 RGB를 리스트 형식으로 바꾸고 어쩌고 저쩌고 하면 되네요.

    • @suanlab
      @suanlab  4 года назад +1

      init은 Feed 처음 생성때만 호출되니깐, create 메서드 안에서 랜덤하게 바꿔주셔야죠 ^^

  • @빅토르희
    @빅토르희 4 года назад +1

    line 119, in
    check_eat(python, feed)
    NameError: name 'check_eat' is not defined
    이런 오류가 뜹니다 어떻게 해야하나요?

    • @suanlab
      @suanlab  4 года назад +1

      지금 check_eat 함수는 클래스 안이 아니라 밖에 있어야합니다. 들여쓰기를 하셔서 외부에서 못찾는거 같아요. 혹은 오타?

    • @빅토르희
      @빅토르희 4 года назад

      @@suanlab 바깥에다가도 입력했거든요 그래도 안되서요

  • @대오각성-i2d
    @대오각성-i2d 4 года назад +1

    뒷북입니다만, 완료했습니다.ㅠㅠ 교수님이 보여주신 오류는 하나도 안나오고 기상천외한 에러들이 나와 고생했어요..ㅎㅎ
    괄호 하나, 오타 하나에 완전 갈리네요;;;
    덕분에 공부가 되었습니다. 감사합니다!

    • @suanlab
      @suanlab  4 года назад

      오! 완성하셨군요. ^^
      고생하신것, 공부하신것은 절대 배신하지 않아요. ^^

  • @해리의일상
    @해리의일상 4 года назад +1

    구독자입니다 혹시 파이썬에 값의 위치가 달라지면 문제가 생길 수도 있나요? 예를 들면 백그라운드보다 먼저 캐릭터 설정을 한다던가요

    • @suanlab
      @suanlab  4 года назад

      네, 화면을 그리는 순서가 달라지면 문제가 생길수도 있습니다.

    • @해리의일상
      @해리의일상 4 года назад +1

      @@suanlab 그 순서도 배워야하는건가요?

    • @suanlab
      @suanlab  4 года назад

      그림을 그릴때 배경색을 칠하고, 그 위에 어떤 사물을 그리고 하잖아요? 그런 개념으로 순서를 이해하시면 됩니다. ^^

  • @sick7338
    @sick7338 4 года назад +1

    pygame.display.set_caption("Python Game")이 부분이 문장 에러가 났어요.
    IndentationError: unindent does not match any outer indentation level

    • @suanlab
      @suanlab  4 года назад +1

      들여쓰기가 안되서 잘못되서 난 에러입니다. 들여쓰기를 일관성있게 해주셔야해요. ^^

  • @yummyenglish6901
    @yummyenglish6901 3 года назад +1

    화면이 나타났다가 바로 사라지는데...
    뭘 어떻게 해야 하나요???
    실행되서 나온 화면이 멈춰 있어야 하는데...
    바로 사라져버리네요... ㅡ.ㅜ

    • @suanlab
      @suanlab  3 года назад

      게임 화면 표시를 위한 반복문 쪽에서 들어쓰기가 잘못된거 같아요.

  • @onthe7211
    @onthe7211 5 лет назад +1

    line 62, in __init__
    self.color = ORANGE
    NameError: name 'ORANGE' is not defined
    line 89, in
    feed = Feed()
    이렇게 오류가 나오는데 어떻게 해결해야 하나요?

    • @suanlab
      @suanlab  5 лет назад +1

      ORANGE 변수가 선언되지 않았네요.
      오타일수 있습니다.

    • @onthe7211
      @onthe7211 5 лет назад

      @@suanlab 답장이 늦어서 죄송합니다.^^ ! 아직 초보라 잘 모르는데, 영상 보며 배우고 있습니다. 감사합니다.~~

  • @Ban-a09
    @Ban-a09 3 года назад +1

    처음으로 저장할때 저장하고 F5눌렀는데 에러가 났다고 뜨네요 ㅜㅜ 어떡해야 할까요??
    surface = surface.convert() 요 부분에서 s가 뭐 어떻게 된다고 나와요 ㅜㅜ

    • @suanlab
      @suanlab  3 года назад

      오류메시지를 다 보여주실 수 있을까요?

  • @서도-l1i
    @서도-l1i 4 года назад

    좋은 강의 감사합니다. 그런데 IDLE 에서는 잘 작동되는 코드가 비쥬얼 스튜디오 코드 에 입력하게 되면 오류가 발생하게 됩니다.
    /1번게임.py
    pygame 1.9.6
    Hello from the pygame community. www.pygame.org/contribute.html
    Traceback (most recent call last):
    File "c:/Users/tjehg/Desktop/파이썬/게임/1번게임.py", line 23, in
    surface.file(WHITE)
    AttributeError: 'pygame.Surface' object has no attribute 'file'
    PS C:\Users\tjehg\Desktop\파이썬>
    혹시 뭐가 문제인 지 알 수 있을까요?

    • @suanlab
      @suanlab  4 года назад

      fill로 입력해주셔야해요. ^^

  • @deo1981
    @deo1981 4 года назад +1

    안녕하세요
    다름이 아니라 창이 실행되자마자 닫혀서요.. 아직 window.blit(surface, (0, 0))까지 한 상태에요..
    아직 어떻게 할 지 명령해주지 않아서 그런건가요?

    • @suanlab
      @suanlab  4 года назад

      네, pygame 종료되면서 꺼지나보네요. ^^

    • @deo1981
      @deo1981 4 года назад +1

      @@suanlab 감사합니다^^

  • @binirinimombinirinimom
    @binirinimombinirinimom 4 года назад +1

    Traceback (most recent call last):
    File "C:/Users/Administrator/Desktop/pygame.py", line 1, in
    import pygame
    File "C:/Users/Administrator/Desktop\pygame.py", line 6, in
    from pygame.locals import *
    ModuleNotFoundError: No module named 'pygame.locals'; 'pygame' is not a package
    pygame도 제대로 설치했는데 자꾸 이렇게 떠요

    • @suanlab
      @suanlab  4 года назад

      아무래도 파이썬이 여러 버전이 설치되어서 다른 곳에 pygame이 설치된 것일수 있답니다.

  • @audgml5381
    @audgml5381 4 года назад +1

    surface = surface.convert()
    NameError : name ‘surface’ is not defined 라고 계속 검정창만 떠요.....

    • @suanlab
      @suanlab  4 года назад

      surface = pygame.Surface(window.get_size())
      surface = surface.convert()
      위에 surface 변수를 잘 정의 해주셔야 해요.

  • @곽래호-y9q
    @곽래호-y9q 4 года назад +1

    if __name__ == '__main__':
    python = Python()
    feed = Feed()
    이렇게 첬더니unindent does not match any outer indentation level 이라고 떠여

    • @suanlab
      @suanlab  4 года назад

      파이썬은 탭으로 간격을 딱 맞추어서 띄어주셔야해요. ^^

  • @Kim.s_SOX
    @Kim.s_SOX 5 лет назад +1

    Traceback (most recent call last):
    File "C:\Users\didtm\Documents\python\Monty python.py", line 125, in
    python.draw(surface)
    File "C:\Users\didtm\Documents\python\Monty python.py", line 58, in draw
    draw_object(surface, self.color, p)
    File "C:\Users\didtm\Documents\python\Monty python.py", line 75, in draw_object
    r = pygame.rect((pos[0], pos[1]), (GRID_SIZE, GRID_SIZE))
    TypeError: 'module' object is not callable
    이런 오류가 뜹니다.

    • @suanlab
      @suanlab  5 лет назад

      대소문자 구분이 안된거 같아요.

  • @프로젝트하로나
    @프로젝트하로나 4 года назад +1

    Traceback (most recent call last):
    File "C:\Users\김범준\Documents\파이썬으로 공부한 것들\pygame.py", line 1, in
    import pygame
    File "C:\Users\김범준\Documents\파이썬으로 공부한 것들\pygame.py", line 6, in
    from pygame.locals import *
    ModuleNotFoundError: No module named 'pygame.locals'; 'pygame' is not a package
    실행할려고하니 이렇게 나오는데 여기서 부터 어떻게 하죠?

    • @suanlab
      @suanlab  4 года назад

      혹시 pip install pygame 명령어를 통해서 패키지를 설치 하셨나요?

    • @프로젝트하로나
      @프로젝트하로나 4 года назад

      @@suanlab 했는데 No name 'locals' in module 'pygame' 라고 하면서 인식을 못하는것 같아요

  • @ruby338-j3h
    @ruby338-j3h 4 года назад +1

    지렁이가 게임 시작하면 아래로 가고 위 방향키를 눌러도 위로 가지를 않네요 그리고 왼쪽을 바라보고 있는 상황에서 오른쪽키를 누르면 오른쪽으로 안가요 반대로 못가는 상황인데 무슨 오류죠 ? ㅠㅠㅠ

    • @ruby338-j3h
      @ruby338-j3h 4 года назад +1

      아 해결 했는데 게임 실행했을때 왼쪽위에 speed length 가 안뜨네요

    • @suanlab
      @suanlab  4 года назад

      텍스트로 speed length 보여주는 함수른 작성하는 부분이 영상 뒷부분에 있는데... 따라하셨나요??

  • @박제민-p8c
    @박제민-p8c 3 года назад +1

    처음에 셀이랑 검은 화면을 실수로 지웠는데 그 다음부터는 셀은 나오는데 빨간 글은 안나오고 검은 화면도 안나와요 어떻게하죠…

    • @suanlab
      @suanlab  3 года назад

      아? 어디 부분인가요?

  • @uza0606
    @uza0606 4 года назад +1

    Google collab 에서 실행시 No available video device 에러가 납니다. 코렙에서는 pygame는 안되는지요?

    • @suanlab
      @suanlab  4 года назад

      네... colab은 안되요ㅠ

  • @뛰어라박배성
    @뛰어라박배성 4 года назад +1

    저는 오류에 python.draw(surface) AttributeError: ‘Python’ object has no attribute ‘draw’ 라고 자꾸 오류가 나는데 어떻게해야 할까요?ㅠㅠ

    • @suanlab
      @suanlab  4 года назад

      class Python 안에 draw 메소드가 있어야하는데, 오타가 있나봐요

  • @idk-ft6lx
    @idk-ft6lx 4 года назад +1

    Traceback (most recent call last):
    File "C:/Users/user/Desktop/마지막버전.py", line 83, in
    python = Python()
    File "C:/Users/user/Desktop/마지막버전.py", line 28, in __init__
    self.create()
    AttributeError: 'Python' object has no attribute 'create' 라고뜨는데 뭐가 문제인건가용?

    • @suanlab
      @suanlab  4 года назад

      class Python 안에 create 메서드가 정의되지 않아서 나는 에러입니다.

    • @idk-ft6lx
      @idk-ft6lx 4 года назад +1

      @@suanlab 어떻게 정의시켜야 하는지 모르겠어요

    • @suanlab
      @suanlab  4 года назад

      class Python:
      클래스 안에
      def create(self):

  • @승준이어깨
    @승준이어깨 4 года назад +1

    안녕하세요 3시간 동안 따라해서 수정하고 해서 만들었는데 막상 들어가보니 python이 feed에 데여도 feed위치가 바뀌지 않고 그대로 입니다 혹시 이유를 알수있을까요....?

    • @suanlab
      @suanlab  4 года назад

      먹이를 먹어도 위치가 그대로 인거죠? 그럼 Feed 생성하는 부분의 코드가 랜덤하게 잘안되어있나봐요.

    • @승준이어깨
      @승준이어깨 4 года назад

      @@suanlab 앗 혹시 나중에 코드를 보내면 봐주실수있나요...?

  • @readingtime321
    @readingtime321 3 года назад +1

    줄 83, pygame.init() 할때 unindent does not match any other insentation level 이라 뜨는데 해결방법 알려주세요

    • @suanlab
      @suanlab  3 года назад

      이건 들여쓰기를 잘못하셔서 나는 오류입니다.

  • @김소라-n5i
    @김소라-n5i 5 лет назад +1

    Traceback (most recent call last):
    File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\snake1.py", line 10, in
    GRID_WIDTH = WINDOW_WIDTH / GRIDSIZE
    NameError: name 'GRIDSIZE' is not defined
    이게뜨면 뭐가 문제인가요?

    • @suanlab
      @suanlab  5 лет назад

      GRID_SIZE 아닌가요? ^^

    • @김소라-n5i
      @김소라-n5i 5 лет назад

      @@suanlab 잠수타서 죄송합니다.
      그건 해결 했습니다. 감사합니다.그런데 이번엔 이게 떳어요ㅠㅠ
      Traceback (most recent call last):
      File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\snake1.py", line 88, in
      python = Python()
      File "C:\Users\User\AppData\Local\Programs\Python\Python37-32\snake1.py", line 27, in __init__
      self,create()
      NameError: name 'create' is not defined

  • @증거제출
    @증거제출 4 года назад +2

    훌륭한 강의 잘 봤어요 ~~~

  • @방기영-g5y
    @방기영-g5y 4 года назад +1

    ㅠㅠ오류가 나는데 어떡하죠?
    line 86, in
    python = Python()
    NameError: name 'Python' is not defined라고 뜨고 켜지지가 않아요ㅠㅠ영상을 몇번이나 다시돌렸는데도 코드랑 같고 오타인지 확인하려고 복사 붙여넣기를 몇번을 했는데도 안되네요ㅠㅠ 왜이러는걸까요?

    • @suanlab
      @suanlab  4 года назад

      class Python: 이렇게 클래스 정의를 해주셨나요?

    • @방기영-g5y
      @방기영-g5y 4 года назад +1

      @@suanlab 아 그런게 있었나요?감사합니다~수정할게요