Python Forum
Python 25 Line Challenge
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Python 25 Line Challenge
#27
I humanized the bouncing balls and made it 25 lines long.
import tkinter, time, math, random, dataclasses
Ball = dataclasses.make_dataclass('Ball', ('shape', 'x', 'y', 'spdx', 'spdy', 'color'))
def onTimer():
    for i, ball in enumerate(ballstats):
        ball.x += ball.spdx
        ball.y += ball.spdy
        for other in ballstats[i+1:]:
            dist = math.sqrt((ball.x - other.x)**2 + (ball.y - other.y)**2) 
            if dist < balldiameter:
                ball.spdx, other.spdx = other.spdx, ball.spdx
                ball.spdy, other.spdy = other.spdy, ball.spdy
        if ball.x < 0 or ball.x > winWid - balldiameter: ball.spdx = - ball.spdx
        if ball.y < 0 or ball.y > winHei - balldiameter: ball.spdy = - ball.spdy
        canvas.coords(ball.shape, (ball.x, ball.y, ball.x + balldiameter, ball.y + balldiameter))
    timerhandle = window.after(2,onTimer)
winWid, winHei = 640, 480
balldiameter = 7
window = tkinter.Tk()
canvas = tkinter.Canvas(window, width=winWid, height=winHei, bg="white")
canvas.pack()
ballstats = [Ball(None, random.randrange(0, winWid), random.randrange(0, winHei), random.random() * 2 - 1, random.random() * 2 - 1, "#" + ''.join(random.choices("0123456789ABCDEF", k=6))) for i in range(100)]
for ball in ballstats:
    ball.shape = canvas.create_oval(ball.x, ball.y, ball.x + balldiameter, ball.y + balldiameter, outline=ball.color, fill=ball.color)
timerhandle = window.after(2,onTimer)
window.mainloop()
Some lines are too long. Normally I don't write lines larger than 80 characters.
menator01 likes this post
Reply


Messages In This Thread
Python 25 Line Challenge - by codingCat - May-02-2022, 01:08 PM
RE: Python 25 Line Challenge - by codingCat - May-02-2022, 01:11 PM
RE: Python 25 Line Challenge - by menator01 - May-02-2022, 08:02 PM
RE: Python 25 Line Challenge - by codingCat - May-03-2022, 11:23 AM
RE: Python 25 Line Challenge - by Gribouillis - May-03-2022, 12:24 PM
RE: Python 25 Line Challenge - by codingCat - May-04-2022, 06:52 PM
RE: Python 25 Line Challenge - by menator01 - May-03-2022, 07:49 PM
RE: Python 25 Line Challenge - by codingCat - May-04-2022, 06:55 PM
RE: Python 25 Line Challenge - by Gribouillis - May-03-2022, 09:24 PM
RE: Python 25 Line Challenge - by codingCat - May-04-2022, 07:06 PM
RE: Python 25 Line Challenge - by menator01 - May-05-2022, 07:10 PM
RE: Python 25 Line Challenge - by Coricoco_fr - May-09-2022, 01:11 PM
RE: Python 25 Line Challenge - by codingCat - May-09-2022, 02:27 PM
RE: Python 25 Line Challenge - by menator01 - May-06-2022, 07:33 PM
RE: Python 25 Line Challenge - by codingCat - May-09-2022, 11:49 AM
RE: Python 25 Line Challenge - by codingCat - May-09-2022, 12:17 PM
RE: Python 25 Line Challenge - by menator01 - May-09-2022, 06:04 PM
RE: Python 25 Line Challenge - by codingCat - May-09-2022, 06:33 PM
RE: Python 25 Line Challenge - by menator01 - May-09-2022, 06:36 PM
RE: Python 25 Line Challenge - by Coricoco_fr - May-11-2022, 05:34 PM
RE: Python 25 Line Challenge - by Gribouillis - May-09-2022, 06:30 PM
RE: Python 25 Line Challenge - by menator01 - May-09-2022, 06:33 PM
RE: Python 25 Line Challenge - by Gribouillis - May-09-2022, 06:51 PM
RE: Python 25 Line Challenge - by menator01 - May-09-2022, 07:03 PM
RE: Python 25 Line Challenge - by Gribouillis - May-09-2022, 07:07 PM
RE: Python 25 Line Challenge - by codingCat - May-10-2022, 01:43 PM
RE: Python 25 Line Challenge - by codingCat - May-10-2022, 02:55 PM
RE: Python 25 Line Challenge - by Gribouillis - May-10-2022, 07:03 PM
RE: Python 25 Line Challenge - by Gribouillis - May-11-2022, 05:51 AM
RE: Python 25 Line Challenge - by codingCat - May-11-2022, 11:33 AM
RE: Python 25 Line Challenge - by codingCat - May-12-2022, 07:10 PM
RE: Python 25 Line Challenge - by codingCat - May-13-2022, 07:00 PM
RE: Python 25 Line Challenge - by codingCat - May-17-2022, 01:50 PM
RE: Python 25 Line Challenge - by codingCat - May-17-2022, 06:24 PM
RE: Python 25 Line Challenge - by codingCat - May-18-2022, 07:17 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  Python 100 line Challenge codingCat 9 3,361 Jun-20-2022, 07:18 AM
Last Post: Coricoco_fr
  Zen Python Challenge ichabod801 3 4,151 Aug-13-2018, 12:02 AM
Last Post: ichabod801

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020