Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Panoscapedecoder Dim 24 Déc 2023 - 18:19 | |
| Salut à tous ! Pour ceux que ça intéresse, voici le code d'un petit programme qui m'a permis d'encrypter rapidement des textes pour la préparation d'un escape game. On utilise des codes simples comme "avocat" qui signifie que le A deviendra un K. Donc on se place dans le tableau et on clique quand on a A en abcisse et K en ordonnée, puis on clique sur GO. On peut encore faire repasser le texte encodé vers le départ, ce qui m'a permis de vérifier que ça marche, en le décodant donc cette fois K devient A. On pourrait encore coder plusieurs fois de suite le même texte avec des "clés" différentes (elle aime, cassis etc.) - Code:
-
Caption 0,"Décodeur par substitution" ' Froggy One 21/12/23 ' height 0,800:width 0,800:color 0,0,127,127 dim i,j,ii,Lig,Col,a$,c$,t$,tt$,HLvar,VLvar,Decal,nb,x,y,Gclic label Locus,HLclic,VLclic,enT,Codecode,Inverse,Croix
button 11:left 11,600:top 11,2:width 11,120:caption 11,"Changer en chiffres" button 12:left 12,2:top 12,600:width 12,120:caption 12,"Changer en chiffres" grid 10:font_size 10,12:height 10,570:width 10,570 grid_column_width 10,20:grid_column 10,27 grid_row_height 10,20:grid_row 10,27 gosub enT alpha 14:font_size 14,12:left 14,140:top 14,580 a$="Horizontalement, l'alphabet d'origine.Verticalement, la correspondance." a$=a$+chr$(13)+"Je clique à l'intersection des deux.Par exemple, si T devient V (ou 22)," a$=a$+chr$(13)+"je clique dans la colonne du T à hauteur du V pour encoder." caption 14,a$ edit 15:font_size 15,12:top 15,640:left 15,2:width 15,568:height 15,50 text 15,"Ici se trouve le texte à encoder/décoder." button 16:left 16,700:top 16,700:caption 16,"Go" alpha 17:font_size 17,12:top 17,700:left 17,2:width 17,568:height 17,50 button 18:left 18,580:top 18,700:width 18,100:caption 18,"Copier au-dessus" ' on_click 10,Locus on_click 11,HLclic on_click 12,VLclic on_click 16,Codecode on_click 18,Inverse on_mouse_move 10,Croix ' END Locus: Gclic=Gclic+1:Gclic=mod(Gclic,2) ' caption 0,"ligne = " + str$(grid_y_to_row(10,mouse_y_position(10))-1)+" colonne = " + str$(grid_x_to_column(10,mouse_x_position(10))-1) Lig=grid_y_to_row(10,mouse_y_position(10)) Col=grid_x_to_column(10,mouse_x_position(10)) grid_clear 10,27,27:gosub enT for i=0 to 25 grid_write 10,i+2,Col,"=" grid_write 10,Lig,i+2,"=" next i grid_write 10,lig,Col,"X" return ' HLclic: HLvar=HLvar+1:HLvar=mod(HLvar,2) gosub enT return ' VLclic: VLvar=VLvar+1:VLvar=mod(VLvar,2) gosub enT return ' enT: if HLvar=0 caption 11,"Changer en chiffres" for i=0 to 25 grid_write 10,1,i+2,upper$(chr$(i+65)) next i end_if if HLvar=1 caption 11,"Changer en lettres" for i=0 to 25 grid_write 10,1,i+2,i+1 next i end_if if VLvar=0 caption 12,"Changer en chiffres" for i=0 to 25 grid_write 10,i+2,1,upper$(chr$(i+65)) next i end_if if VLvar=1 caption 12,"Changer en lettres" for i=0 to 25 grid_write 10,i+2,1,i+1 next i end_if return ' Codecode: Gclic=Gclic+1:Gclic=mod(Gclic,2) Decal=Lig-Col:Decal=mod(Decal+26,26):caption 0,Decal t$=text$(15) a$="":tt$="" for i=1 to len(t$) c$=lower$(mid$(t$,i,1)) if ((asc(c$)>96)and(asc(c$)<123)) nb=asc(c$)+Decal if nb>122 then nb=nb-26 a$=chr$(nb) else a$=c$ end_if tt$=tt$+a$ next i caption 17,"":caption 17,tt$ return ' Inverse: text 15,tt$:caption 17,"" return ' Croix: if Gclic=0 grid_clear 10,27,27:gosub enT x=grid_y_to_row(10,mouse_y_position(10)) y=grid_x_to_column(10,mouse_x_position(10))
for ii=0 to 25 grid_write 10,ii+2,y,"o" grid_write 10,x,ii+2,"o" next ii end_if return
| |
|