"Programmieren von Bilderbüchern ab 10 Jahren" war also ein sehr gutes Buch Kopieren Sie den Python- und JavaScript-Code für Kinder und Eltern, die in diesem Buch lernen. Ich wäre Ihnen dankbar, wenn Sie sich darauf beziehen könnten, wenn es stecken bleibt.
Übrigens sieht es vom Erscheinungsbild des Covers aus wie ein Einführungsbuch über Scratch und Python aus. Außerdem,
Ich war überrascht, dass es leicht verständlich geschrieben war. Ich wollte es lesen, als ich 10 Jahre alt war, und ich beneide die Kinder, die aus diesem Buch lernen können. Natürlich ist es kein Stemmer.
Dann werde ich es sofort kopieren.
Yurei-Spiel.py
# p.96 Yurei-Spiel
# Ghost Game
from random import randint
print('Yurei-Spiel')
feeling_brave = True
score = 0
while feeling_brave:
ghost_door = randint(1, 3)
print('Es gibt drei Türen.')
print('Da ist Yurei hinter einer der Türen.')
print('Nun, welche Nummer Tür zu öffnen?')
door = input('1, 2 oder 3?')
door_num = int(door)
if door_num == ghost_door:
print('Yureida!')
feeling_brave = False
else:
print('Es gab keinen Yurei!')
print('Ich habe es in den nächsten Raum gestellt.')
score = score + 1
print('Renn weg!')
print('Spiel ist aus!Die Punktzahl ist', score, 'ist.')
python
# p.121 Wählen Sie einen von mehreren Prozessen
a = int(input('a = '))
b = int(input('b = '))
op = input('Hinzufügen/ziehen/Anruf/Krieg:')
if op == 'Hinzufügen':
c = a + b
elif op == 'ziehen':
c = a - b
elif op == 'Anruf':
c = a * b
elif op == 'Krieg':
c = a / b
else:
c = 'Error'
print('Antworten= ',c)
python
# p.122 Wiederholen Sie mit Python
from turtle import *
forward(100)
right(120)
forward(100)
right(120)
forward(100)
right(120)
python
for i in range(3):
forward(100)
right(120)
python
# p.123 verschachtelte Struktur(Verschachtelung)Schleife
n = 3
for a in range(1, n + 1):
for b in range(1, n + 1):
print(b, 'x', a, '=', b * a)
python
# p.130 So erstellen und rufen Sie eine Funktion auf
def greeting():
print('Hallo!')
greeting()
python
# p.131 Daten an eine Funktion übergeben
def height(m, cm):
total = (100 * m) + cm
print(total, 'Es ist ein Zentimeter hoch')
height(1,45)
python
# p.131 Gibt Daten von einer Funktion zurück
def num_input(prompt):
typed = input(prompt)
num = int(typed)
return num
a = num_input('Bitte geben Sie ein')
b = num_input('Bitte geben Sie b')
print('a + b =', a + b)
python
# pp.132-133 Automatische Schreibmaschine
#Sätze automatisch erstellen
name = ['Takashi', 'Newton', 'Pascal']
noun = ['Löwe', 'Fahrrad', 'Flugzeug']
verb = ['Kaufen', 'Herumfahren', 'Schlagen']
from random import randint
def pick(words):
num_words = len(words)
num_picked = randint(0, num_words - 1)
word_picked = words[num_picked]
return word_picked
print(pick(name), pick(noun), pick(verb), end='。\n')
python
#Schreibe weiter Sätze
while True:
print(pick(name), pick(noun), pick(verb), end='。\n')
input()
python
# p.140
from turtle import *
reset()
left(90)
forward(100)
right(45)
forward(70)
right(90)
forward(70)
right(45)
forward(100)
right(90)
forward(100)
python
# p.142
from turtle import *
def turtle_controller(do, val):
do = do.upper()
if do == 'F':
forward(val)
elif do == 'B':
backward(val)
elif do == 'R':
right(val)
elif do == 'L':
left(val)
elif do == 'U':
penup()
elif do == 'D':
pendown()
elif do == 'N':
reset()
else:
print('Es gab eine unbekannte Reihenfolge')
python
turtle_controller('F' , 100)
turtle_controller('R' , 90)
turtle_controller('F' , 50)
python
# p.144
program = 'N-L90-F100-R45-F70-R90-F70-R45-F100-R90-F100'
cmd_list = program.split('-')
cmd_list
Schreiben Sie den folgenden Quellcode unter den Quellcode auf Seite 142.
python
def string_artist(program):
cmd_list = program.split('-')
for command in cmd_list:
cmd_len = len(command)
if cmd_len == 0:
continue
cmd_type = command[0]
num = 0
if cmd_len > 1:
num_string = command[1:]
num = int(num_string)
print(command, ':', cmd_type, num)
turtle_controller(cmd_type, num)
python
# p.145
string_artist('N-L90-F100-R45-F70-R90-F70-R45-F100-R90-F100')
Geben Sie den Quellcode auf den Seiten 142 und 144 ein.
python
# p.146
instructions = '''Geben Sie Anweisungen für die Schildkröte ein:
Beispiel F100-R45-U-F100-L45-D-F100-R90-B50
N =Fangen Sie neu an zu kratzen
U/D =Senken Sie den Stift/erhöhen, ansteigen
F100 =Machen Sie 100 Schritte vorwärts
B50 =Machen Sie 50 Schritte zurück
R90 =90 Grad nach rechts drehen
L45 =45 Grad nach links drehen'''
screen = getscreen()
while True:
t_program = screen.textinput('Zeichenmaschine', instructions)
print(t_program)
if t_program == None or t_program.upper() == 'END':
break
string_artist(t_program)
python
# p.147
N-L90-F100-R45-F70-R90-F70-R45-F100-R90-F100-
B10-U-R90-F10-D-F30-R90-F30-R90-F30-R90-F3
Übrigens, wenn Sie weiterhin den Code von Project 6: Drawing Machine schreiben
python
# p.142 Funktion "Schildkröte_controller」
from turtle import *
def turtle_controller(do, val):
do = do.upper()
if do == 'F':
forward(val)
elif do == 'B':
backward(val)
elif do == 'R':
right(val)
elif do == 'L':
left(val)
elif do == 'U':
penup()
elif do == 'D':
pendown()
elif do == 'N':
reset()
else:
print('Es gab eine unbekannte Reihenfolge')
# p.144 Funktionszeichenfolge_Mach einen Künstler
def string_artist(program):
cmd_list = program.split('-')
for command in cmd_list:
cmd_len = len(command)
if cmd_len == 0:
continue
cmd_type = command[0]
num = 0
if cmd_len > 1:
num_string = command[1:]
num = int(num_string)
print(command, ':', cmd_type, num)
turtle_controller(cmd_type, num)
# p.146 Erstellen Sie einen Eingabebildschirm für den Benutzer
instructions = '''Geben Sie Anweisungen für die Schildkröte ein:
Beispiel F100-R45-U-F100-L45-D-F100-R90-B50
N =Fangen Sie neu an zu kratzen
U/D =Senken Sie den Stift/erhöhen, ansteigen
F100 =Machen Sie 100 Schritte vorwärts
B50 =Machen Sie 50 Schritte zurück
R90 =90 Grad nach rechts drehen
L45 =45 Grad nach links drehen'''
screen = getscreen()
while True:
t_program = screen.textinput('Zeichenmaschine', instructions)
print(t_program)
if t_program == None or t_program.upper() == 'END':
break
string_artist(t_program)
python
# p.148
top_num = 5
total = 0
for n in range(top_num):
total = total + n
print('Von 1', top_num, 'Insgesamt bis zu', total)
python
# p.149
top_num = 5
total = 0
for n in range(top_num):
total = total + n
print('debuggen: n=', n, 'total=', total)
input()
print('Von 1', top_num, 'Insgesamt bis zu', total)
python
# p.149
top_num = 5
total = 0
for n in range(1, top_num + 1):
total = total + n
print('debuggen: n=', n, 'total=', total)
input()
print('Von 1', top_num, 'Insgesamt bis zu', total)
python
# p.154 Einfaches Fenster
from tkinter import *
window = Tk()
python
# p.154 Fügen Sie dem Fenster eine Schaltfläche hinzu
from tkinter import *
def bAaction():
print('Vielen Dank!')
def bBaction():
print('Autsch!Das ist verfickt!')
window = Tk()
buttonA = Button(window, text='Drücken Sie!', command=bAaction)
buttonB = Button(window, text='Drücken Sie nicht!', command=bBaction)
buttonA.pack()
buttonB.pack()
python
# p.155 Würfeln
from tkinter import *
from random import randint
def roll():
text.delete(0.0, END)
text.insert(END, str(randint(1, 6)))
window = Tk()
text = Text(window, width=1, height=1)
buttonA = Button(window, text='Drücken Sie hier, um die Würfel zu würfeln', command=roll)
text.pack()
buttonA.pack()
python
# p.157
from random import *
from tkinter import *
size = 500
window = Tk()
canvas = Canvas(window, width=size, height=size)
canvas.pack()
while True:
col = choice(['pink', 'orange', 'purple', 'yellow'])
x0 = randint(0, size)
y0 = randint(0, size)
d = randint(0, size/5)
canvas.create_oval(x0, y0, x0 + d, y0 + d, fill=col)
window.update()
python
# p.158 Zeichnen Sie eine Grundfigur
>>> from tkinter import *
>>> window = Tk()
>>> drawing = Canvas(window, height=500, width=500)
>>> drawing.pack()
>>> rect1 = drawing.create_rectangle(100, 100, 300, 200)
>>> square1 = drawing.create_rectangle(30, 30, 80, 80)
>>> oval1 = drawing.create_oval(100, 100, 300, 200)
>>> circle1 = drawing.create_oval(30, 30, 80, 80)
python
# p.158 Koordinaten verwenden
>>> drawing.create_rectangle(50, 50, 250, 350)
python
# p.159 Färben Sie die Figur
>>> drawing.create_oval(30, 30, 80, 80, outline='red', fill='blue')
python
# p.159 Schreiben wir einen Außerirdischen
from tkinter import *
window = Tk()
window.title('Außerirdischer')
c = Canvas(window, height=300, width=400)
c.pack()
body = c.create_oval(100, 150, 300, 250, fill='green')
eye = c.create_oval(170, 70, 230, 130, fill='white')
eyeball = c.create_oval(190, 90, 210, 110, fill='black')
mouth = c.create_oval(150, 220, 250, 240, fill='red')
neck = c.create_oval(200, 150, 200, 130)
hat = c.create_polygon(180, 75, 220, 75, 200, 20, fill='blue')
python
# p.160 Bewegen Sie eine Figur
>>> c.move(eyeball, -10,0)
>>> c.move(eyeball, 10,0)
Bitte geben Sie nach dem Quellcode auf S.159 ein.
python
#Versuchen Sie, die Farbe zu ändern
def mouth_open():
c.itemconfig(mouth, fill='black')
def mouth_close():
c.itemconfig(mouth, fill='red')
python
>>> mouth_open()
>>> mouth_close()
Bitte geben Sie den Quellcode auf S.160 ein.
python
# p.161 Verstecke die Figur
def blink():
c.itemconfig(eye, fill='green')
c.itemconfig(eyeball, state=HIDDEN)
def unblink():
c.itemconfig(eye, fill='white')
c.itemconfig(eyeball, state=NORMAL)
python
>>> blink()
>>> unblink()
python
# p.161 Sprechen
words = c.create_text(200, 280, text='Ich bin ein Außerirdischer!')
def steal_hat():
c.itemconfig(hat, state=HIDDEN)
c.itemconfig(words, text='Bitte ändere meine Meinung!')
python
>>> steal_hat()
python
# p.162 Mausereignisse
window.attributes('-topmost', 1)
def burp(event):
mouth_open()
c.itemconfig(words, text='rülpsen!')
c.bind_all('<Button-1>', burp)
python
# p.163 Tastaturereignisse
def blink2(event):
c.itemconfig(eye, fill='green')
c.itemconfig(eyeball, state=HIDDEN)
def unblink2(event):
c.itemconfig(eye, fill='white')
c.itemconfig(eyeball, state=NORMAL)
c.bind_all('<KeyPress-a>', blink2)
c.bind_all('<KeyPress-z>', unblink2)
python
# p.163 Mit Tastenbedienung bewegen
def eye_control(event):
key = event.keysym
if key == "Up":
c.move(eyeball, 0, -1)
elif key == "Down":
c.move(eyeball, 0, 1)
elif key == "Left":
c.move(eyeball, -1, 0)
elif key == "Right":
c.move(eyeball, 1, 0)
c.bind_all('<Key>', eye_control)
python
# p.165 Fenster und Wasserkanister herstellen
from tkinter import *
HEIGHT = 500
WIDTH = 800
window = Tk()
window.title('Sensuikan Spiel')
c = Canvas(window, width=WIDTH, height=HEIGHT, bg='darkblue')
c.pack()
python
ship_id = c.create_polygon(5, 5, 5, 25, 30, 15, fill='red')
ship_id2 = c.create_oval(0, 0, 30, 30, outline='red')
SHIP_R = 15
MID_X = WIDTH / 2
MID_Y = HEIGHT / 2
c.move(ship_id, MID_X, MID_Y)
c.move(ship_id2, MID_X, MID_Y)
python
# p.166 Bewegen Sie die Wasserdose
SHIP_SPD = 10
def move_ship(event):
if event.keysym == 'Up':
c.move(ship_id, 0, -SHIP_SPD)
c.move(ship_id2, 0, -SHIP_SPD)
elif event.keysym == 'Down':
c.move(ship_id, 0, SHIP_SPD)
c.move(ship_id2, 0, SHIP_SPD)
elif event.keysym == 'Left':
c.move(ship_id, -SHIP_SPD, 0)
c.move(ship_id2, -SHIP_SPD, 0)
elif event.keysym == 'Right':
c.move(ship_id, SHIP_SPD, 0)
c.move(ship_id2, SHIP_SPD, 0)
c.bind_all('<Key>', move_ship)
python
# p.167 Bereiten Sie "Awa" vor
from random import randint
bub_id = list()
bub_r = list()
bub_speed = list()
MIN_BUB_R = 10
MAX_BUB_R = 30
MAX_BUB_SPD = 10
GAP = 100
def create_bubble():
x = WIDTH + GAP
y = randint(0, HEIGHT)
r = randint(MIN_BUB_R, MAX_BUB_R)
id1 = c.create_oval(x - r, y - r, x + r, y + r, outline='white')
bub_id.append(id1)
bub_r.append(r)
bub_speed.append(randint(1, MAX_BUB_SPD))
python
# p.168 Bewegen Sie die Blase
def move_bubbles():
for i in range(len(bub_id)):
c.move(bub_id[i], -bub_speed[i], 0)
python
from time import sleep, time
BUB_CHANCE = 10
#Hauptschleife
while True:
if randint(1, BUB_CHANCE) == 1:
create_bubble()
move_bubbles()
window.update()
sleep(0.01)
python
def get_coords(id_num):
pos = c.coords(id_num)
x = (pos[0] + pos[2])/2
y = (pos[1] + pos[3])/2
return x, y
python
# p.169 Wie man flattert
def del_bubble(i):
del bub_r[i]
del bub_speed[i]
c.delete(bub_id[i])
del bub_id[i]
python
def clean_up_bubs():
for i in range(len(bub_id) -1, -1, -1):
x, y = get_coords(bub_id[i])
if x < -GAP:
del_bubble(i)
python
# p.170 Messen Sie den Abstand zwischen zwei Punkten
from math import sqrt
def distance(id1, id2):
x1, y1 = get_coords(id1)
x2, y2 = get_coords(id2)
return sqrt((x2 - x1)**2 + (y2 - y1)**2)
python
#Sprudelnd
def collision():
points = 0
for bub in range(len(bub_id)-1, -1, -1):
if distance(ship_id2, bub_id[bub]) < (SHIP_R + bub_r[bub]):
points += (bub_r[bub] + bub_speed[bub])
del_bubble(bub)
return points
python
# p.172 Beende das Spiel
c.create_text(50, 30, text='Zeit', fill='white' )
c.create_text(150, 30, text='Ergebnis', fill='white' )
time_text = c.create_text(50, 50, fill= 'white' )
score_text = c.create_text(150, 50, fill='white')
def show_score(score):
c.itemconfig(score_text, text=str(score))
def show_time(time_left):
c.itemconfig(time_text, text=str(time_left))
python
from time import sleep, time
BUB_CHANCE = 10
TIME_LIMIT = 30 # P.172
BONUS_SCORE = 1000 # P.172
score = 0 # p.171
bonus = 0 # P.172
end = time() + TIME_LIMIT # P.172
python
# p.173
#Hauptschleife
while time() < end: # P.173
if randint(1, BUB_CHANCE) == 1:
create_bubble()
move_bubbles()
clean_up_bubs() # p.169
score += collision() # p.171
if (int(score / BONUS_SCORE)) > bonus: # p.173
bonus += 1 # p.173
end += TIME_LIMIT # p.173
show_score(score) # p.173
show_time(int(end - time())) # p.173
window.update()
sleep(0.01)
python
# p.173
c.create_text(MID_X, MID_Y, \
text='Spiel ist aus', fill='white', font=('Helvetica', 30))
c.create_text(MID_X, MID_Y + 30, \
text='Ergebnis'+ str(score), fill='white')
c.create_text(MID_X, MID_Y + 45,
text='Bonuszeit' + str(bonus*TIME_LIMIT), fill='white')
Dies ist abgeschlossen. Unten ist das abgeschlossene Programm.
python
# p.165 Fenster und Wasserkanister herstellen
from tkinter import *
HEIGHT = 500
WIDTH = 800
window = Tk()
window.title('Sensuikan Spiel')
c = Canvas(window, width=WIDTH, height=HEIGHT, bg='darkblue')
c.pack()
ship_id = c.create_polygon(5, 5, 5, 25, 30, 15, fill='red')
ship_id2 = c.create_oval(0, 0, 30, 30, outline='red')
SHIP_R = 15
MID_X = WIDTH / 2
MID_Y = HEIGHT / 2
c.move(ship_id, MID_X, MID_Y)
c.move(ship_id2, MID_X, MID_Y)
# p.166 Bewegen Sie die Wasserdose
SHIP_SPD = 10
def move_ship(event):
if event.keysym == 'Up':
c.move(ship_id, 0, -SHIP_SPD)
c.move(ship_id2, 0, -SHIP_SPD)
elif event.keysym == 'Down':
c.move(ship_id, 0, SHIP_SPD)
c.move(ship_id2, 0, SHIP_SPD)
elif event.keysym == 'Left':
c.move(ship_id, -SHIP_SPD, 0)
c.move(ship_id2, -SHIP_SPD, 0)
elif event.keysym == 'Right':
c.move(ship_id, SHIP_SPD, 0)
c.move(ship_id2, SHIP_SPD, 0)
c.bind_all('<Key>', move_ship)
# p.167 Bereiten Sie "Awa" vor
from random import randint
bub_id = list()
bub_r = list()
bub_speed = list()
MIN_BUB_R = 10
MAX_BUB_R = 30
MAX_BUB_SPD = 10
GAP = 100
def create_bubble():
x = WIDTH + GAP
y = randint(0, HEIGHT)
r = randint(MIN_BUB_R, MAX_BUB_R)
id1 = c.create_oval(x - r, y - r, x + r, y + r, outline='white')
bub_id.append(id1)
bub_r.append(r)
bub_speed.append(randint(1, MAX_BUB_SPD))
def get_coords(id_num):
pos = c.coords(id_num)
x = (pos[0] + pos[2])/2
y = (pos[1] + pos[3])/2
return x, y
#Bewegen Sie die Blase
def move_bubbles():
for i in range(len(bub_id)):
c.move(bub_id[i], -bub_speed[i], 0)
# p.169 Wie man flattert
def del_bubble(i):
del bub_r[i]
del bub_speed[i]
c.delete(bub_id[i])
del bub_id[i]
def clean_up_bubs():
for i in range(len(bub_id) -1, -1, -1):
x, y = get_coords(bub_id[i])
if x < -GAP:
del_bubble(i)
# p.170 Messen Sie den Abstand zwischen zwei Punkten
from math import sqrt
def distance(id1, id2):
x1, y1 = get_coords(id1)
x2, y2 = get_coords(id2)
return sqrt((x2 - x1)**2 + (y2 - y1)**2)
#Sprudelnd
def collision():
points = 0
for bub in range(len(bub_id)-1, -1, -1):
if distance(ship_id2, bub_id[bub]) < (SHIP_R + bub_r[bub]):
points += (bub_r[bub] + bub_speed[bub])
del_bubble(bub)
return points
# p.172 Beende das Spiel
c.create_text(50, 30, text='Zeit', fill='white' )
c.create_text(150, 30, text='Ergebnis', fill='white' )
time_text = c.create_text(50, 50, fill= 'white' )
score_text = c.create_text(150, 50, fill='white')
def show_score(score):
c.itemconfig(score_text, text=str(score))
def show_time(time_left):
c.itemconfig(time_text, text=str(time_left))
from time import sleep, time
BUB_CHANCE = 10
TIME_LIMIT = 30 # P.172
BONUS_SCORE = 1000 # P.172
score = 0 # p.171
bonus = 0 # P.172
end = time() + TIME_LIMIT # P.172
#Hauptschleife
while time() < end: # P.173
if randint(1, BUB_CHANCE) == 1:
create_bubble()
move_bubbles()
clean_up_bubs() # p.169
score += collision() # p.171
if (int(score / BONUS_SCORE)) > bonus: # p.173
bonus += 1 # p.173
end += TIME_LIMIT # p.173
show_score(score) # p.173
show_time(int(end - time())) # p.173
window.update()
sleep(0.01)
# p.173
c.create_text(MID_X, MID_Y, \
text='Spiel ist aus', fill='white', font=('Helvetica', 30))
c.create_text(MID_X, MID_Y + 30, \
text='Ergebnis'+ str(score), fill='white')
c.create_text(MID_X, MID_Y + 45,
text='Bonuszeit' + str(bonus*TIME_LIMIT), fill='white')
python
// p.210 Bitten Sie den Benutzer zur Eingabe
<script>
var name = prompt("Bitte geben Sie Ihren Namen ein");
var greeting = "Hallo" + name + "!";
document.write(greeting);
alert("Hello World!");
</script>
python
// p.211 Ereignis
<button onclick="tonguetwist()">Sagen wir!</button>
<script>
function tonguetwist()
{
document.write("namamugi namagome namatamago "Es ist ein japanischer Zungenbrecher");
}
</script>
python
// p.211 Schleife in JavaScript
<script>
for (var x=0; x<6; x++)
{
document.write("Anzahl der Schleifen: "+x+"<br>");
}
</script>
Recommended Posts