Moi j'ai triché :p
J'ai dessiné mon space invader dans mon logiciel de création de niveaux, écrit en Linotte :
[attachment=129]
J'ai alors repris le code de Cpc, en le modifiant un peu :
[php]
globale
taille_largeur_case :: nombre
taille_hauteur_case :: nombre
nombre_case_largeur :: nombre
nombre_case_hauteur :: nombre
space_invaders :: casier de nombres
Ouvrir :
c :: conduit
casier :: casier de nombres
mémo :: texte
num :: nombre
i :: nombre
début
évoque c.sélectionneretouvrir()
casier vaut c.chargecasiernombres(4)
taille_largeur_case = casier{0}
taille_hauteur_case = casier{1}
nombre_case_largeur = casier{2}
nombre_case_hauteur = casier{3}
Pour chaque nombre_case_hauteur, lis
Pour chaque nombre_case_largeur, lis
mémo vaut c.nlire(3)
Convertis mémo en num
Si num != 0, ajoute #i dans space_invaders
incrémente i
ferme
mémo vaut c.nlire(2)
ferme
évoque c.fermer()
Va vers Afficher
Afficher :
bloc :: rectangle, largeur vaut taille_largeur_case, hauteur vaut taille_hauteur_case, plein vaut "oui"
début
tant que vrai, lis
x & y <
- hasard(500)
couleur@bloc vaut couleurs{hasard(x/2)}
pour chaque space_invaders, lis
x@bloc vaut x + joker mod nombre_case_largeur*(taille_largeur_case + 1)
y@bloc vaut y + entier(joker/nombre_case_largeur)*(taille_hauteur_case + 1)
projette clone(bloc)
ferme
couleur@bloc vaut "noir"
x@bloc vaut x + 2 * (taille_largeur_case + 1)
y@bloc vaut y + (2 + x mod 2) * (taille_hauteur_case + 1)
projette clone(bloc)
x@bloc vaut x + 4 * (taille_largeur_case + 1)
y@bloc vaut y + (2 + y mod 2) * (taille_hauteur_case + 1)
projette clone(bloc)
attends 1 seconde
efface toile
ferme
[/php]
Dans ma fonction Ouvrir, je charge alors ma sauvegarde dans un casier et dans ma fonction Afficher, je remplace la ligne suivante :
[php]
pour chaque {2,4,8,9,10,11,12,15,17,19,22,24,26,28,29,30,31,32,33,34,35,37,39,41}, lis
[/php]
par celle_ci :
[php]
pour chaque space_invaders, lis
[/php]
Ainsi, plus besoin d'entrer moi-même tous les chiffres du tableau, c'est ma sauvegarde qui s'en charge...
Et voici le résultat :
[attachment=132]
Voici ma sauvegarde :
[attachment=131]