Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Concours


Index du Forum » Concours » Le Fil d'Entraide du Concours de Rentrée 2023
Slyvtt Hors ligne Maître du Puzzle Points: 2309 Défis: 17 Message

Le Fil d'Entraide du Concours de Rentrée 2023

Posté le 08/10/2023 20:55

Bon comme à l'accoutumée, le concours de rentrée est apparu.

Le cru 2023 est basé sur le jeu de cartes du 1000 bornes que vous connaissez certainement Toutes et Tous.
Les modalités du concours sont ici : Concours Python de rentrée 2023-2024 ou dans le post original sur TIP.



Donc voici le fil d'entraide qui suivra ici. Je crée juste le lien, n'ayant pour le moment pas encore regardé en détail les scripts du jeu. Il s'agit de la zone d'échange habituelle sur la communauté Planète Casio afin d'échanger des infos, des outils, demander de l'aide ...

Bon code à Toutes et Tous, un grand merci à Critor et à la bande de codeurs du défi, et amusez-vous bien.


Slyvtt Hors ligne Maître du Puzzle Points: 2309 Défis: 17 Message

Citer : Posté le 31/12/2023 14:45 | #


Bon les Loustics

il vous reste grosso modo 15 jours pour améliorer vos IA et poster celles-ci pour combattre dans l'arène et espérer être dans les 3 finalistes de l'année.

Donc il est plus que temps de vous y mettre sérieusement, vous avez encore le temps, mais là faut plus procrastiner.

Sly
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Ptitjoz Hors ligne Membre Points: 222 Défis: 10 Message

Citer : Posté le 31/12/2023 14:57 | #


Bonne chance aux participants ! Quant à moi, je ne participe pas cette année.
Bon réveillon à ceux qui en font un.
Un peu poète, un peu geek, un peu rêveur, un peu écolo.

Critor Hors ligne Administrateur Points: 2614 Défis: 18 Message

Citer : Posté le 31/12/2023 15:08 | #


Ptitjoz a écrit :
Bonne chance aux participants ! Quant à moi, je ne participe pas cette année.

N'importe qui peut participer quasiment sans effort.

Tu as parfaitement le droit d'utiliser l'IA fournie par défaut avec les scripts.

Et si tu t'inscris sans téléverser de fichier, c'est d'ailleurs celle que nous utiliserons.

Et légèrement plus malin que ça, il y a 1 amélioration à décommenter dans le code de cette IA.
Ne0tux Hors ligne Membre d'honneur Points: 3524 Défis: 265 Message

Citer : Posté le 31/12/2023 17:57 | #


Salut, j'ai trouvé le temps pour lire les règles et parcourir le script Pyhton et encore une fois je trouve le sujet excellent !

J'aimerais bien participer, même si ce n'est pas poussé. Des questions du coup :

a-t-on le droit de modifier nouvelle_manche() ou fin_manche() de la class c_joueur, par exemple pour resetter son algo à chaque manche (le bandeau en commentaire dans le code "FIN DES FONCTIONS NECESSITANT D'ETRE AMELIOREES" me met le doute) ?

existe-t-il un accès au coup joué par le(s) autre(s) IA ?

si c'est négatif pour la question précédente, est-il possible d'accéder à la carte défaussée par une IA adverse (et donc déduire son coup), ou au moins la dernière carte de la défausse ?
Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Critor Hors ligne Administrateur Points: 2614 Défis: 18 Message

Citer : Posté le 31/12/2023 20:11 | #


Merci @Ne0tux pour ton message.

Ne0tux a écrit :
a-t-on le droit de modifier nouvelle_manche() ou fin_manche() de la class c_joueur, par exemple pour resetter son algo à chaque manche (le bandeau en commentaire dans le code "FIN DES FONCTIONS NECESSITANT D'ETRE AMELIOREES" me met le doute) ?

Tu peux modifier si ça t'aide à comprendre des trucs, mais il faudra que ton IA fonctionne avec les fonctions non modifiés. Un bon test pour savoir est de voir si elle marche sous l'outil permettant de tester des duels en ligne.

Ne0tux a écrit :
existe-t-il un accès au coup joué par le(s) autre(s) IA ?

Oui, ton IA est informée de tous les coups censés être visibles des autres joueurs.
Elle reçoit dans ce cas un triplet (num_joueur, carte, destination).

Ne0tux a écrit :
si c'est négatif pour la question précédente, est-il possible d'accéder à la carte défaussée par une IA adverse (et donc déduire son coup), ou au moins la dernière carte de la défausse ?

Oui, ton IA est informée des défausses puisque c'est un coup censé être visible des autres joueurs.
Elle reçoit donc ce cas un coup sous la forme (num_joueur, carte, SABOT).
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 01/01/2024 13:07 | #


