Hmm, j'ai essayé, c'est très compliqué pour plusieurs raisons. D'abord votre programme doit tenir dans l'écran si vous voulez qu'il génère son propre code.
Ensuite si vous voulez utiliser les Str, vous ne pouvez les afficher qu'avec Locate. Mais Locate ne gère pas les retours à la ligne, donc vous risquez de devoir afficher le Locate via un autre commande qu'elle-même, puisque Locate 1,1,"Locate 1,1," ne tient pas dans une ligne, donc ne peut pas être affiché par Locate.
Le fait qu'on ne puisse pas écrire un guillemet littéral sans l'échapper fait perdre un temps fou. Pour m'en sortir, j'ai besoin de 4 lignes au moins. x)
Je serais curieux de voir le résultat, si quelqu'un arrive à en faire un.
Edit : Si le programme génère son code dans une Str, alors c'est une toute autre affaire.
Je sais pas si afficher un résultat numérique compte pour afficher du code... x)
Dans tous les cas, bien joué. Je te propose maintenant (et ça sera fun si et seulement si je suis assez malin) d'écrire un quine qui affiche son code à gauche de l'écran.
Effectivement, je n'avais pas songé à la question de la taille de l'écran et le fait que sur une ligne on ne met pas grand chose.
Je suppose que vis à vis de ça, et de la solution de Zz, on peut faire le défi annexe qui consiste à écrire son code dans une String, si vous pensez que c'est plus intéressant, quitte à laisser ouverte la question d'un «vrai quine» à côté, bien que la réponse de Zz soit techniquement acceptable, je suppose !
Je n'ai pas ma machine là où je suis, c'était juste une petite idée si y'avait des gens que ça amusait d'y réfléchir, d'où le fait que j'ai posté sans savoir si c'était vraiment faisable… Désolé…
Pour afficher le texte à gauche, je propose le programme a.
Une fois qu'on a appuyé sur "exit" pour l'erreur syntaxe, le code du programme est affiché, à gauche.
En vrai la contrainte du texte qui tient sur l'écran rend le truc impossible, parce que le code serait bien trop grand.
Pour la chaîne, je saurais faire si on avait un moyen d'écrire un guillemet littéral. J'ai essayé en mettant un autre caractère à la place (mais une méthode plus compliquée comme printf("%c", 0x22) marcherait aussi), et j'ai « réussi ».
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd