Coinche!

De L'Arche
Aller à : Navigation, rechercher
Coinche!
{{#if:|[[Image:{{{logo}}}|{{#if:|{{{logosize}}}|250px}}| ]]}}
Instigateur DaarkMoon
Collaborateur {{#if:Fent|Fent|Aucun}}
But Bot IRC pour jouer à la coinche
Faisabilité Simple
Temps 100h maximum
Avancement 1er codes
Date de fin aucune



Détails

Pourquoi

On désire pouvoir coincher en stage (peu importe le lieu de chacun), faut trouver un moyen de coincher ! L'idée est de faire notre propre système (ceux sur internet étant... pas terrible).

But final

Un bot IRC pouvant gerer une partie de coinche (idéalement plusieures), avec les options suivante :

  • Règle strictes/souple : le bot contrôle la validité du coup, si il n'est légal il le bloque (strictes) ou signale juste une erreur (souples)
  • Salle privées ne pouvant pas êtres rejoint sans invitations
  • Gestions des Déconections/remplacements
  • Intégration de ce bot dans un bot plus généraliste (projet EBIM)

Comment

Bot codé en Python (via irclib), et hébergé sur dismorphia (reste la question du login)

Organisation

Pré-requis

Techniques

  • Connaissances des règles de la coinche
  • Codage en python
  • Base du protocole IRC

Ressources

Tutoriel

Documentation

Fichiers existants

http://dismorphia.info/~fent/Coinche!/

Travail préliminaires de Fent

Algorithme (dans la peau...)

Je (Fent) présenterai mon idée ici quand j'aurai le temps de faire de la dactylographie.


les différentes classes: (very ugly version)

Carte

(pour 1 carte)


Attributs
  • Couleur: 4 valeurs pour les 4 couleurs
  • Valeur: 8 valeurs pour les 8 cartes par couleur

à voir si inclus dans la classe ou non :

  • Atout: dit si la carte est l'atout ou pas
  • Points: valeur en point de la carte (dépend des 3 attributs précédents)
  • Valeur de force: sur une échelle de 0 à 15 (les atouts étant supérieurs et allant de 8 à 15) (dépend de valeur et atout)
Méthodes
Mettre atout (couleur choisie)
   penser à mettre à jour la valeur de force, l'atout, et les points

Jeu de 32 cartes

(pour mélanger au début et distribuer et couper par la suite)

Attributs
  • Nombre de couleurs (4 quoi...)
  • Nombre de carte de chaque couleur (et ordre de force => 8)
  • Tableau répertoriant les cartes (tableau de 32 objets de classe carte, l'ordre est important!)
Méthodes
  • Mélanger jeu (au début seulement sinon certains vont râler...)
  • Couper jeu (prend un nombre de la part du joueur et éventuellement l'accommoder un peu de façon à ne pas pouvoir prévoir les jeux (algo aléatoire))
  • Distribuer cartes (aux 4 joueurs en partant du joueur qui annonce en 1er, si on veut pointiller, on peut laisser le joueur qui est censé distribuer choisir quand mettre que 2 cartes)
  • Regrouper les plis des 2 équipes (choix dans l'ordre de récupération à discuter....)

les objets temporaires, pas nécessaire de créer une classe pour:

Jeu d'un joueur

(cartes appartenant à un joueur)


Attributs
Méthodes

Pli en cours

(où il faut savoir qui est maître pour la suite)


Attributs
Méthodes

Plis fait par le binôme

(pour compter les points et regrouper les cartes avant coupe et distribution)


Attributs

Annonces et points

Pour les annonces, la question est de savoir si on contraint les joueurs à jouer strictement suivant les règles ou si on laisse le tour d'enchères assez libre pour l'ambiance. Disons que ça reste sympa de pouvoir interagir entre les joueurs. Alors que si le bot t'empêche de parler parce que c'est pas à toi d'annoncer, c'est moins fun. Bon, ça signifie pas pour autant que l'on a le droit de faire des annonces bidons à la "25, piquette".

Pour les points, pareil, est-ce que l'on automatise tout ou on laisse une marge de manoeuvre pour l'homme comme pour le comptage des étoiles, qui arrange bien le monde quand on en zappe 3 °°'

optique choisie

Pour l'instant, autant faire le jeu en mode "sans échec". C'est-à-dire que le bot vérifie que tout se passe bien (pas de triche autorisée, annonce faite sans intervention d'autres joueurs sauf pour coincher, comptage des points et des étoiles fait par le bot pour éviter les erreurs).

Par la suite, on pourra éventuellement modifier ça pour rendre le jeu plus "humain" donc moins parfait.