j'ai une question: ou dois je mettre le code de mon IA? Et c'est quoi les regles du jeux 1000 bornes?
EDIT:C'est bon! je comprends
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 02/01/2024 16:58 | #


J'ai une question: la fonction "coup_invalide(coup)" sert a regarder si un coup un invalide mais du coté de mon IA? Et a t'on le droit de créée des variables dans mon code de IA? Et peut on savoir les infos des autres joueurs (points et km parcourus pendant la manche)?
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Critor Hors ligne Administrateur Points: 2614 Défis: 18 Message

Citer : Posté le 02/01/2024 17:20 | #


Tuper4 a écrit :
j'ai une question: ou dois je mettre le code de mon IA?

Tu peux reprendre le script ia_random.py et y compléter les fonctions indiquées.

Tuper4 a écrit :
Et c'est quoi les regles du jeux 1000 bornes?

Tu peux en comprendre une bonne partie rien qu'en jouant.
Sur calculatrice, tu peut démarrer une partie humain vs IA juste en lançant le script kb.py.
Sur ordinateur, tu peux spécifier les scripts à utiliser pour la partie, donc pour lancer le même genre de partie c'est python kb.py ia_clavier ia_random

Tuper4 a écrit :
J'ai une question: la fonction "coup_invalide(coup)" sert a regarder si un coup un invalide mais du coté de mon IA?

Un coup est un triplet avec :
- origine de la carte
- valeur de la carte
- destination de la carte

Le fait qu'il soit valide ou invalide ne dépend pas de l'IA qui appelle la fonction coup_invalide().

Tuper4 a écrit :
Et a t'on le droit de créée des variables dans mon code de IA?

Dans le fichier modifiable à soumettre, tu crées toutes les fonctions et variables que tu veux, à condition qu'elles n'interfèrent pas avec le bon fonctionnement de la partie.
Il est notamment demandé à ce que les fonctions et variables créées restent des éléments de la même classe.
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 02/01/2024 18:03 | #


Merci pour ta réponse Critor!
Je comprends maintenant mieux les regles a part deux cartes: qu'est ce que "I_CAMION_CITERNE" et "I_AS_VOLANT"? Je veux dire elle servent a quoi dans le jeu. Toutes les autres cartes, je les comprends merci!
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Dimartino Hors ligne Maître du Puzzle Points: 310 Défis: 2 Message

Citer : Posté le 02/01/2024 18:08 | #


Ce sont des sortes de joker qui t'immunisent contre les attaques correspondantes : le camion citerne contre les pannes d'essence et l'as du volant contre les accidents.
Mon projet du moment : Memen'Casio
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 02/01/2024 18:11 | #


Merci dimartino !
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 02/01/2024 18:26 | #


Je crois que je casse un peu trop la tete mais comment on fais pour piocher une carte (en ligne de code), car la fonction c_coup() a 3 parametres l'origine (dans ce cas, SABOT), carte, destination (ici, self.infos_joueur.num_joueur). mais que dois je mettre dans le parametre "carte"? puisque je ne sais pas c'est quelle carte qu'on pioche

EDIT: j'ai regarder dans le fichier kblibpub pour voir les cartes et est ce que c'est N_CARTES ?
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Critor Hors ligne Administrateur Points: 2614 Défis: 18 Message

Citer : Posté le 02/01/2024 21:22 | #


Tuper4 a écrit :
Je crois que je casse un peu trop la tete

Non, pas du tout, nous sommes là pour ça.

Tuper4 a écrit :
mais comment on fais pour piocher une carte (en ligne de code), car la fonction c_coup() a 3 parametres l'origine (dans ce cas, SABOT), carte, destination (ici, self.infos_joueur.num_joueur). mais que dois je mettre dans le parametre "carte"? puisque je ne sais pas c'est quelle carte qu'on pioche

Pour piocher, origine=SABOT, et destination = ton numéro de joueur.
Pour la carte que tu ne connais pas à l'avance, tu peux simplement mettre la valeur None, ce sera ignoré.
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 03/01/2024 10:25 | #


Ok Critor, Merci!
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 03/01/2024 11:49 | #


Et est ce que il y a une fonction pour voir les cartes de bottes que j'ai?
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Ne0tux Hors ligne Membre d'honneur Points: 3524 Défis: 265 Message

Citer : Posté le 04/01/2024 19:49 | #


Merci pour ta précédente réponse Critor, je suis rassuré qu'on puisse savoir ce que jouent les autres, ça semblait normal. Par contre je reste confus par rapport à la réponse à ma première question : a-t-on le droit de modifier traite_coup() de son IA (appelée même lors des autres tours) ou bien y a-t-il une façon plus naturelle/autorisée qui m'échappe de récupérer les coups adverses ? Concrètement, serait-il autorisé d'ajouter une ligne dans nouvelle_manche() de ia_random.py ?

