Rechercher
Résultats par :
Recherche avancée
Mots-clés

convertir  vider  taille  caractères  

Qui est en ligne ?
Il y a en tout 2 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 2 Invités

Aucun

Voir toute la liste


Partagez
Voir le sujet précédentAller en basVoir le sujet suivant
avatar
Site Admin
Messages : 1029
Date d'inscription : 2011-11-03
Voir le profil de l'utilisateur

Concours de programmation sur le site du zéro

le Mon 29 Apr - 9:34
je cherche les coups ! <img src=" title="Big Grin" />

J'ai proposé un exemple en linotte !

http://www.siteduzero.com/forum/sujet/a ... e-invaders
avatar
Site Admin
Messages : 1029
Date d'inscription : 2011-11-03
Voir le profil de l'utilisateur

RE: Concours de programmation sur le site du zéro

le Tue 30 Apr - 11:30
Voici la version courte que j'ai posté !!
http://www.siteduzero.com/forum/sujet/a ... e-84276241

[php]
b:
x&y<
-hasard 500
b::rectangle,largeur=8,hauteur=8,plein="oui",couleur=couleurs{x/2}
début
projette b
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
x@b=x+joker mod 7*9;
y@(#b)=y+entier(joker/7)*9
ferme
couleur@b=0;
x@b=x+18;
y@(#b)=y+(2+x mod 2)*9;
x@b=x+36;
y@b=y+(2+y mod 2)*9
attends 1 seconde;
efface toile
va vers b
[/php]

En un coup d’œil, il est très difficile de comprendre ce que fait ce programme !
Senior Member
Messages : 585
Date d'inscription : 2012-01-11
Voir le profil de l'utilisateur

RE: Concours de programmation sur le site du zéro

le Tue 30 Apr - 13:20
J'avoue, c'est coton de comprendre ce code ^^
Senior Member
Messages : 497
Date d'inscription : 2008-09-21
Voir le profil de l'utilisateur

RE: Concours de programmation sur le site du zéro

le Fri 24 May - 21:56
Et dire que Linotte fut un langage simple et lisible… paix à son âme :;
):
avatar
Site Admin
Messages : 1029
Date d'inscription : 2011-11-03
Voir le profil de l'utilisateur

RE: Concours de programmation sur le site du zéro

le Fri 24 May - 22:01
Bonsoir Pat !
J'ai proposé une version simple à comprendre :
[php]
space invaders :
bloc :: rectangle, largeur vaut 10, hauteur vaut 10, plein vaut "oui"
début
tant que vrai, lis
x & y <
- hasard(500)
couleur@bloc vaut couleurs{hasard(x/2)}
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
x@bloc vaut x + joker mod 7*11
y@bloc vaut y + entier(joker/7)*11
projette clone(bloc)
ferme
couleur@bloc vaut "noir"
x@bloc vaut x + 2 * 11
y@bloc vaut y + (2 + x mod 2) * 11
projette clone(bloc)
x@bloc vaut x + 4 * 11
y@bloc vaut y + (2 + y mod 2) * 11
projette clone(bloc)
attends 1 seconde
efface toile
ferme[/php]
avatar
Site Admin
Messages : 1029
Date d'inscription : 2011-11-03
Voir le profil de l'utilisateur

RE: Concours de programmation sur le site du zéro

le Mon 27 May - 11:47
D'ailleurs, n'hésitez pas à proposer votre solution sur ce forum à cet Atelier du siteduzero !
L’exercice est très intéressant !
Senior Member
Messages : 585
Date d'inscription : 2012-01-11
Voir le profil de l'utilisateur

RE: Concours de programmation sur le site du zéro

le Mon 27 May - 18:48
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]
avatar
Site Admin
Messages : 1029
Date d'inscription : 2011-11-03
Voir le profil de l'utilisateur

RE: Concours de programmation sur le site du zéro

le Tue 28 May - 9:27
pas mal :-)
Ton éditeur est un outil puissant !
Senior Member
Messages : 585
Date d'inscription : 2012-01-11
Voir le profil de l'utilisateur

RE: Concours de programmation sur le site du zéro

le Tue 28 May - 15:09
Merci.
Mais mon éditeur reste très limité.
En effet, il ne peut utiliser qu'un seul tileset.
De même, je voudrais pouvoir afficher les tilesets dans des fenêtres séparées, plutôt que dans la colonne à gauche, afin de pouvoir conserver leur apparence initiale.
Enfin, pouvoir afficher plusieurs tilesets, me permettrais d'inclure des "calques" et donc, de pouvoir superposer plusieurs tiles dans mon quadrillage...
Mais pour ça, il faudrait que les IHM disposent d'une espèce "toile" spécifique, permettant à chaque fenêtre d'afficher des éléments graphiques...
Contenu sponsorisé

Re: Concours de programmation sur le site du zéro

Voir le sujet précédentRevenir en hautVoir le sujet suivant
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum