Posté le 08/10/2023 20:55
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 166 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
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
Citer : Posté le 08/10/2023 21:06 | #
Je suis partant pour faire une équipe PC si il y a d'autres gens qui veulent rejoindre
Caltos : G35+EII, G90+E (briquée )
Citer : Posté le 09/10/2023 10:16 | #
Bonne idée l'équipe PC, il faut y aller à fond !
Citer : Posté le 10/10/2023 19:39 | #
Juste deux mini astuces qui pourront vous servir:
si vous voulez savoir quelle est la dernière carte présente sur la pile de bataille (en gros si on vous a mis une attaque):
crte = self.infos_joueur.pile_bataille[-1]
ensuite vous pourrez vérifier si il s'agit d'une carte d'attaque avec
print( "Pas de carte de bataille à traiter : OK " )
else:
print("Il faut traiter cette carte de bataille")
de même la pile des cartes de vitesses est accessible avec
crte = self.infos_joueur.pile_bataille[-1]
En espérant que cela vous aide ...
Citer : Posté le 10/10/2023 19:40 | #
Ah merci Sly'
Je suis en train de travailler sur TD'PC : un Tower Defense sur G35+EII (Bien sûr que oui je travaille dessus )
Cursor Location
Proies
Citer : Posté le 13/10/2023 19:55 | #
J'essaie pour ma part désespérément de faire fonctionner la version PythonEx sur ma G90+E mais j'ai toujours un message d'erreur :
"Traceback (most recent call last):
File "<stdin>", line 1
SyntaxError: Invalid Syntax
>>>
"
Vous auriez une idée ?
Je n'ai jamais utilisé PythonExtra avant donc il y a peut être qq chose que je fais mal.
Peut être que je l'ai juste mal installé et qu'il en manque des morceaux.
Citer : Posté le 13/10/2023 21:36 | #
As-tu bien mis les scripts à la racine, et non pas dans un sous-dossier ?
Citer : Posté le 13/10/2023 21:42 | #
J'avais mis dans un sous dossier et effectivement le problème venait bien de là.
Merci bcp.
Citer : Posté le 13/10/2023 21:45 | #
Merci pour ton retour, bien rassuré que ça ait marché.
Contrairement à l'application Python de Casio, PythonEx et KhiCAS/Micropy ne vont pas chercher les scripts à importer dans le même dossier que celui du script que tu as lancé, mais uniquement dans la racine.
Citer : Posté le 14/10/2023 08:38 | #
Notez que c'est un bug qui devra être corrigé plus tard (import relatifs au dossier courant). Cela dit erreur de syntaxe c'est étonnant, je creuserai...
Citer : Posté le 14/10/2023 09:55 | #
A priori ça c'est dans micropy, pas dans PythonExtra, non ?
Je suis superbement étonné de la vitesse d'éxécution, ça tourne vraiment super bien. Le seul "souci" que je rencontre est que comme j'ai mis pas mal de "print" pour tracker le comportement de l'IA, ça scrabouille la sortie graphique car la console et la sortie graphique sont communes (ça pourrait être une belle évolution de splitter les deux).
Sinon c'est vraiment excellent, bravo !!!
Citer : Posté le 14/10/2023 10:00 | #
L'erreur de syntaxe oui, mais comme l'import relatif est certainement supporté, soit il faut que je configure MicroPython mieux soit l'erreur est indirecte, on verra.
En effet le rendu graphique est sur l'unique VRAM et le shell aussi, donc ça se superpose. Je pourrais séparer les VRAM, mais j'ai un peu peur de la consommation de mémoire (178 ko de tas en moins ça pourrait être problématique pour les scripts). Quand on aura accès à la mémoire supplémentaire utilisée par l'appli Python, je pourrai faire ça.
Citer : Posté le 14/10/2023 10:06 | #
Effectivement, les print() sont désactivés en cours de partie dans le cas de PythonExtra, pour éviter que la mise à jour de l'affichage console n'écrase l'affichage graphique.
Pour cela je sauvegarde la fonction print() en _print(), puis affecte print() avec une nouvelle fonction qui selon la configuration détectée appelle _print() ou pas.
PythonExtra n'est pas la seule plateforme/configuration concernée par le problème. Il y a aussi :
- HP Prime
- TI-83PCE/84+CE
- TI-Nspire avec Micropython
Citer : Posté le 14/10/2023 17:20 | # | Fichier joint
Salut, j'ai réussi à faire marcher le jeu mais je ne comprend pas certaine situations du jeu : ex sur la photo en PJ, je ne peux pas poser ma borne 75, je ne comprends pas pourquoi.
Quelqu'un pourrait m'expliquer ?
Et des fois le jeu marque allonge/extension je ne sais pas à quoi ça fait référence...
Citer : Posté le 14/10/2023 17:56 | #
tu dois dans un premier temps faire 700km tout pile donc tu ne peux pas poser plus qu'une borne 25km.
si tu atteints 700km, alors on te pose la question de l'allonge, a savoir si tu desire arreter ici ou aller à 1000km.
c'est pour ca que tu ne peux pas poser ta borne 75 pour le moment
Citer : Posté le 14/10/2023 20:44 | #
Merci Sly'
Citer : Posté le 14/10/2023 20:56 | #
Désolé pour le double post, j'ai une erreur à un moment donné, mais le jeu se ferme instant, c'est assez chiant parce que je n'ai pas le temps de lire l'erreur. Vous auriez un moyen pour éviter ça ?
Citer : Posté le 15/10/2023 09:06 | #
Pour celles et ceux qui joueraient sur PC avec une résolution d'écran petite, il y a risque que vous ne voyiez pas l'intégralité de l'écran. C'est arrivé hier à Ptitjoz en résolution 1366*768 et il ne voyait donc pas les mains de cartes :
Dans ce cas, il faut éditer le fichier pc7.py au niveau de la ligne 368
et changer la ligne suivante
pour la remplacer par
Initialement il est demandé à PySDL2 d'ouvrir une fenêtre de 640*480 avec un upscaling de x2 donc en fait une fenêtre de 1280x960 effectivement trop grande pour les faibles résolutions d'écran. En passant le facteur d'upscaling à x1, on revient à du véritable 640*480 et magie :
on a bien cette fois tout l'écran visible.
Pour les curieux, pas la peine de tenter un nombre flottant du style 1.5 ou 1.8, afin d'ajuster plus finement, cela ne fonctionnera pas, il faut un entier.
Citer : Posté le 15/10/2023 09:16 | #
Autre petite astuce, si vous voulez faire ressortir quelques messages important dans la console, il est sympa de pouvoir mettre un peu de couleur dans vos messages afin d'attirer votre oeil sur ce qui est vraiment important, je vous partage donc quelques petites fonctions que vous pourrez coller au tout début de votre script d'IA, juste après les lignes :
try:
from random import choice
except:
from urandom import choice
et avant la ligne
def __init__(self, num_joueur, nbr_joueurs, points_objectif):
...
Voici donc mes fonctions print_xxx() avec xxx un nom de couleur. Vous pourrez bien entendu jouer un peu avec et améliorer à votre sauce, c'est cadeau :
class Colors:
""" ANSI color codes """
BLACK = "\033[0;30m"
RED = "\033[0;31m"
GREEN = "\033[0;32m"
ORANGE = "\033[0;33m"
BLUE = "\033[0;34m"
PURPLE = "\033[0;35m"
CYAN = "\033[0;36m"
LIGHT_GRAY = "\033[0;37m"
DARK_GRAY = "\033[1;30m"
LIGHT_RED = "\033[1;31m"
LIGHT_GREEN = "\033[1;32m"
YELLOW = "\033[1;33m"
LIGHT_BLUE = "\033[1;34m"
LIGHT_PURPLE = "\033[1;35m"
LIGHT_CYAN = "\033[1;36m"
LIGHT_WHITE = "\033[1;37m"
BOLD = "\033[1m"
FAINT = "\033[2m"
ITALIC = "\033[3m"
UNDERLINE = "\033[4m"
BLINK = "\033[5m"
NEGATIVE = "\033[7m"
CROSSED = "\033[9m"
END = "\033[0m"
def print_red(skk):
print(Colors.RED + "{}".format(skk) + Colors.END)
def print_orange(skk):
print(Colors.ORANGE + "{}".format(skk) + Colors.END)
def print_yellow(skk):
print(Colors.YELLOW + "{}".format(skk) + Colors.END)
def print_green(skk):
print(Colors.GREEN + "{}".format(skk) + Colors.END)
def print_blue(skk):
print(Colors.BLUE + "{}".format(skk) + Colors.END)
def print_cyan(skk):
print(Colors.CYAN + "{}".format(skk) + Colors.END)
def print_purple(skk):
print(Colors.PURPLE + "{}".format(skk) + Colors.END)
Je pense que le principe est assez simple pour fignoler et vous permettre de compléter avec vos couleurs. C'est basé sur les Escape Code ANSI donc devrait fonctionner sur Win/Linux/Mac, par contre pas sur calculatrices, désolé.
Il alors de faire un appel à print_blue("mon message en bleu") par exemple pour avoir le texte écrit en bleu dans la console.
Citer : Posté le 15/10/2023 12:49 | #
Salut, d'abord merci Sly' pour ces astuces c'est incroyable !
J'aimerais accéder à la main de mon ia, pour ça je print(self.infos_joueur.main) mais je me retrouve avec des entiers allant de 1 à 19, ce qui est logique car dans le fichier kblibpub.py il y a :
I_LIMITATION, I_FIN_LIMITATION, I_PANNE_ESSENCE, I_POMPE_ESSENCE, I_CAMION_CITERNE, I_CREVAISON, I_ROUE_SECOURS, \
I_VEHICULE_INCREVABLE, I_ACCIDENT, I_REPARATIONS, I_AS_VOLANT, N_CARTES = range(20)
De ce que j'ai compris il définit un nb aléatoire pour chaque carte. Mais du coup, comment je fais pour savoir quel nb correspond à quelle carte ?
Citer : Posté le 15/10/2023 12:59 | #
Tu peux juste utiliser les acronymes des cartes, une carte 25 bornes == I_25_BORNES
Caltos : G35+EII, G90+E (briquée )