Forum

Catégorie : Programmes
Forum : Les programmes des internautes
Vues : 4715
Réponses : 33
Type : discussion
Etat : réponses autorisées

----->PAINT !!!!<-----

Rinrynque le 11/06/2009 à 13:36
Salut tout le monde ! bigmouth.gif
J'ai crée un paint qui transforme une image en lignes de code !
Il suffit de faire son image et de rappeler la chaîne1 dans editer programme.
premièrement:
Un programme qui change les variables en chaînes:
Programme Vartochaîne
Code
:If Ent(¤)=1      *****¤=Le petit machin bizarre apres le Z(O barre)*******
:Chaîne1+"1"->Chaîne1
:If Ent(¤)=2
:Chaîne1+"2"->Chaîne1
:If Ent(¤)=3
:Chaîne1+"3"->Chaîne1
:If Ent(¤)=4
:Chaîne1+"4"->Chaîne1
:If Ent(¤)=5
:Chaîne1+"5"->Chaîne1
:If Ent(¤)=6
:Chaîne1+"6"->Chaîne1
:If Ent(¤)=7
:Chaîne1+"7"->Chaîne1
:If Ent(¤)=8
:Chaîne1+"8"->Chaîne1
:If Ent(¤)=9
:Chaîne1+"9"->Chaîne1
:If Ent(¤)=0
:Chaîne1+"0"->Chaîne1

Et l'utilitaire VTC2 pour les nombres a deux chiffres:
Code
:¤/10->¤
:PrgmVARTOCHAINE
:¤-Ent(¤)->¤
:¤*10->¤
:PrgmVARTOCHAINE