Je peux déjà dire merci pour la (re)découverte du 1000 bornes : je joue encore régulièrement à des jeux de société et celui-ci était "enfantin" dans ma mémoire et donc la dernière partie trèèèèès lointaine, mais ne serait-ce qu'un rafraichissement sur les règles permet de voir qu'il y a une grosse dose de stratégie possible lorsque l'on compte les points.

Un autre merci anticipé sur la qualité de l'adaptation, honnêtement c'est flawless, ça fait super plaisir et le mode clavier permet de se plonger dans le sujet sans détour.

Et donc enfin, et là je ne sais pas si je dois dire merci, je suis mordu par le sujet. Je ne pense pas pouvoir réaliser dans le temps qu'il reste une véritable IA au sens renforcement par apprentissage, mais je vais essayer de faire un simple arbre de décision et voir où ça mène !
Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Ne0tux Hors ligne Membre d'honneur Points: 3524 Défis: 265 Message

Citer : Posté le 04/01/2024 19:51 | #


Tuper4 a écrit :
Et est ce que il y a une fonction pour voir les cartes de bottes que j'ai?


Oui bien sûr c'est possible !

J'écris de mémoire mais c'est quelquechose comme self.infos_joueur.bottes si tu veux connaitre les tiennes, ou self.infos_joueurs[i].bottes si tu veux connaitre les bottes du joueur i (tout du moins, celles jouées).

Quant aux bottes du père Noël, il fallait voir ça le mois dernier !
Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !
Tuper4 Hors ligne Membre Points: 832 Défis: 19 Message

Citer : Posté le 05/01/2024 13:03 | #


Merci Ne0tux!
Ne vous arrêtez pas quand vous êtes fatigé(e), arrêtez vous quand vous avez terminez.
Critor Hors ligne Administrateur Points: 2614 Défis: 18 Message

Citer : Posté le 06/01/2024 09:45 | #


Merci @Ne0tux pour ton gentil retour.

Ne0tux a écrit :
Merci pour ta précédente réponse Critor, je suis rassuré qu'on puisse savoir ce que jouent les autres, ça semblait normal. Par contre je reste confus par rapport à la réponse à ma première question : a-t-on le droit de modifier traite_coup() de son IA (appelée même lors des autres tours) ou bien y a-t-il une façon plus naturelle/autorisée qui m'échappe de récupérer les coups adverses ?

La fonction traite_coup() n'est pas modifiable, non.
Mais il me semble qu'elle fait déjà ce dont tu as besoin ; elle met à jour les informations auxquelles tu as accès via la liste infos_joueurs.

Ne0tux a écrit :
Concrètement, serait-il autorisé d'ajouter une ligne dans nouvelle_manche() de ia_random.py ?

Non plus. Il faut faire de son mieux avec la liste infos_joueurs.

Nous avons préféré nous occuper nous-mêmes du traitement des coups avec la mise à jour automatique des informations sur les différents joueurs de la partie, afin de rendre le concours plus accessible aux scolaires.

Bon courage à toi.
Critor Hors ligne Administrateur Points: 2614 Défis: 18 Message

Citer : Posté le 06/01/2024 19:18 | #


@Ne0tux, je refais une réponse plus précise.

Je vois que d'autres l'ont fait (et que ce n'est pas explicitement interdit dans l'annonce qui fait office de règlement), dont si tu estimes que la liste infos_joueurs ne te fournit pas suffisamment d'informations (notamment sur les cartes défaussées par les différents joueurs), n'hésite pas à modifier la fonction traite_coup() ainsi que toute autre fonction de la classe de l'IA, voir même à tout recoder si tu le souhaites.
De toutes façons, la fonction traite_coup() n'est appelée qu'avec des informations que tu as le droit de connaître.

Les seuls points à respecter sont ceux de l'annonce :
- pas d'intention frauduleuse
- pas de perturbation du bon fonctionnement des scripts appelants
- pas de modification des scripts appelants

Tu peux également rajouter toutes les fonctions et variables que tu veux, tant que ça reste dans la classe de l'IA.

Bon courage à toi pour la dernière ligne droite !
Ne0tux Hors ligne Membre d'honneur Points: 3524 Défis: 265 Message

Citer : Posté le 07/01/2024 09:55 | #


Merci pour ces précisions ! Que l'on puisse le faire ainsi me facilitera les choses ; promis ce sera fait proprement.

J'ai achevé une définition logique de base, plus qu'à l'implémenter :


Mes principaux jeux : Ice Slider - CloneLab - Arkenstone

La Planète Casio est accueillante : n'hésite pas à t'inscrire pour laisser un message ou partager tes créations !

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 52 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