Skip to content

Commit bc3b8fc

Browse files
committed
seirpinski carpet
1 parent 94c563e commit bc3b8fc

File tree

4 files changed

+114
-0
lines changed

4 files changed

+114
-0
lines changed

tkinter/timer-using-after/pomodoro.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
import tkinter as tk
2+
3+
class Timer:
4+
5+
def __init__(self, master):
6+
self.master = master
7+
8+
master.title("Pomodoro Timer")
9+
10+
self.state = False
11+
self.pause = False
12+
13+
self.mins = 25
14+
self.secs = 0
15+
16+
self.display = tk.Label(master, text="00 : 00")
17+
self.display.grid(row=0, column=0, columnspan=2, ipady=10)
18+
19+
button = tk.Button(master, text="Start", bg="Green", fg="White", activebackground="Light Green", command=self.start)
20+
button.grid(row=1, column=0, ipady=10)
21+
22+
button = tk.Button(master, text="Pause", bg="Dark Red", fg="White", activebackground="Red", command=self.pause)
23+
button.grid(row=1, column=1, ipady=10)
24+
25+
def countdown(self):
26+
if self.state == True:
27+
28+
if (self.mins == 0) and (self.secs == 0):
29+
self.display.config(text="Done!")
30+
self.state = False
31+
else:
32+
self.display.config(text="%02d : %02d" % (self.mins, self.secs))
33+
34+
if self.secs == 0:
35+
self.mins -= 1
36+
self.secs = 59
37+
else:
38+
self.secs -= 1
39+
40+
self.master.after(1000, self.countdown)
41+
42+
def start(self):
43+
if self.state == False:
44+
self.state = True
45+
self.mins = 25
46+
self.secs = 0
47+
self.countdown()
48+
49+
def pause(self):
50+
if self.state == True:
51+
self.state = False
52+
53+
root = tk.Tk()
54+
Timer(root)
55+
root.mainloop()

turtle/sierpinski-carpet/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Sierpinski carpet
2+
3+
![#1](images/result-animation.gif?raw=true)
4+
5+
Wikipedia: [Sierpinski carpet](https://en.wikipedia.org/wiki/Sierpinski_carpet)
Loading

turtle/sierpinski-carpet/main.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#!/usr/bin/env python3
2+
3+
import turtle
4+
5+
# --- functions ---
6+
7+
def s(n, l):
8+
9+
if n == 0: # stop conditions
10+
11+
# draw filled rectangle
12+
13+
turtle.color('black')
14+
turtle.begin_fill()
15+
for _ in range (4):
16+
turtle.forward(l)
17+
turtle.left(90)
18+
turtle.end_fill()
19+
20+
else: # recursion
21+
22+
# around center point create 8 smalles rectangles.
23+
# create two rectangles on every side
24+
# so you have to repeat it four times
25+
26+
for _ in range(4):
27+
# first rectangle
28+
s(n-1, l/3)
29+
turtle.forward(l/3)
30+
31+
# second rectangle
32+
s(n-1, l/3)
33+
turtle.forward(l/3)
34+
35+
# go to next corner
36+
turtle.forward(l/3)
37+
turtle.left(90)
38+
39+
# update screen
40+
turtle.update()
41+
42+
# --- main ---
43+
44+
# stop updating screen (to make it faster)
45+
turtle.tracer(0)
46+
47+
# start on screen click so it can be recorded with external program
48+
#turtle.onscreenclick(lambda x,y:s(4, 400), 1)
49+
50+
# start
51+
s(4, 400)
52+
53+
# event loop
54+
turtle.mainloop()

0 commit comments

Comments
 (0)