Voilà. pour rajouter une variable à la chaîne1, stockez la variable dans "¤" Et lancez VTC2.
Le programme principal paint dans la réponse.
Rinrynque le 13/06/2009 à 12:59
Comme promis, voici le programme paint, ou paintux pour les accros au libre comme moi:
PAINTUX
Code
:-63->Ymin
:-1->Ymax
:1->Xmin
:95->Xmax
:30->A
:30->B
:Lbl A
:Ptchange(B,-A
:PtChange(D,-E
:Codetouche->C
:A->D
:B->E
:If C=24
:B-1->B
:If C=25
:A-1->A
:If C=26
:B+1->B
:If C=34
:A+1->A
:If C=21
:Then
:If X=1
:Then
:Ptchange(B,-A
:Chaîne1+"Ligne("->Chaîne1
:B->¤
:PrgmVTC2
:Chaîne1+",-"->Chaîne1
:A->¤
:PrgmVTC2
:2->X
:Else
:Ptchange(B,-A
:Chaîne1+","->Chaîne1
:B->¤
:PrgmVTC2
:Chaîne1+",-"->Chaîne1
:A->¤
:PrgmVTC2
:1->X
:End
:If C=41
:Chaîne1->Chaîne2
:PtChange(B,-A
:SauveImage1
:End
:If C=45
:Effdessin
:RappelImage1
:Chaîne2->Chaîne1
:End
:Goto A

Voila!! Il ne reste plus qu'a rappeler (Shift+STO) La chaîne1 dans un prgm
PS:Commandes
Pt change: Alpha
Ligne: Shift
Sauvegarder:Maths
Annuler depuis la derniere sauvegarde:ANNUL
adrien le 13/06/2009 à 17:36
Bonjour, ton programme est très interessant, aussi te proposerais-je un des miens, basé sur le tien, permettant de transformer une picture en ligne de code (str0 ) via des pxl-on(.
voici le programme :
Code
ú ( ) 1ü ( ) A
:0ü ( ) B
:EffVar Cha ne0
:" "ü ( ) Cha ne0
:",0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80
,81,82,83,84,85,86,87,88,89,90,91,92"ü ( ) Cha ne1
:",0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41
,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62"ü ( ) Cha ne2
:1ü ( ) C
:1ü ( ) D
:Lbl 0
:A+1ü ( ) A
:If C<10
:C+2ü ( ) C
:If Cù ( ) 10
:C+3ü ( ) C
:If pxl-Test(A,B)=1
:Then
:EffEcr
:Cha ne0+"Pxl-Aff("ü ( ) Cha ne0
:If C<10
:Cha ne0+sous-Cha ne(Cha ne2,C,1)ü ( ) Cha ne0
:If Cù ( ) 10
:Cha ne0+sous-Cha ne(Cha ne2,C-1,2)ü ( ) Cha ne0
:Cha ne0+","ü ( ) Cha ne0
:If D<10
:Cha ne0+sous-Cha ne(Cha ne1,D,1)ü ( ) Cha ne0
:If Dù ( ) 10
:Cha ne0+sous-Cha ne(Cha ne1,D-1,2)ü ( ) Cha ne0
:Cha ne0+":"ü ( ) Cha ne0
:End
:If A=62
:Then
:B+1ü ( ) B
:If D<10
:D+2ü ( ) D
:If Dù ( ) 10
:D+3ü ( ) D
:1ü ( ) C
:0ü ( ) A
:End
:If B=92 et A=62
:Goto 1
:Goto 0
:Lbl 1
 code

merci pour ton post, car je ne savais pas que cela était possible avant.
Rinrynque le 13/06/2009 à 17:57
J'avais fait une foonction pour le txt mais le prblm etait que l'on ne peut pas stocker de gillemets dans une chaîne (Ca prend le 2° guillemet comme la fin de la chaîne et ca fait erreur:Syntaxe pour le 3°)
Je poste donc une amélioration pour le texte de paint:
Au debut, faire:
Code

:Imput"taper un guillemet",Chaîne3

Puis,avant le "Goto A"A la fin de paint(ux ),taper:
Code
:If C=22
:Then
:Chaîne1+"Texte("->Chaîne1"
:A->¤
:PrgmVTC2
:Chaîne1+","->Chaîne1
:B->¤
:PrgmVTC2
:Input"texte?",Chaîne0
:Chaîne1+Chaîne3+Chaîne0+Chaine3->Chaîne1
:Texte(A,B,Chaîne0

Voila, il suffit d'appuyer sur la touche juste a gauche de shift pour marquer du texte. bigmouth.gif
KillerMapper le 13/06/2009 à 19:19
J'ai pas bien saisi le but, ça transforme ce qu'on a dessiné sur le graphe en ligne de codes, pour qu'ainsi quand on exécute le programme ça réaffiche ce qu'on avait dessiné?
mad67 le 14/06/2009 à 09:13
je ne sais pas
adrien le 14/06/2009 à 11:26
OUI? le programme permet, via une boucle, de détecter
tous les pixels allumés
de l'écran, et sauvegarde dans str0 ( pour mon prgm ) :
"pxl-on(" + la valeur de
L'absice, celle de l'ordonnée, puis un séparateur ":",
de telle sorte que, dans un nouveau prgm, il suffit de
faire 2nd+sto puis str0, de supprimer, au début de la chaine,
le " et l'espace, et de l'éxecuter, et ça marche.
PS: pour le prgm que j'ai posté, il manque quelques petits
trucks, je posterai une correction quand j'aurais le temps.
KillerMapper le 14/06/2009 à 22:47
Ok sympa ce truc, ça peut être utile quand on a atteint les 10 images, ou économiser des octets si le programme au final est moins lourd que les 764 octets d'une image...
Rinrynque le 16/06/2009 à 17:29
Non, mon prgm n'analyse pas les pts allumés, mais encore mieux bigmouth.gif : il permet de de faire un dessin et il stocke dans une chaîne les lignes de code genre:
Code
Ligne(11,-12,30,-25
Pton(12,54
Texte(24,15,"ok"

Ce qui prend souvent moins de place qu'une image, dont le nombre est limité comme le disait KillerMapper.
KillerMapper le 16/06/2009 à 18:46
Ha ouais justement c'est encore mieux, car je pensais à ça en plus...
adrien le 16/06/2009 à 19:27
C'est la même chose : stoker des pixl-on revient, à la fin, à
Stoker des lignes, pareil pour le texte : tu peux faire texte(,
ou alors tu fais chaque pixel, par contre ce sera plus long;
et mon programme n'est pas du tout un paint: il permet juste de
sauvegarder des pixels dans une chaine de charactères.
De plus,Vianney, mon message disait justeque je trouvait ton idée
originale, et que je m'en étaot inspiré, alors arrete de croire que
l'on veut de "voler la vedette", on dirait un enfant.
KillerMapper le 16/06/2009 à 20:19
Oui mais ça prends moins de place de faire une ligne ou un texte que chaque pixel.
adrien le 16/06/2009 à 20:38
Oui, mais mon prgm n'est pas sencé savoir si tu as mis du texte
ou des lignes, il est composé que d'une partie et se lance quand
bon te semble, tu n'as pas besoins de dessinner juste avant, il
ne fait que repérer les pixels allumés, c'est tout, et c'est
effectivement plus long que ligne( ; texte( , mais ces fonctions
n'étaient pas le but de mon programme.
Rinrynque le 20/06/2009 à 13:08
DSL pou ma reaction "d'enfant" cry.gif et pour me faire pardonner, voici un truc qui pourrait sacrément alleger le prgmVTC2:
Remplacer les lignes:
Code
:PrgmVARTOCHAIN

Par:
Code
:Chaîne1+Souschaîne(Ent(¤),1)->Chaîne1

Ps:J'avais déjà fait un Prgm qui transforme 1 img en lignes de codes(PTon() mais même une image assez simple prenait... 2Ko!!! frozen.gif
Rinrynque le 20/06/2009 à 13:19
Faute de ma part: la ligne de code par laquelle il faut remmplacer PrgmVARTOCHAIN est:
Code
:If ¤#0      ******#veut dire différent de(= barré)******
:Then
:Chaîne1+Souschaîne("123456789",Ent(¤),1)->Chaîne1
:Else
:Chaîne1+"0"->Chaîne1
:End

Voilà voilà. De la par de "l'enfant programmeur"
PS : Je suis en 4°,(et bientôt en 3°) godgrace.gif
adrien le 20/06/2009 à 13:34
C'est sur que ça allege pas mal ton programme, et j'avoue que pour
les "pix-on", ça prend pas mal de place. Sinon, quand j'ai dit :
"on dirait un enfant", je voulait simplement te dire qu'il ne
fallait pas voir en moi quelqu'un qui voulait étaler mon prgm
sur le tien ( de plus le mien est moins bien travaillé ), mais
simplement quelqu'un qui te propose une idée basée sur la tienne,
ne le prend pas comme une insulte.
PS : Pas mal ton idée de raccourcissement.
KillerMapper le 20/06/2009 à 18:36
J'ai tenté de recopier les programmes, mais je me retrouve plus du tout avec toutes les modifs que tu as faites après crazy.gif

Tu peux remettre dans un post tout ce qu'il faut en version finale stp? Et on a toujours besoin du pgrmVARTOCHAIN?
Rinrynque le 21/06/2009 à 18:58
Ok, voici la version finale:
Prgm VARTOCHAIN:
Code
:If ¤#0      ******#veut dire différent de(= barré)******
:Then
:Chaîne1+Souschaîne("123456789",Ent(¤),1)->Chaîne1
:Else
:Chaîne1+"0"->Chaîne1
:End

Et paint(ux )
Code
:-63->Ymin
:-1->Ymax
:1->Xmin
:95->Xmax
:30->A
:30->B
:Imput"taper un guillemet",Chaîne3
:Lbl A
:Ptchange(B,-A
:PtChange(D,-E
:Codetouche->C
:A->D
:B->E
:If C=24
:B-1->B
:If C=25
:A-1->A
:If C=26
:B+1->B
:If C=34
:A+1->A
:If C=21
:Then
:If X=1
:Then
:Ptchange(B,-A
:Chaîne1+"Ligne("->Chaîne1
:B->¤
:PrgmVARTOCHAIN
:Chaîne1+",-"->Chaîne1
:A->¤
:PrgmVARTOCHAIN
:2->X
:Else
:Ptchange(B,-A
:Chaîne1+","->Chaîne1
:B->¤
:PrgmVTC2
:Chaîne1+",-"->Chaîne1
:A->¤
:PrgmVARTOCHAIN
:1->X
:End
:If C=41
:Chaîne1->Chaîne2
:PtChange(B,-A
:SauveImage1
:End
:If C=45
:Effdessin
:RappelImage1
:Chaîne2->Chaîne1
:End
:If C=22
:Then
:Chaîne1+"Texte("->Chaîne1"
:A->¤
:PrgmVARTOCHAIN
:Chaîne1+","->Chaîne1
:B->¤
:PrgmVARTOCHAIN
:Input"texte?",Chaîne0
:Chaîne1+Chaîne3+Chaîne0+Chaine3->Chaîne1
:Texte(A,B,Chaîne0:Goto A

PS: Ok adrien, de toutes facons ton prgm n'est pas mal non plus et puis c'était seulement que en disant que c'etait le sujet de mon Prgm, je parlais de ton prog de conversion d'img en pt-on.
KillerMapper le 23/06/2009 à 14:09
Donc on a toujours besoin des 2 programmes vartochain?
Horace le 11/09/2009 à 16:29
Bonjour,

J'ai un petit problème avec Paint... :
Prgm VARTOCHAIN a écrit :
:If ¤#0 *****¤=Le petit machin bizarre apres le Z(O barre) et # veut dire différent de(= barré)******
:Then
:Chaîne1+Souschaîne("123456789",Ent(¤),1)->Chaîne1
:Else
:Chaîne1+"0"->Chaîne1 <= Erreur ici (quand je lance VTC1 ET VTC2).
:End


VTC2 a écrit :
:¤/10->¤
:PrgmVARTOCHAINE
:¤-Ent(¤)->¤
:¤*10->¤
:PrgmVARTOCHAINE


paint a écrit :
:-63->Ymin
:-1->Ymax
:1->Xmin
:95->Xmax
:30->A
:30->B
:Imput"taper un guillemet",Chaîne3
:Lbl A
:Ptchange(B,-A
:PtChange(D,-E
:Codetouche->C
:A->D
:B->E
:If C=24
:B-1->B
:If C=25
:A-1->A
:If C=26
:B+1->B
:If C=34
:A+1->A
:If C=21
:Then
:If X=1
:Then
:Ptchange(B,-A
:Chaîne1+"Ligne("->Chaîne1
:B->¤
:PrgmVARTOCHAIN
:Chaîne1+",-"->Chaîne1
:A->¤
:PrgmVARTOCHAIN
:2->X
:Else
:Ptchange(B,-A
:Chaîne1+","->Chaîne1
:B->¤
:PrgmVTC2
:Chaîne1+",-"->Chaîne1
:A->¤
:PrgmVARTOCHAIN
:1->X
:End
:If C=41
:Chaîne1->Chaîne2
:PtChange(B,-A
:SauveImage1
:End
:If C=45
:Effdessin
:RappelImage1 <= Erreur ici (quand je lance Paint).
:Chaîne2->Chaîne1
:End
:If C=22
:Then
:Chaîne1+"Texte("->Chaîne1"
:A->¤
:PrgmVARTOCHAIN
:Chaîne1+","->Chaîne1
:B->¤
:PrgmVARTOCHAIN
:Input"texte?",Chaîne0
:Chaîne1+Chaîne3+Chaîne0+Chaine3->Chaîne1
:Texte(A,B,Chaîne0:Goto A


J'ai utilisé les tirets cupsmiley.gif, j'ai vérifié 5 fois (j'ai corriger deux erreurs mais rien), et j'ai renommer et remplacer VARTOCHAINE par VTC1.
Horace le 11/09/2009 à 16:31
:Imput"taper un guillemet",Chaîne3 et c'est normal que ça soit I M P U T et non I N P U T, avec un N ?
KillerMapper le 11/09/2009 à 17:18
Faute de frappe, c'est bien Input(.
Horace le 11/09/2009 à 18:05
Horace a écrit :
Bonjour,

J'ai un petit problème avec Paint... :
Prgm VARTOCHAIN a écrit :
:If ¤#0 *****¤=Le petit machin bizarre apres le Z(O barre) et # veut dire différent de(= barré)******
:Then
:Chaîne1+Souschaîne("123456789",Ent(¤),1)->Chaîne1
:Else
:Chaîne1+"0"->Chaîne1 <= Erreur ici (quand je lance VTC1 ET VTC2).
:End


VTC2 a écrit :
:¤/10->¤
:PrgmVARTOCHAINE
:¤-Ent(¤)->¤
:¤*10->¤
:PrgmVARTOCHAINE


paint a écrit :
:-63->Ymin
:-1->Ymax
:1->Xmin
:95->Xmax
:30->A
:30->B
:Imput"taper un guillemet",Chaîne3
:Lbl A
:Ptchange(B,-A
:PtChange(D,-E
:Codetouche->C
:A->D
:B->E
:If C=24
:B-1->B
:If C=25
:A-1->A
:If C=26
:B+1->B
:If C=34
:A+1->A
:If C=21
:Then
:If X=1
:Then
:Ptchange(B,-A
:Chaîne1+"Ligne("->Chaîne1
:B->¤
:PrgmVARTOCHAIN
:Chaîne1+",-"->Chaîne1
:A->¤
:PrgmVARTOCHAIN
:2->X
:Else
:Ptchange(B,-A
:Chaîne1+","->Chaîne1
:B->¤
:PrgmVTC2
:Chaîne1+",-"->Chaîne1
:A->¤
:PrgmVARTOCHAIN
:1->X
:End
:If C=41
:Chaîne1->Chaîne2
:PtChange(B,-A
:SauveImage1
:End
:If C=45
:Effdessin
:RappelImage1 <= Erreur ici (quand je lance Paint).
:Chaîne2->Chaîne1
:End
:If C=22
:Then
:Chaîne1+"Texte("->Chaîne1"
:A->¤
:PrgmVARTOCHAIN
:Chaîne1+","->Chaîne1
:B->¤
:PrgmVARTOCHAIN
:Input"texte?",Chaîne0
:Chaîne1+Chaîne3+Chaîne0+Chaine3->Chaîne1
:Texte(A,B,Chaîne0:Goto A


J'ai utilisé les tirets cupsmiley.gif, j'ai vérifié 5 fois (j'ai corriger deux erreurs mais rien), et j'ai renommer et remplacer VARTOCHAINE par VTC1.
Sangohan38 le 11/09/2009 à 18:44
Tu as bien utilisé les fonctions et non tapé lettre par lettre les fonctions.

Sangohan38
Horace le 11/09/2009 à 21:03
Sangohan38 a écrit :
Tu as bien utilisé les fonctions et non tapé lettre par lettre les fonctions.

Sangohan38


C'est possible que je me sois tromper de commande mais sinon j'ai pas recopié lettre par lettre j'ai déjà copié 5 programme et ils fonctionnent.

Pour moi :
Citation
Ptchange(

Donne :
Citation
Pt-change(


J'ai utilisé les bonnes commande pour Ymax, Ymin, etc... J'ai pris les variable dans Var, Les chaines dans les chaines... Donc j'ai du faire une erreur de fonction...

Pour moi :
Citation
Souschaîne(

Donne :
Citation
Sous-chaîne(


Mais je suis pas trop sur pour SauveImage1 et RappelImage1


EDIT :

Voila j'ai pris des screens de ma calculette ! Il y a tout le code dans le fichier .rar !!

Lien où tu peux le trouver :

Le fichier est un peu lourd car il y a 20 photos et mon appareil photo à un très bonne qualité... Donc beaucoup de pixel !

Il fait 56.65 MB extraterre.gif

En faite j'ai redimensionner tout les images a 25 % de leur taille normal.

Taille : 1.01 MB

Lien : http://www.megaupload.com/?d=2SQ1QXYX
Horace le 12/09/2009 à 08:51
Up ! Il n'y a pas une erreur dans le script ?? Comme des Then et End qui manque ?
Horace le 12/09/2009 à 08:55
Up ! Il n'y a pas une erreur dans le script ?? Comme des Then et End ou peut etre un pause qui manque ?

Exemple :

Paint a écrit :
:-63->Ymin
:-1->Ymax
:1->Xmin
:95->Xmax
:30->A
:30->B
:Input"taper un guillemet",Chaîne3
:Lbl A
:Ptchange(B,-A
:PtChange(D,-E
:Codetouche->C
:A->D
:B->E
:If C=24
:B-1->B
:If C=25
:A-1->A
:If C=26
:B+1->B
:If C=34
:A+1->A
:If C=21
:Then
:If X=1
:Then
:Ptchange(B,-A
:Chaîne1+"Ligne("->Chaîne1
:B->¤
:PrgmVARTOCHAIN
:Chaîne1+",-"->Chaîne1
:A->¤
:PrgmVARTOCHAIN
:2->X
:Else
:Ptchange(B,-A
:Chaîne1+","->Chaîne1
:B->¤
:PrgmVTC2
:Chaîne1+",-"->Chaîne1
:A->¤
:PrgmVARTOCHAIN
:1->X
:End
:If C=41
:Then
:Chaîne1->Chaîne2
:PtChange(B,-A
:SauveImage1
:End
:If C=45
:Then
:Effdessin
:RappelImage1 <= Erreur ici (quand je lance Paint).
:Chaîne2->Chaîne1
:End
:If C=22
:Then
:Chaîne1+"Texte("->Chaîne1"
:A->¤
:PrgmVARTOCHAIN
:Chaîne1+","->Chaîne1
:B->¤
:PrgmVARTOCHAIN
:Input"texte?",Chaîne0
:Chaîne1+Chaîne3+Chaîne0+Chaine3->Chaîne1
:Texte(A,B,Chaîne0:Goto A
:End (Ou peut être plus haut)
Rinrynque le 12/09/2009 à 11:44
Rajoute les then que j'ai oublié (ceux que tu as rajouté en rouge) et ça devrait marcher (ça marche chez moi).Rajoute aussi au début un SauveImage1.

Sinon pour le bug dan VARTOCHAIN:
Rajoute au début de paint:
Code
:":"->Chaîne1

Et remplace VARTOCHAINE par:

Code
PrgmVARTOCHAINE
:Chaîne1+SousChaine("0123456789",¤+1,1

Ca allège.
Horace le 12/09/2009 à 13:39
Je sais pas si j'ai tout comrpis beer.gif

Vianney a écrit :
Voila!! Il ne reste plus qu'a rappeler (Shift+STO) La chaîne1 dans un prgm
PS:Commandes
Pt change: Alpha
Ligne: Shift
Sauvegarder:Maths
Annuler depuis la derniere sauvegarde:ANNUL


Up ! Commande (Je les cherchais)

EDIT :
Je ne comprend pas comment ça fonctionne...
Horace le 12/09/2009 à 21:58
Je n'ai toujours pas réussi.... cry.gif
Rinrynque le 16/09/2009 à 16:07
Quand tu veux afficher les lignes de code d'un dessin de paint dans un programme, edite le programme fais Shift+Stocker(->)+Var+1(chaîne si je ne me trompe)+1(chaîne1)
Ca va rappeler dans ton prog la chaîne1 qui contient les lignes de code. Il ne te suffit plus qu'a enlever les " qui sont au début et à la fin de la ligne de code.
Pour les commandes, déplace le curseur (un petit point) avec les flèches.Trace une ligne avec SHIFT, un pt change avec [ALPHA] (touche orange). Suvegarde ton image si tu en est fier avec [Maths] et si tu t'es foiré, tu appuies sur [Annul] pour revenir à ta derniere sauvegarde.
Virgile-casio le 04/11/2009 à 20:04
Bonjour Vianney, qui me reconnaît ! godgrace.gif
Rinrynque le 09/05/2012 à 21:23
Un petit up de plusieurs siècles ^^ sur un prog que j'avais fait en 4e (je suis maintenant en 1e) et que je trouve tjours pas mal.
"Vianney", c'est moi, j'ai juste changé de pseudo depuis le temps.
+petits édits, j'ai honte d'avoir été aussi immature goutte.gif
Persalteas le 10/05/2012 à 00:25
Héhé happy.gif

Re-bienvenue sur le forum, Rinrynque...

Si en première tu as encore le temps de programmer, n'hésite pas happy.gif