출처 : 반크_독도2023
참고풀이]
from tkinter import *
import random
import time
class Ball:
def __init__(self, x, y, col, size): #원의 위치, 색, 그리고 크기를 받아온다.
#x,y위치에서 size크기의 col색의 원을 그린다.
self.won=canvas.create_oval(x, y, x+size, y+size, fill=col)
self.mx=random.randint(1,10) #x의 이동값을 임의의로 구한다.
self.my=random.randint(1,10) #y의 이동값을 임의의로 구한다.
def Move(self):
canvas.move(self.won, self.mx, self.my)
#현재 원 위치의 시작점과 끝점을 구한다.
x1, y1, x2, y2 = canvas.coords(self.won)
#원이 위쪽이나 아래쪽으로 벗어났다면
if y2>canvas.winfo_height() or y1<0:
self.my *= -1 #이동방향을 반전시킨다.
#원이 왼쪽이나 오른쪽으로 벗어났다면
if x2>canvas.winfo_width() or x1<0:
self.mx *= -1 #이동방향을 반전시킨다.
win=Tk()
win.geometry("820x720")
canvas=Canvas(win, width=800, height=700)
canvas.pack()
bList=[]
colors=["blue", "red", "yellow", "green", "indigo", "violet", "orange", "gray"]
for i in range(10):
xm=random.randint(0,700)
ym=random.randint(0,600)
sizem=random.randint(20, 150)
colm=random.choice(colors)
bList.append(Ball(xm, ym, colm, sizem))
while True:
for i in range(10):
bList[i].Move()
win.update()
time.sleep(0.05)
win.mainloop()
참고풀이 결과]
대한민국의 아름다운 영토, 독도의 겨울
'프로그램 > Python 1000제' 카테고리의 다른 글
Python 329제] 병합 정렬(Merge Sort) (0) | 2024.11.04 |
---|---|
Python 328제] 버블정렬 (0) | 2024.10.31 |
Python 326제] 두근두근 파이썬(개정판) CHAPTER 12 도전문제 1 p377 (0) | 2024.10.21 |
Python 325제] 두근두근 파이썬(개정판) CHAPTER 11 연습문제 7 p361 (0) | 2024.10.19 |
Python 324제] 두근두근 파이썬(개정판) CHAPTER 11 연습문제 6 p361 (0) | 2024.10.14 |
댓글