Présentation premier et seul projet de programmation de la semaine – STOP – Cause probable : vacances, indisponibilité des programmeurs – STOP – Zezombye – STOP –
Zezombye a écrit :Pour les CPC, j'ai terminé BIDE 3.0
L'ajout principal est la mise en place de la
RSyntaxTextArea, ce qui apporte :
- Une meilleure gestion du texte, dont le Ctrl+Z, et la meilleure gestion des tabulations
- Une coloration syntaxique qui lague pas
- De l'autocomplétion unicode (taper
&thet puis faire entrée autocomplétera en θ)
J'ai également rajouté tous les caractères spécifiques à casio (par exemple le r chelou), en conséquences il y a 2 polices disponibles :
- DejaVu Avec Casio (police par défaut, basée sur DejaVu Sans Mono)
- Casio Graph (reproduction fidèle de la police de Casio qui m'a pris 6 h à faire è_é)
Il y a désormais possibilité de customiser :
- La couleur du texte, le fond et la couleur de la ligne sélectionnée
- La taille de la police (et la police en elle même)
On peut également choisir de ne pas avoir d'unicode, d'autocomplétion ou de choisir quels opérateurs ont des espaces lors de l'importation.
Toujours pour faciliter la programmation, il y a 4 ajouts qui vous serviront :
- Les macros, par exemple
#define vieJoueur M ou
#define map Mat A
- Un générateur de multi drawstat, il suffit de dessiner votre sprite et de copier coller le code généré
- L'importation de fichier png/bmp pour ajouter une picture
- Possibilité de tester automatiquement sur l'émulateur lors de la sauvegarde en g1m (évite de transférer sur la vraie calculatrice, ce qui peut être assez long)
Enfin, il est possible de se servir de BIDE en CLI :
--compile target.g1m prog1.bide prog2.bide... pour créer un g1m
--decompile prog.g1m /target/directory/ pour lire un g1m
Ainsi vous pourrez utiliser votre éditeur de texte favori sans problème
Quelques screenshots pour finir :
(oui ce sprite est très moche, c'est pour la démo
)
Téléchargement :
https://www.planet-casio.com/Fr/logiciels/voir_un_logiciel_casio.php?cat=6
On vient de m’avertir que malgré la petite taille de la base de données, on peut encore se permettre de ne pas écrire toutes les news en télégraphe, à condition d’écrire au moins en télégraphe dans les commentaires. Donc je me permets de finir cette news d’une manière plus usuelle, mais en contrepartie je vous prie de bien vouloir économiser les lettres dans les espaces de discussion. On va encore planter sinon. Bref, passez de bonnes vacances, soyez prêts pour les 7 Days CPC de la semaine prochaine et familiarisez-vous avec BIDE pour l’utiliser lors de ce concours !
Citer : Posté le 30/07/2017 19:26 | #
-... .. . -. .-. . -.-. ..- .- .-. - .. -.-. .-.. .
-- .. ... . .- .--- --- ..- .-. ... . -- -... .-.. . ... -.-- -- .--. .-
-... --- -. -. . .-. . ...- ..- . -.. . ... .--. .-. --- .--- . - ... -- . -- . ... .. - .- .-. -.. .. ...- .
...-.-
Mon blog ⋅ Mes autres projets
Citer : Posté le 30/07/2017 19:45 | #
56, 75, 20, 6C, 65, 20, 6E, 6F, 6D, 62, 72, 65, 20, 64, 65, 20, 66, 65, 61, 74, 75, 72, 65, 73, 20, 64, 65, 20, 42, 49, 44, 45, 2C, 20, 6A, 27, 61, 69, 20, 70, 6C, 75, 73, 20, 64, 27, 65, 78, 63, 75, 73, 65, 73, 20, 70, 6F, 75, 72, 20, 70, 61, 73, 73, 65, 72, 20, E0, 20, 63, F4, 74, E9, 20, 5E, 5E, 0D, 0A, 47, 6F, 20, 74, 65, 73, 74, 65, 72, 20, E7, 61, 20, 21, 0D, 0A, 42, 52, 45, 41, 4B, 2E, EOF
Citer : Posté le 30/07/2017 19:47 | #
--/./.-./-.-./..//
-/..-//.-/...//---/..-/-.../.-../.././/.-.././...//.../../--./-././...//-.././/..././.--./.-/.-./.-/-/../---/-.//-.-.--/
Pong400
PierrePaCiseaux (CP400)
Les Triangles
Menu
ASCII
Nombres premiers
Citer : Posté le 30/07/2017 20:12 | #
14 86 02 96 18 42 94 22 50 95 96 40 91 62 91 16 82 10 a4 5a 1a 14 86 02 96 18 42 90 85 52 20 21 48 64 48 a1 48 84 90 81 a1 81 a4 82 01 88 60 69 08 1a 10 95 94 a4 22 84 21 a4 49 59 20 25 61 08 a1 48 61 29 12 56 49 84 89 41 68 52 20 66 40 19 59 28 25 86 52 09 22 12 81 92 28 65 84 20 95 84 86 60 95 92 90 8a 10 85 52 09 26 21 20 48 64 48 a0 50 a0 20 92 56 4a 10 8a 52 48 48 66 20 61 29 08 a5 81 84 26 0a 42 12 18 58 09 86 68 68 42 15 48 60 84 a1 48 49 59 62 66 20 61 25 05 a1 84 25 61 20 29 86 49 a5 82 20 64 1a 44 59 14 90 20 89 29 61 84 20 92 94 60 60 a1 84 84 82 01 88 48 69 09 12 00 82 04 81 21 22 12 91 22 96 20 20 21 94 88 44 64 51
Edit : Bon courage pour le déchiffrer (c'est honnête et pas obfusqué, vraiment). Du coup, bravo Cake ! Voici un indice : `-.-. --- -.. .- --. . - .- .. .-.. .-.. . ..-. .. -..- .`.
Citer : Posté le 30/07/2017 20:22 | #
Algos de traduction :
""" Decoding utilities for this post on Planète Casio:
http://www.planet-casio.com/Fr/forums/lecture_sujet.php?id=14924
"""
import os
__symb = {
'': ' ',
'.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E', '..-.': 'F',
'--.': 'G', '....': 'H', '..': 'I', '.---': 'J', '-.-': 'K', '.-..': 'L',
'--': 'M', '-.': 'N', '---': 'O', '.--.': 'P', '--.-': 'Q', '.-.': 'R',
'...': 'S', '-': 'T', '..-': 'U', '...-': 'V', '.--': 'W', '-..-': 'X',
'-.--': 'Y', '--..': 'Z',
'.-.-': 'Ä', '.--.-': 'À', '..-..': 'Ê', '.-..-': 'È', '..--': 'Ü',
'-.-..': 'Ç', '----': 'CH', '--.--': 'Ñ', '---.': 'Ö',
'.----': '1', '..---': '2', '...--': '3', '....-': '4', '.....': '5',
'-....': '6', '--...': '7', '---..': '8', '----.': '9', '-----': '0',
'.-.-.-': '.', '--..--': ',', '-.-.-.': ';', '---...': ':',
'..--..': '?', '-.-.--': '!', '-.--.': '(', '-.--.-': ')',
'.-..-.': '"', '.----.': "'", '.-.-.': '+', '-....-': '-',
'-...-': '=', '-..-.': '/', '..--.-': '_',
'...-..-': '$', '.--.-.': '@', '.-..-': '<attention>',
'...---...': '<SOS>', '-.-': '<TRANSMIT>', '-.-.-': '<START>',
'...-.': '<ACK>', '..--..': '<REP>', '.-...': '<WAIT>',
'.-.-.': '<END>', '...-.-': '<ENDTRANS>'
}
def getletter(seq):
return __symb[seq]
def make_hex(raw, sep=None, skip_last=False):
tab = raw.split(sep)
if skip_last:
tab = tab[:-1]
return list(map(lambda x: int(x.strip(), 16), tab))
def decode_cake(raw):
text = ''
for word in raw.splitlines():
for let in word.split():
text += getletter(let)
text += os.linesep
return text[:-1]
def decode_fmc(raw):
l = make_hex(raw, sep=',', skip_last=True)
return ''.join(map(chr, l))
def __getlegowords(raw):
for word in raw.split('//'):
word = word.strip()
if not word: continue
seq = ''
for let in word.split('/'):
let = let.strip()
if not let: continue
seq += getletter(let)
yield seq
def decode_lego(raw):
return ' '.join(__getlegowords(raw))
def decode_lephe(raw):
# Get the bits.
b = bytes(make_hex(raw))
s = ''.join(map(lambda x: bin(x)[2:].zfill(8), b))
# Get the text.
text = ''
for i in range(0, len(s), 2):
text += ['.', '-', '/'][int(s[i:i+2], 2)]
return decode_lego(text)
def decode_cake2(raw):
# Get the bits.
b = bytes(make_hex(raw))
raw = ''.join(map(lambda x: bin(x)[2:].zfill(8), b))
# Get the text.
text = ''
seq = ''
while raw:
cur = '0' if raw[0] == '1' else '1'
num = raw.find(cur)
if num < 0: num = len(raw)
raw = raw[num:]
if num == 1:
seq += '.'
elif num == 2:
seq += '-'
elif num == 3:
text += getletter(seq)
seq = ''
elif num == 4:
text += getletter(seq)
seq = ''
text += ' '
elif num >= 5:
break
if seq: text += getletter(seq)
return text
def decode_cake3(raw):
# Get the bits.
b = bytes(make_hex(raw))
raw = ''.join(map(lambda x: bin(x)[2:].zfill(8), b))
# Get the hole sequence.
allseq = ''
while len(raw) >= 5:
seq = ['.. ', '---', '. -', '...'][int(raw[3:5], 2)]
if raw[0] == '1':
seq = seq[::-1]
if raw[2] == '1':
seq = seq[0] + seq[2]
if raw[1] == '1':
seq = seq[1:]
raw = raw[5:]
allseq += seq
words = [x.split() for x in allseq.split(' ')]
for i in range(len(words)):
words[i] = ''.join(map(getletter, words[i]))
return ' '.join(words)
# ---
# Testing zone.
# ---
__cake = """\
-... .. . -. .-. . -.-. ..- .- .-. - .. -.-. .-.. .
-- .. ... . .- .--- --- ..- .-. ... . -- -... .-.. . ... -.-- -- .--. .-
-... --- -. -. . .-. . ...- ..- . -.. . ... .--. .-. --- .--- . - ... -- . -- . ... .. - .- .-. -.. .. ...- .
...-.-"""
__fmc = """\
56, 75, 20, 6C, 65, 20, 6E, 6F, 6D, 62, 72, 65, 20, 64, 65, 20, 66, 65, 61, 74, 75, 72, 65, 73, 20, 64, 65, 20, 42, 49, 44, 45, 2C, 20, 6A, 27, 61, 69, 20, 70, 6C, 75, 73, 20, 64, 27, 65, 78, 63, 75, 73, 65, 73, 20, 70, 6F, 75, 72, 20, 70, 61, 73, 73, 65, 72, 20, E0, 20, 63, F4, 74, E9, 20, 5E, 5E, 0D, 0A, 47, 6F, 20, 74, 65, 73, 74, 65, 72, 20, E7, 61, 20, 21, 0D, 0A, 42, 52, 45, 41, 4B, 2E, EOF"""
__lego0 = "--/./.-./-.-./..//"
__lego1 = """\
-/..-//.-/...//---/..-/-.../.-../.././/.-.././...//.../../--./-././...//\
-.././/..././.--./.-/.-./.-/-/../---/-.//-.-.--/"""
__lephe = """\
14 86 02 96 18 42 94 22 50 95 96 40 91 62 91 16 82 10 a4 5a 1a 14 86 02 96 18 42 90 85 52 20 21 48 64 48 a1 48 84 90 81 a1 81 a4 82 01 88 60 69 08 1a 10 95 94 a4 22 84 21 a4 49 59 20 25 61 08 a1 48 61 29 12 56 49 84 89 41 68 52 20 66 40 19 59 28 25 86 52 09 22 12 81 92 28 65 84 20 95 84 86 60 95 92 90 8a 10 85 52 09 26 21 20 48 64 48 a0 50 a0 20 92 56 4a 10 8a 52 48 48 66 20 61 29 08 a5 81 84 26 0a 42 12 18 58 09 86 68 68 42 15 48 60 84 a1 48 49 59 62 66 20 61 25 05 a1 84 25 61 20 29 86 49 a5 82 20 64 1a 44 59 14 90 20 89 29 61 84 20 92 94 60 60 a1 84 84 82 01 88 48 69 09 12 00 82 04 81 21 22 12 91 22 96 20 20 21 94 88 44 64 51"""
__cake2 = """\
62 BB 15 CD 30 DB B3 22 28 C2 9D BB 17 31 1B 9E 6E E4 5D 89 79 76 64 5C 8A 77 23 11 21 44 50 9B B7 33 B2 24 45 08 DC 91 98 D1 39 BB AF 24 C0"""
__cake3 = """\
B0 22 A1 58 CE 62 AA A2 40 86 89 09 35 31 53 86 94 4D 39 52 34 08 49 AA C6 73 15 29 12 6C D4 74 CD 54 82 24 F4 C5 5A 46 D4 6D A9 54 86 21 26 C5 18 84 54 A0 49 E9 CA B6 95 63 39 8A B4 8D A5 58 CE 62 80 43 57 4E 55 8C E6 2A 70 D2 89 AA 90 97 73 35 2B 6A D0 81 B5 AB 2A AA 13 34 E6 28 02 31 26 40 5E D0 B6 AD AD 59 8A 35 A0 40 28 C4 22 88 68 90 93 53 35 23 28 C4 BB 94 23 59 CA B1 9C CD 47 4C 81 B5 22 4D 8A 94 6D A9 5B 56 D2 B5 AB 6A D6 73 35 1D 46 DA 81 0D 6D 6A DA 62 95 58 39 4C 50 08 A9 2A 4C 55 A4 6D 33 56 21 A2 41 5E 55 21 0C 40 08 46 21 20 65 56 12 06 9C CD 54 86 05 DC C5 18 CE 66 A3 A6 28 84 81 0D 08 13 4A 11 85 5D 5B 4A B1 9C C5 4A 44 9B 35 1D 46 DA D5 48 61 56 12 BC B5 6D 48 90 21 94 49 B1 40 8C 1C AD 32 0E 51 08 AB 6A DA 72 84 02 40 86 54 20 4B DB 4E 51 85 05 55 44 D3 99 03 2A B0 90 20 65 56 1A B3 15 6D 4A C4 21 88 43 12 04 BC AC C5 18 84 D5 48 65 5A 46 D2 98 A0 11 53 82 A0 43 18 CC D4 AC 43 00 56 15 8C E6 69 CC D5 88 66 6A DA 81 95 55 1A 46 D5 B4 C5 18 CE 62 AB 35 1A CE"""
if __name__ == '__main__':
#print(decode_cake(__cake))
#print(decode_fmc(__fmc))
#print(decode_lego(__lego0))
#print(decode_lego(__lego1))
#print(decode_lephe(__lephe))
#print(decode_cake2(__cake2))
print(decode_cake3(__cake3))
# End of file.
Mon blog ⋅ Mes autres projets
Citer : Posté le 30/07/2017 20:26 | #
Le code de Legolas est simple à déchiffrer, ce n'est (pas comme le tien, d'après Legolas) que du morse.
Citer : Posté le 30/07/2017 22:55 | #
62 BB 15 CD 30 DB B3 22 28 C2 9D BB 17 31 1B 9E 6E 45 D8 97 97 66 45 C8 A7 72 31 12 14 45 09 BB 73 3B 22 44 50 8D C9 19 8D 13 9B BA F7 23 6E 67 2E C6 44 50
EDIT : Je me suis un peu fail (je sais pas trop comment j'ai fait). Voici la version un peu améliorée (ça suit le même principe, j'ai juste ajouté un petit truc et corrigé ce qui existait déjà) :
62 BB 15 CD 30 DB B3 22 28 C2 9D BB 17 31 1B 9E 6E E4 5D 89 79 76 64 5C 8A 77 23 11 21 44 50 9B B7 33 B2 24 45 08 DC 91 98 D1 39 BB AF 24 C0
Mon blog ⋅ Mes autres projets
Citer : Posté le 30/07/2017 23:21 | #
pourquoi s'embêter avec du morse, suffit d'écrire plus petit et ça prend moins de place
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 31/07/2017 11:23 | #
B0 22 A1 58 CE 62 AA A2 40 86 89 09 35 31 53 86 94 4D 39 52 34 08 49 AA C6 73 15 29 12 6C D4 74 CD 54 82 24 F4 C5 5A 46 D4 6D A9 54 86 21 26 C5 18 84 54 A0 49 E9 CA B6 95 63 39 8A B4 8D A5 58 CE 62 80 43 57 4E 55 8C E6 2A 70 D2 89 AA 90 97 73 35 2B 6A D0 81 B5 AB 2A AA 13 34 E6 28 02 31 26 40 5E D0 B6 AD AD 59 8A 35 A0 40 28 C4 22 88 68 90 93 53 35 23 28 C4 BB 94 23 59 CA B1 9C CD 47 4C 81 B5 22 4D 8A 94 6D A9 5B 56 D2 B5 AB 6A D6 73 35 1D 46 DA 81 0D 6D 6A DA 62 95 58 39 4C 50 08 A9 2A 4C 55 A4 6D 33 56 21 A2 41 5E 55 21 0C 40 08 46 21 20 65 56 12 06 9C CD 54 86 05 DC C5 18 CE 66 A3 A6 28 84 81 0D 08 13 4A 11 85 5D 5B 4A B1 9C C5 4A 44 9B 35 1D 46 DA D5 48 61 56 12 BC B5 6D 48 90 21 94 49 B1 40 8C 1C AD 32 0E 51 08 AB 6A DA 72 84 02 40 86 54 20 4B DB 4E 51 85 05 55 44 D3 99 03 2A B0 90 20 65 56 1A B3 15 6D 4A C4 21 88 43 12 04 BC AC C5 18 84 D5 48 65 5A 46 D2 98 A0 11 53 82 A0 43 18 CC D4 AC 43 00 56 15 8C E6 69 CC D5 88 66 6A DA 81 95 55 1A 46 D5 B4 C5 18 CE 62 AB 35 1A CE
Mon blog ⋅ Mes autres projets
Citer : Posté le 03/08/2017 18:55 | #
Cool, le générateur de g1m en CLI et la GUI sont-ils un seul programme ?
Citer : Posté le 03/08/2017 18:57 | #
Oui, Breizh voulait un compilateur séparé mais vu qu'on est pas à 5 Mo près on peut utiliser BIDE.jar tout comme on utiliserait un compilateur séparé.
Ecrivez vos programmes basic sur PC avec BIDE
Citer : Posté le 03/08/2017 19:01 | #
Breizh a raison, mieux vaut créer une transfo séparé de la GUI Et une l'un pour faire la passerelle ( et éviter les appels bancals interlogiciel en CLI). (après, c'est le type d'architecture qui me fait banduler alors fais comme tu veux , j'aime avoir pleins de libs dans mon /usr/lib :3 )
Citer : Posté le 03/08/2017 19:13 | #
« On est pas à 5 Mio près » Si
Citer : Posté le 03/08/2017 20:02 | #
La taille d'un programme importe généralement peu, sauf dans le cas d'applications mobiles et des jeux ou que tu sois Breton.
Citer : Posté le 03/08/2017 23:30 | #
On est pas à 5 megas près
Faisons-le, et voyons après
Tu verras qu'un code dégueulasse
Ça vaut bien toutes les paires de claques
Citer : Posté le 04/08/2017 00:39 | #
Vu que de toute façon, tu utilises Java, vas-y franchement. On s'en branle un peu que ce soit un poil lourd pour ce que c'est, du moment que c'est suffisamment léger et suffisamment rapide.
Mon blog ⋅ Mes autres projets