"Programmer un livre d'images à partir de 10 ans" était un très bon livre, donc Copiez le code Python et JavaScript pour les enfants et les parents qui étudient dans ce livre. Je vous serais reconnaissant si vous pouviez vous y référer quand il est bloqué.
D'ailleurs, vu l'apparence de la couverture, cela ressemble à un livre d'introduction sur scratch et Python, Par ailleurs,
J'ai été surpris qu'il ait été écrit d'une manière facile à comprendre. J'ai voulu le lire quand j'avais 10 ans et j'envie les enfants qui peuvent apprendre de ce livre. Bien sûr, ce n'est pas une tige.
Ensuite, je vais le copier immédiatement.
Jeu Yurei.py
# p.96 Jeu Yurei
# Ghost Game
from random import randint
print('Jeu Yurei')
feeling_brave = True
score = 0
while feeling_brave:
ghost_door = randint(1, 3)
print('Il y a trois portes.')
print('Il y a Yurei derrière l'une des portes.')
print('Maintenant, quel numéro de porte ouvrir?')
door = input('1, 2 ou 3?')
door_num = int(door)
if door_num == ghost_door:
print('Yureida!')
feeling_brave = False
else:
print('Il n'y avait pas de Yurei!')
print('Je l'ai mis dans la pièce voisine.')
score = score + 1
print('Fuyez!')
print('Jeu terminé!Le score est', score, 'est.')
python
# p.121 Choisissez l'un des nombreux processus
a = int(input('a = '))
b = int(input('b = '))
op = input('Ajouter/Tirer/Appel/Guerre:')
if op == 'Ajouter':
c = a + b
elif op == 'Tirer':
c = a - b
elif op == 'Appel':
c = a * b
elif op == 'Guerre':
c = a / b
else:
c = 'Erreur'
print('répondre= ',c)
python
# p.122 Répéter avec 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 structure imbriquée(nidification)Boucle
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 Comment émettre et appeler une fonction
def greeting():
print('Bonjour!')
greeting()
python
# p.131 Passer des données à une fonction
def height(m, cm):
total = (100 * m) + cm
print(total, 'C'est un centimètre de haut')
height(1,45)
python
# p.131 Renvoie les données d'une fonction
def num_input(prompt):
typed = input(prompt)
num = int(typed)
return num
a = num_input('Veuillez saisir un')
b = num_input('Veuillez entrer b')
print('a + b =', a + b)
python
# pp.132-133 Machine à écrire automatique
#Créer des phrases automatiquement
name = ['Takashi', 'Newton', 'Pascal']
noun = ['Lion', 'Vélo', 'Avion']
verb = ['acheter', 'Faire un tour', 'Frappé']
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
#Continuez à écrire des phrases
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('Il y avait un ordre inconnu')
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
Écrivez le code source suivant sous le code source à la page 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')
Saisissez le code source aux pages 142 et 144.
python
# p.146
instructions = '''Entrez les instructions pour la tortue:
Exemple F100-R45-U-F100-L45-D-F100-R90-B50
N =Commencez à gratter à nouveau
U/D =Abaissez le stylo/augmenter
F100 =Faites 100 pas en avant
B50 =Faites 50 pas en arrière
R90 =Faire pivoter de 90 degrés vers la droite
L45 =Rotation de 45 degrés vers la gauche'''
screen = getscreen()
while True:
t_program = screen.textinput('Machine à dessiner', 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
Au fait, si vous continuez à écrire le code de Project 6: Drawing Machine
python
# p.142 Fonction "tortue_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('Il y avait un ordre inconnu')
# p.144 Fonction "chaîne_Faire un artiste
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 Créer un écran de saisie pour l'utilisateur
instructions = '''Entrez les instructions pour la tortue:
Exemple F100-R45-U-F100-L45-D-F100-R90-B50
N =Commencez à gratter à nouveau
U/D =Abaissez le stylo/augmenter
F100 =Faites 100 pas en avant
B50 =Faites 50 pas en arrière
R90 =Faire pivoter de 90 degrés vers la droite
L45 =Rotation de 45 degrés vers la gauche'''
screen = getscreen()
while True:
t_program = screen.textinput('Machine à dessiner', 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('À partir de 1', top_num, 'Total jusqu'à', total)
python
# p.149
top_num = 5
total = 0
for n in range(top_num):
total = total + n
print('déboguer: n=', n, 'total=', total)
input()
print('À partir de 1', top_num, 'Total jusqu'à', total)
python
# p.149
top_num = 5
total = 0
for n in range(1, top_num + 1):
total = total + n
print('déboguer: n=', n, 'total=', total)
input()
print('À partir de 1', top_num, 'Total jusqu'à', total)
python
# p.154 Fenêtre facile
from tkinter import *
window = Tk()
python
# p.154 Ajouter un bouton à la fenêtre
from tkinter import *
def bAaction():
print('Je vous remercie!')
def bBaction():
print('Aie!C'est foutu!')
window = Tk()
buttonA = Button(window, text='presse!', command=bAaction)
buttonB = Button(window, text='N'appuyez pas!', command=bBaction)
buttonA.pack()
buttonB.pack()
python
# p.155 Lancer les dés
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='Appuyez ici pour lancer les dés', 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 Dessine une figure de base
>>> 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 Utilisation des coordonnées
>>> drawing.create_rectangle(50, 50, 250, 350)
python
# p.159 Coloriez la figure
>>> drawing.create_oval(30, 30, 80, 80, outline='red', fill='blue')
python
# p.159 Écrivons un extraterrestre
from tkinter import *
window = Tk()
window.title('extraterrestre')
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 Déplacer une figure
>>> c.move(eyeball, -10,0)
>>> c.move(eyeball, 10,0)
Veuillez saisir après le code source à la page 159.
python
#Essayez de changer la couleur
def mouth_open():
c.itemconfig(mouth, fill='black')
def mouth_close():
c.itemconfig(mouth, fill='red')
python
>>> mouth_open()
>>> mouth_close()
Veuillez saisir le code source à la p.160.
python
# p.161 Cacher la figure
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 Parler
words = c.create_text(200, 280, text='Je suis un extraterrestre!')
def steal_hat():
c.itemconfig(hat, state=HIDDEN)
c.itemconfig(words, text='S'il te plait change mon esprit!')
python
>>> steal_hat()
python
# p.162 événements souris
window.attributes('-topmost', 1)
def burp(event):
mouth_open()
c.itemconfig(words, text='rot!')
c.bind_all('<Button-1>', burp)
python
# p.163 événements clavier
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 Déplacer avec une opération clé
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 Fabriquer des fenêtres et des bidons d'eau
from tkinter import *
HEIGHT = 500
WIDTH = 800
window = Tk()
window.title('Jeu Sensuikan')
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 Déplacer le bidon
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 Préparez "Awa"
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 Déplacer la bulle
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
#Boucle principale
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 Comment flotter
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 Mesurer la distance entre deux points
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
#Pétillant
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 Terminez le jeu
c.create_text(50, 30, text='temps', fill='white' )
c.create_text(150, 30, text='But', 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
#Boucle principale
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='Jeu terminé', fill='white', font=('Helvetica', 30))
c.create_text(MID_X, MID_Y + 30, \
text='But'+ str(score), fill='white')
c.create_text(MID_X, MID_Y + 45,
text='Bonus de temps' + str(bonus*TIME_LIMIT), fill='white')
C'est tout ce qu'on peut en dire. Voici le programme terminé.
python
# p.165 Fabriquer des fenêtres et des bidons d'eau
from tkinter import *
HEIGHT = 500
WIDTH = 800
window = Tk()
window.title('Jeu Sensuikan')
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 Déplacer le bidon
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 Préparez "Awa"
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
#Déplacez la bulle
def move_bubbles():
for i in range(len(bub_id)):
c.move(bub_id[i], -bub_speed[i], 0)
# p.169 Comment flotter
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 Mesurer la distance entre deux points
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)
#Pétillant
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 Terminez le jeu
c.create_text(50, 30, text='temps', fill='white' )
c.create_text(150, 30, text='But', 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
#Boucle principale
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='Jeu terminé', fill='white', font=('Helvetica', 30))
c.create_text(MID_X, MID_Y + 30, \
text='But'+ str(score), fill='white')
c.create_text(MID_X, MID_Y + 45,
text='Bonus de temps' + str(bonus*TIME_LIMIT), fill='white')
python
// p.210 Demander à l'utilisateur d'entrer
<script>
var name = prompt("S'il vous plaît entrez votre nom");
var greeting = "Bonjour" + name + "!";
document.write(greeting);
alert("Hello World!");
</script>
python
// p.211 événement
<button onclick="tonguetwist()">Disons!</button>
<script>
function tonguetwist()
{
document.write("namamugi namagome namatamago "C'est un virelangue japonais");
}
</script>
python
// p.211 Boucle en JavaScript
<script>
for (var x=0; x<6; x++)
{
document.write("Nombre de boucles: "+x+"<br>");
}
</script>
Recommended Posts