> For the complete documentation index, see [llms.txt](https://docs.cooku222.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cooku222.kr/project-remind/actions/undefined-1/2025-1.md).

# \[봉사활동] / \[회고록] 2025년 1학기 대지중학교 파이썬 코드 클럽 봉사활동

2025년 4월 - 2025년 5월 토요일마다 디스코드로 진행되었습니다.&#x20;

<figure><img src="https://blog.kakaocdn.net/dna/bwQYBT/btsOsdjkXyV/AAAAAAAAAAAAAAAAAAAAAEGu5AZ7Z9L-zNNcOCei4_R-Z3Iv5JGunGjvCB_I9l7c/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=ZAM4CAsyO7Q6YHHIYewG6YLXLFE%3D" alt="" height="693" width="1516"><figcaption></figcaption></figure>

커리큘럼은 이렇게 진행 되었고, 학생들을 6분반으로 3명씩 배정하였고, 나는 5반을 맡게 되었다.\
1교시는 6명이서 돌아가면서 맡고 2교시는 각자 분반에서 1교시에서의 내용으로 실습을 주도했다. 나는 학생들이 막히는 부분 위주로 질문받고 실습을 진행하였는데, 온라인으로 진행하는거라 접속 로딩, 끊김 등등 불편한 점이 많았다. 나중에 개선된다면 오프라인으로 진행하면 좋겠다는 의견이 있다. 학생들이 실제로 알고 코딩을 하는 건지 그냥 보고만 있는건지 확인하기 어려웠다..

그리고 나는 자체적으로 우리반 단톡방을 파두었다. 혹시 안내사항 있거나 불참자 있으면 확인하기 위해서 팀 채팅으로 관리를 해주었다. 프로젝트 제출용으로 쓰기도 했다.&#x20;

<figure><img src="https://blog.kakaocdn.net/dna/rYCoM/btsOryoivFa/AAAAAAAAAAAAAAAAAAAAALXS7kBigv6zeHRAJKx-FSwF7nuPMbx2a6wzJM1-GQaB/img.jpg?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=5tmR3erXesODtV6agpirioMln8M%3D" alt="" height="192" width="1170"><figcaption></figcaption></figure>

다른 분반에게 물어보니까 퀴즈를 내는 식으로 이끌기도 한다고 했다..!\
그리고 5주차 1교시 진행을 내가 맡게 되었고, 내용은 turtle 모듈과 python idle 설치로 구성하였다. \
상대적으로 브라우저 환경이 익숙할 학생들을 고려해 colab에서 python 실습을 진행하였다.

<figure><img src="https://blog.kakaocdn.net/dna/nQTnD/btsOsT5sNaf/AAAAAAAAAAAAAAAAAAAAAEQAcbFouPDEQvvs2-Ek4bkToV9agJySZPaRs8kTrJea/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=lfCYdHNjb%2BKM2KMREqNQ4LbOuGQ%3D" alt="" height="567" width="1026"><figcaption></figcaption></figure>

내가 맡은 5주차 기준으로 지난 시간 복습에서는 1주차-4주차 내용(함수, 변수의 유효범위, 키워드 매개변수, 리스트 자료형 등등)을 다시 훑어주었다.&#x20;

<figure><img src="https://blog.kakaocdn.net/dna/msqlE/btsOrY0LQVe/AAAAAAAAAAAAAAAAAAAAAHz1tkL3x4hVdA-SKqk2o99N5lBX-Qs4LBGlR-MLLHur/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=Jbh2CuzqglHNnQirLBMY69%2FDFb4%3D" alt="" height="145" width="1747"><figcaption></figcaption></figure>

<figure><img src="https://blog.kakaocdn.net/dna/YPCwh/btsOr4Uemlk/AAAAAAAAAAAAAAAAAAAAAJSfC27AjDxf1EqzI1Da4cEmBWBN7gVXMYC5ttRNh_-2/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=R58t1cmpw97r5HBN2Ugs93bFrpo%3D" alt="" height="608" width="1028"><figcaption></figcaption></figure>

봉사활동을 같이 진행한 학우분들과 논의해서 프로젝트 주제를 미사일 피하기 게임, 대포 쏘기 게임, 핑퐁 게임 이렇게 세 개로 정했다.&#x20;

<figure><img src="https://blog.kakaocdn.net/dna/bzWPsn/btsOryn48Ih/AAAAAAAAAAAAAAAAAAAAAKdr2a-Fvr4A4vwBC1CWut-WuL8CRHBAJTE8qOVvVI9B/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=S5FftQklCji%2FyjlnaxQs2qeVweQ%3D" alt="" height="102" width="1132"><figcaption></figcaption></figure>

터틀 모듈의 기본 문법을 설명하고 프로젝트 주제를 선정해서 발표했다.\
우리 분반은 핑퐁 게임으로 구성했는데,&#x20;

```
import turtle as t
import time

def right():
    if player.xcor() < 200:
        player.forward(15)

def left():
    if player.xcor() > -200:
        player.backward(15)
    
t.bgcolor("black")
t.setup(500,700)

player = t.Turtle()
player.shape("square")
player.shapesize(1, 5)
player.up()
player.color("white")
player.speed(0)
player.goto(0, -270)

ball = t.Turtle()
ball.shape("circle")
ball.up()
ball.shapesize(1.5)
ball.speed(0)
ball.color("white")

t.listen()
t.onkeypress(right, "Right")
t.onkeypress(left, "Left")

ball_xspeed = 5
ball_yspeed = 5

game_on = True
life = 1
score = 0

t.up()
t.ht()
t.goto(0, 300)
t.color("white")
t.write(f"SCORE : {score}", False, "center", ("", 30))

while game_on:
    new_x = ball.xcor() + ball_xspeed
    new_y = ball.ycor() + ball_yspeed
    ball.goto(new_x, new_y)

    if ball.xcor() > 240 or ball.xcor() < -240:
       ball_xspeed *= -1

    if ball.ycor() > 340:
        ball_yspeed *= -1
       
    if ball.ycor() < -340:
        life -= 1
        
        time.sleep(1)
        ball.goto(0, 100)
        ball_xspeed *= -1
        ball_yspeed *= -1
       
        if life == 0:
            game_on = False
            t.goto(0,0)
        t.write("GAME OVER", False, "center", ("", 30))
        time.sleep(3)
        
    if player.distance(ball) < 50 and -260 < ball.ycor() < -245:
        score += 1
        t.clear()
        t.write(f"SCORE : {score}", False, "center", ("", 30))
        ball_yspeed *= -1
```

-> 임모군의 핑퐁 게임

<figure><img src="https://blog.kakaocdn.net/dna/dxeIdT/btsOsmAji8n/AAAAAAAAAAAAAAAAAAAAAM5ZBPcWDwGokVnXr1zh6gnbze4lSonTRgg8uAdZsCfC/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=FphH0820YlI1f7IYRnKXluXC8Z0%3D" alt="" height="907" width="620"><figcaption><p>임모군이 구현한 핑퐁 게임(숫자판이 뜨고 속도가 빠른편)</p></figcaption></figure>

```
import turtle as t
import random
import time

# 설정
t.bgcolor("white")
t.setup(500, 700)

# 플레이어 설정
player = t.Turtle()
player.shape("square")
player.shapesize(1, 5)
player.penup()
player.speed(0)
player.goto(0, -270)

# 이동 함수
def right():
    if player.xcor() < 200:
        player.forward(20)

def left():
    if player.xcor() > -200:
        player.backward(20)

# 키 입력 등록
t.listen()
t.onkeypress(right, "Right")
t.onkeypress(left, "Left")

# 공 설정
ball = t.Turtle()
ball.shape("circle")
ball.shapesize(1.3)
ball.penup()
ball.speed(0)
ball.color("black")
ball.goto(0, 0)

# 공 속도
ball_xspeed = 3
ball_yspeed = 3

# 게임 루프
game_on = True
while game_on:
    t.update()
    time.sleep(0.01)

    new_x = ball.xcor() + ball_xspeed
    new_y = ball.ycor() + ball_yspeed
    ball.goto(new_x, new_y)

    # 벽 반사
    if ball.xcor() > 240 or ball.xcor() < -240:
        ball_xspeed *= -1

    if ball.ycor() > 340:
        ball_yspeed *= -1

    # 플레이어에 닿으면 반사
    if (ball.ycor() < -250 and
        player.xcor() - 50 < ball.xcor() < player.xcor() + 50):
        ball_yspeed *= -1

    # 바닥에 떨어지면 종료
    if ball.ycor() < -340:
        game_on = False
        print("Game Over")

# 종료를 위한 대기
t.done()
```

-> 임모양의 핑퐁 게임

<figure><img src="https://blog.kakaocdn.net/dna/cCyYn8/btsOrpq4eZm/AAAAAAAAAAAAAAAAAAAAACMjuS076RvoyAnO483jRd0iQgXExM-T8BR0UsoUslfR/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&#x26;expires=1782831599&#x26;allow_ip=&#x26;allow_referer=&#x26;signature=3SmJm8uRfy%2BCi36FSKAzEZdtM%2BQ%3D" alt="" height="907" width="623"><figcaption><p>임모양의 핑퐁 게임(속도가 느리고, 점수판이 뜨지 않는다. 미세하지만 공이 버퍼링이 걸리기도 한다. 그럼에도 불구하고 구현 자체는 잘 되었다)</p></figcaption></figure>

&#x20;

```
import turtle as t
import random
import time

def right():
    if player.xcor() < 200:
        player.forward(10)
def left():
    if player.xcor() > -200:
        player.backward(10)

        
        
t.bgcolor("red")
t.setup(500, 700)



#player
player = t.Turtle()
player.shap("square")
player.shape(1, 5)
player.up()
player.speed(0)
player.goto(0. -270)


# ball
ball = t.Turtl()
ball.shape("circle")
ball.shapesize(1.3)
ball.up()
ball.speed(0)
ball.color("white")


t.listen()
t.onkeypress(right, "Right")
t.onkeypress(left, "Left")
```

-> 이모군의 핑퐁 게임\
-> 구현이 제대로 되지 않아 실행할 수 없었다..!\
&#x20;\
학생들을 대상으로 교육 봉사를 한 것은 처음이지만 프로젝트를 리딩한 경험이 의미 있었던 거 같다!

<br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cooku222.kr/project-remind/actions/undefined-1/2025-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
