Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
f7f746a8
Kaydet (Commit)
f7f746a8
authored
Haz 30, 2014
tarafından
Terry Jan Reedy
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Issue #21882: In turtle demos, remove module scope gui and sys calls by
moving them to the module's main function.
üst
04a37be9
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
73 additions
and
71 deletions
+73
-71
demohelp.txt
Demo/turtle/demohelp.txt
+3
-0
tdemo_clock.py
Demo/turtle/tdemo_clock.py
+2
-6
tdemo_minimal_hanoi.py
Demo/turtle/tdemo_minimal_hanoi.py
+0
-1
tdemo_nim.py
Demo/turtle/tdemo_nim.py
+13
-14
tdemo_two_canvases.py
Demo/turtle/tdemo_two_canvases.py
+54
-0
turtledemo_two_canvases.py
Demo/turtle/turtledemo_two_canvases.py
+0
-49
turtle.py
Lib/lib-tk/turtle.py
+1
-1
No files found.
Demo/turtle/demohelp.txt
Dosyayı görüntüle @
f7f746a8
...
@@ -52,6 +52,9 @@
...
@@ -52,6 +52,9 @@
(2) How to add your own demos to the demo repository
(2) How to add your own demos to the demo repository
IMPORTANT! When imported, the demo should not modify the system
by calling functions in other modules, such as sys, tkinter, or
turtle. Global variables should be initialized in main().
- The script name must begin with tdemo_ ,
- The script name must begin with tdemo_ ,
so it must have the form tdemo_<your-script-name>.py
so it must have the form tdemo_<your-script-name>.py
...
...
Demo/turtle/tdemo_clock.py
Dosyayı görüntüle @
f7f746a8
...
@@ -11,11 +11,8 @@ and time
...
@@ -11,11 +11,8 @@ and time
------------------------------------
------------------------------------
"""
"""
from
turtle
import
*
from
turtle
import
*
from
turtle
import
Terminator
# not in __all__
from
datetime
import
datetime
from
datetime
import
datetime
mode
(
"logo"
)
def
jump
(
distanz
,
winkel
=
0
):
def
jump
(
distanz
,
winkel
=
0
):
penup
()
penup
()
right
(
winkel
)
right
(
winkel
)
...
@@ -43,7 +40,6 @@ def make_hand_shape(name, laenge, spitze):
...
@@ -43,7 +40,6 @@ def make_hand_shape(name, laenge, spitze):
hand_form
=
get_poly
()
hand_form
=
get_poly
()
register_shape
(
name
,
hand_form
)
register_shape
(
name
,
hand_form
)
def
clockface
(
radius
):
def
clockface
(
radius
):
reset
()
reset
()
pensize
(
7
)
pensize
(
7
)
...
@@ -84,7 +80,6 @@ def setup():
...
@@ -84,7 +80,6 @@ def setup():
writer
.
pu
()
writer
.
pu
()
writer
.
bk
(
85
)
writer
.
bk
(
85
)
def
wochentag
(
t
):
def
wochentag
(
t
):
wochentag
=
[
"Monday"
,
"Tuesday"
,
"Wednesday"
,
wochentag
=
[
"Monday"
,
"Tuesday"
,
"Wednesday"
,
"Thursday"
,
"Friday"
,
"Saturday"
,
"Sunday"
]
"Thursday"
,
"Friday"
,
"Saturday"
,
"Sunday"
]
...
@@ -131,6 +126,7 @@ def main():
...
@@ -131,6 +126,7 @@ def main():
return
"EVENTLOOP"
return
"EVENTLOOP"
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
mode
(
"logo"
)
msg
=
main
()
msg
=
main
()
print
msg
print
msg
mainloop
()
mainloop
()
# keep window open
Demo/turtle/tdemo_minimal_hanoi.py
Dosyayı görüntüle @
f7f746a8
...
@@ -18,7 +18,6 @@ stretched to rectangles by shapesize()
...
@@ -18,7 +18,6 @@ stretched to rectangles by shapesize()
---------------------------------------
---------------------------------------
"""
"""
from
turtle
import
*
from
turtle
import
*
from
turtle
import
Terminator
# not in __all__
class
Disc
(
Turtle
):
class
Disc
(
Turtle
):
def
__init__
(
self
,
n
):
def
__init__
(
self
,
n
):
...
...
Demo/turtle/tdemo_nim.py
Dosyayı görüntüle @
f7f746a8
""" turtle-example-suite:
""" turtle-example-suite:
tdemo_nim.py
tdemo_nim.py
Play nim against the computer. The player
Play nim against the computer. The player
who takes the last stick is the winner.
who takes the last stick is the winner.
...
@@ -41,7 +41,7 @@ def computerzug(state):
...
@@ -41,7 +41,7 @@ def computerzug(state):
return
move
return
move
def
randommove
(
state
):
def
randommove
(
state
):
m
=
max
(
state
)
m
=
max
(
state
)
while
True
:
while
True
:
z
=
random
.
randint
(
0
,
2
)
z
=
random
.
randint
(
0
,
2
)
if
state
[
z
]
>
(
m
>
1
):
if
state
[
z
]
>
(
m
>
1
):
...
@@ -62,7 +62,7 @@ class NimModel(object):
...
@@ -62,7 +62,7 @@ class NimModel(object):
self
.
winner
=
None
self
.
winner
=
None
self
.
game
.
view
.
setup
()
self
.
game
.
view
.
setup
()
self
.
game
.
state
=
Nim
.
RUNNING
self
.
game
.
state
=
Nim
.
RUNNING
def
move
(
self
,
row
,
col
):
def
move
(
self
,
row
,
col
):
maxspalte
=
self
.
sticks
[
row
]
maxspalte
=
self
.
sticks
[
row
]
self
.
sticks
[
row
]
=
col
self
.
sticks
[
row
]
=
col
...
@@ -76,7 +76,7 @@ class NimModel(object):
...
@@ -76,7 +76,7 @@ class NimModel(object):
row
,
col
=
computerzug
(
self
.
sticks
)
row
,
col
=
computerzug
(
self
.
sticks
)
self
.
move
(
row
,
col
)
self
.
move
(
row
,
col
)
self
.
player
=
0
self
.
player
=
0
def
game_over
(
self
):
def
game_over
(
self
):
return
self
.
sticks
==
[
0
,
0
,
0
]
return
self
.
sticks
==
[
0
,
0
,
0
]
...
@@ -100,13 +100,13 @@ class Stick(turtle.Turtle):
...
@@ -100,13 +100,13 @@ class Stick(turtle.Turtle):
self
.
goto
(
x
,
y
)
self
.
goto
(
x
,
y
)
self
.
color
(
"white"
)
self
.
color
(
"white"
)
self
.
showturtle
()
self
.
showturtle
()
def
coords
(
self
,
row
,
col
):
def
coords
(
self
,
row
,
col
):
packet
,
remainder
=
divmod
(
col
,
5
)
packet
,
remainder
=
divmod
(
col
,
5
)
x
=
(
3
+
11
*
packet
+
2
*
remainder
)
*
WUNIT
x
=
(
3
+
11
*
packet
+
2
*
remainder
)
*
WUNIT
y
=
(
2
+
3
*
row
)
*
HUNIT
y
=
(
2
+
3
*
row
)
*
HUNIT
return
x
-
SCREENWIDTH
//
2
+
WUNIT
//
2
,
SCREENHEIGHT
//
2
-
y
-
HUNIT
//
2
return
x
-
SCREENWIDTH
//
2
+
WUNIT
//
2
,
SCREENHEIGHT
//
2
-
y
-
HUNIT
//
2
def
makemove
(
self
,
x
,
y
):
def
makemove
(
self
,
x
,
y
):
if
self
.
game
.
state
!=
Nim
.
RUNNING
:
if
self
.
game
.
state
!=
Nim
.
RUNNING
:
return
return
...
@@ -142,7 +142,7 @@ class NimView(object):
...
@@ -142,7 +142,7 @@ class NimView(object):
self
.
writer
.
pencolor
(
"black"
)
self
.
writer
.
pencolor
(
"black"
)
self
.
writer
.
write
(
msg1
,
align
=
"center"
,
font
=
(
"Courier"
,
14
,
"bold"
))
self
.
writer
.
write
(
msg1
,
align
=
"center"
,
font
=
(
"Courier"
,
14
,
"bold"
))
self
.
screen
.
tracer
(
True
)
self
.
screen
.
tracer
(
True
)
def
setup
(
self
):
def
setup
(
self
):
self
.
screen
.
tracer
(
False
)
self
.
screen
.
tracer
(
False
)
...
@@ -181,6 +181,7 @@ class NimView(object):
...
@@ -181,6 +181,7 @@ class NimView(object):
if
self
.
game
.
state
==
Nim
.
OVER
:
if
self
.
game
.
state
==
Nim
.
OVER
:
self
.
screen
.
clear
()
self
.
screen
.
clear
()
class
NimController
(
object
):
class
NimController
(
object
):
def
__init__
(
self
,
game
):
def
__init__
(
self
,
game
):
...
@@ -200,28 +201,26 @@ class NimController(object):
...
@@ -200,28 +201,26 @@ class NimController(object):
self
.
BUSY
=
True
self
.
BUSY
=
True
self
.
game
.
model
.
notify_move
(
row
,
col
)
self
.
game
.
model
.
notify_move
(
row
,
col
)
self
.
BUSY
=
False
self
.
BUSY
=
False
class
Nim
(
object
):
class
Nim
(
object
):
CREATED
=
0
CREATED
=
0
RUNNING
=
1
RUNNING
=
1
OVER
=
2
OVER
=
2
def
__init__
(
self
,
screen
):
def
__init__
(
self
,
screen
):
self
.
state
=
Nim
.
CREATED
self
.
state
=
Nim
.
CREATED
self
.
screen
=
screen
self
.
screen
=
screen
self
.
model
=
NimModel
(
self
)
self
.
model
=
NimModel
(
self
)
self
.
view
=
NimView
(
self
)
self
.
view
=
NimView
(
self
)
self
.
controller
=
NimController
(
self
)
self
.
controller
=
NimController
(
self
)
mainscreen
=
turtle
.
Screen
()
mainscreen
.
mode
(
"standard"
)
mainscreen
.
setup
(
SCREENWIDTH
,
SCREENHEIGHT
)
def
main
():
def
main
():
mainscreen
=
turtle
.
Screen
()
mainscreen
.
mode
(
"standard"
)
mainscreen
.
setup
(
SCREENWIDTH
,
SCREENHEIGHT
)
nim
=
Nim
(
mainscreen
)
nim
=
Nim
(
mainscreen
)
return
"EVENTLOOP!"
return
"EVENTLOOP!"
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
main
()
main
()
turtle
.
mainloop
()
turtle
.
mainloop
()
Demo/turtle/tdemo_two_canvases.py
0 → 100644
Dosyayı görüntüle @
f7f746a8
"""turtledemo.two_canvases
Use TurtleScreen and RawTurtle to draw on two
distinct canvases in a separate windows. The
new window must be separately closed in
addition to pressing the STOP button.
"""
from
turtle
import
TurtleScreen
,
RawTurtle
,
TK
def
main
():
root
=
TK
.
Tk
()
cv1
=
TK
.
Canvas
(
root
,
width
=
300
,
height
=
200
,
bg
=
"#ddffff"
)
cv2
=
TK
.
Canvas
(
root
,
width
=
300
,
height
=
200
,
bg
=
"#ffeeee"
)
cv1
.
pack
()
cv2
.
pack
()
s1
=
TurtleScreen
(
cv1
)
s1
.
bgcolor
(
0.85
,
0.85
,
1
)
s2
=
TurtleScreen
(
cv2
)
s2
.
bgcolor
(
1
,
0.85
,
0.85
)
p
=
RawTurtle
(
s1
)
q
=
RawTurtle
(
s2
)
p
.
color
(
"red"
,
(
1
,
0.85
,
0.85
))
p
.
width
(
3
)
q
.
color
(
"blue"
,
(
0.85
,
0.85
,
1
))
q
.
width
(
3
)
for
t
in
p
,
q
:
t
.
shape
(
"turtle"
)
t
.
lt
(
36
)
q
.
lt
(
180
)
for
t
in
p
,
q
:
t
.
begin_fill
()
for
i
in
range
(
5
):
for
t
in
p
,
q
:
t
.
fd
(
50
)
t
.
lt
(
72
)
for
t
in
p
,
q
:
t
.
end_fill
()
t
.
lt
(
54
)
t
.
pu
()
t
.
bk
(
50
)
return
"EVENTLOOP"
if
__name__
==
'__main__'
:
main
()
TK
.
mainloop
()
# keep window open until user closes it
Demo/turtle/turtledemo_two_canvases.py
deleted
100755 → 0
Dosyayı görüntüle @
04a37be9
#!/usr/bin/env python
## DEMONSTRATES USE OF 2 CANVASES, SO CANNOT BE RUN IN DEMOVIEWER!
"""turtle example: Using TurtleScreen and RawTurtle
for drawing on two distinct canvases.
"""
from
turtle
import
TurtleScreen
,
RawTurtle
,
TK
root
=
TK
.
Tk
()
cv1
=
TK
.
Canvas
(
root
,
width
=
300
,
height
=
200
,
bg
=
"#ddffff"
)
cv2
=
TK
.
Canvas
(
root
,
width
=
300
,
height
=
200
,
bg
=
"#ffeeee"
)
cv1
.
pack
()
cv2
.
pack
()
s1
=
TurtleScreen
(
cv1
)
s1
.
bgcolor
(
0.85
,
0.85
,
1
)
s2
=
TurtleScreen
(
cv2
)
s2
.
bgcolor
(
1
,
0.85
,
0.85
)
p
=
RawTurtle
(
s1
)
q
=
RawTurtle
(
s2
)
p
.
color
(
"red"
,
"white"
)
p
.
width
(
3
)
q
.
color
(
"blue"
,
"black"
)
q
.
width
(
3
)
for
t
in
p
,
q
:
t
.
shape
(
"turtle"
)
t
.
lt
(
36
)
q
.
lt
(
180
)
for
i
in
range
(
5
):
for
t
in
p
,
q
:
t
.
fd
(
50
)
t
.
lt
(
72
)
for
t
in
p
,
q
:
t
.
lt
(
54
)
t
.
pu
()
t
.
bk
(
50
)
## Want to get some info?
print
s1
,
s2
print
p
,
q
print
s1
.
turtles
()
print
s2
.
turtles
()
TK
.
mainloop
()
Lib/lib-tk/turtle.py
Dosyayı görüntüle @
f7f746a8
...
@@ -142,7 +142,7 @@ _math_functions = ['acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh',
...
@@ -142,7 +142,7 @@ _math_functions = ['acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh',
'log10'
,
'modf'
,
'pi'
,
'pow'
,
'sin'
,
'sinh'
,
'sqrt'
,
'tan'
,
'tanh'
]
'log10'
,
'modf'
,
'pi'
,
'pow'
,
'sin'
,
'sinh'
,
'sqrt'
,
'tan'
,
'tanh'
]
__all__
=
(
_tg_classes
+
_tg_screen_functions
+
_tg_turtle_functions
+
__all__
=
(
_tg_classes
+
_tg_screen_functions
+
_tg_turtle_functions
+
_tg_utilities
+
_math_functions
)
_tg_utilities
+
[
'Terminator'
]
+
_math_functions
)
_alias_list
=
[
'addshape'
,
'backward'
,
'bk'
,
'fd'
,
'ht'
,
'lt'
,
'pd'
,
'pos'
,
_alias_list
=
[
'addshape'
,
'backward'
,
'bk'
,
'fd'
,
'ht'
,
'lt'
,
'pd'
,
'pos'
,
'pu'
,
'rt'
,
'seth'
,
'setpos'
,
'setposition'
,
'st'
,
'pu'
,
'rt'
,
'seth'
,
'setpos'
,
'setposition'
,
'st'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment