Liens connexes

Dépêche modérée par

Dépêche éditée par

: Kitsune 2.0 : jeu de lettres et de chiffres

Posté par Lapinot (page perso, ). Modéré le 12 juin 2007.
0
Kitsune est un logiciel libre destiné à résoudre les problèmes de chiffres du jeu télévisé "Des chiffres et des lettres". Etant donné un compte, il calcule toutes les façons de le résoudre, ou, à défaut, d'obtenir la meilleure approximation. Kitsune permet donc au téléspectateur de pallier aux (rares) défaillances de l'animateur de l'émission, mais également au candidat potentiel de s'entraîner sur des tirages aléatoires.

La version 2.0 apporte la possibilité de rentrer sa solution, ce qui permet de jouer dans des conditions approchant celles des candidats de l'émission. Si le joueur a rentré la solution du problème (ou la meilleure approximation), le chronomètre s'arrête et toutes les solutions sont affichées.

Kitsune a été programmé avec Qt4. Il est distribué sous licence GPL, et disponible sous Linux, Mac et Windows.

> Lire la suite (31 commentaires, moyenne: 2).   [dépêche : 1409 caractères]

Il est possible de jouer avec un plus petit nombre de plaques et des comptes plus petits, pour rendre le jeu plus facile. Cette fonctionnalité est intéressante pour le joueur débutant, mais aussi pour les enseignants de l'école primaire ou du collège qui voudraient entraîner leurs élèves au calcul mental. Ils peuvent alors soit leur faire utiliser le programme (après l'avoir paramétré comme désiré), soit préparer une série de comptes de la difficulté voulue.

Autre fonctionnalité : Kitsune essaye de simplifier du mieux possible les "solutions équivalentes". Par exemple, il n'est pas utile d'afficher 8x100 et 100x8, donc une seule de ces deux opérations sera affichée.

Enfin, le programme a accessoirement permis d'obtenir un certain nombre de statistiques essentielles telles que :


Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Bon entraînement

Posté par gromf () le 12/06/2007 à 14:55. (lien). Évalué à 3.

Voilà un bon entraînement pour ma faculté de calcul mental qui a tendance à se ramollir !

Beau travail.

Une version texte en C "pur"

Posté par zx81 () le 12/06/2007 à 15:33. (lien). Évalué à 2.

Voila un bout de code pondu par un pote et qui doit bien avoir 20/25 ans... (le code, pas lui :-) A l'époque, on arrivait tout juste à rester sous les 45 secondes... Avec les machines actuelles c'est évidemment instantané ! Bon, allez, on va dire que c'est du Gpl 2+ :-)

/* contebon.c */
#include "math.h"
/* #include "process.h" */
#include "stdio.h"
#include "string.h"

unsigned _stklen = 60000U ;

#define MAXNB 6

typedef struct {
  long val;
  char text[80];
  } elt_rech;

long obj,best_delta;

int cherche(elt_rech jeu[])
{
int i;
for(i=0;jeu[i].val;i++)
  {
  int j;
  if(labs(jeu[i].val-obj)<best_delta)
    {
    best_delta=labs(jeu[i].val-obj);
    printf("%s=%ld\n",jeu[i].text,jeu[i].val);
    if(jeu[i].val==obj)return(1);
    }
  for(j=i+1;jeu[j].val;j++)
    {
    elt_rech jeulocal[MAXNB+1];
    long big,small;
    char tbig[80],tsmall[80];
    int k,nbout=1;
    for(k=0;jeu[k].val;k++)
      if(k!=i&&k!=j)
        {
        jeulocal[nbout].val=jeu[k].val;
        strcpy(jeulocal[nbout].text,jeu[k].text);
        nbout++;
	}
    jeulocal[nbout].val=0;
    if(jeu[i].val>jeu[j].val)
      {
      big=jeu[i].val;
      small=jeu[j].val;
      strcpy(tbig,jeu[i].text);
      strcpy(tsmall,jeu[j].text);
      }
    else
      {
      big=jeu[j].val;
      small=jeu[i].val;
      strcpy(tbig,jeu[j].text);
      strcpy(tsmall,jeu[i].text);
      }
    jeulocal[0].val=big+small;
    sprintf(jeulocal[0].text,"(%s+%s)",tbig,tsmall);
    if(cherche(jeulocal))return(1);
    if(big!=small)
      {
      jeulocal[0].val=big-small;
      sprintf(jeulocal[0].text,"(%s-%s)",tbig,tsmall);
      if(cherche(jeulocal))return(1);
      }
    jeulocal[0].val=big*small;
    sprintf(jeulocal[0].text,"%sx%s",tbig,tsmall);
    if(cherche(jeulocal))return(1);
    if(!(big%small))
      {
      jeulocal[0].val=big/small;
      sprintf(jeulocal[0].text,"(%s/%s)",tbig,tsmall);
      if(cherche(jeulocal))return(1);
      }
    }
  }
return(0);
}

int main()
{
short nbnb,i;
elt_rech jeu[MAXNB+1];
printf("Combien de nombres ");
scanf("%d",&nbnb);
if(nbnb>MAXNB)
  {
  printf("Pas plus que 6.\n");
  exit(0);
  }
for(i=0;i<nbnb;i++)
  {
  printf("Nombre %d ",i+1);
  scanf("%ld",&jeu[i].val);
  sprintf(jeu[i].text,"%ld",jeu[i].val);
  }
jeu[nbnb].val=0;
printf("Tri des valeurs ....");
for(i=0;i<nbnb;i++)
  {
  int j;
  for(j=i+1;j<nbnb;j++)if(jeu[i].val<jeu[j].val)
    {
    elt_rech swap;
    swap=jeu[i];
    jeu[i]=jeu[j];
    jeu[j]=swap;
    }
  }
for(i=0;i<nbnb;i++)printf(" %ld",jeu[i].val);
printf("\nObjectif ");
scanf("%ld",&obj);
best_delta=labs(obj-jeu[0].val);
if(cherche(jeu))printf("Solution exacte trouvee\n");
else printf("Solution approchee trouvee\n");
}

Paquet debian

Posté par mac_is_mac (page perso, ) le 12/06/2007 à 18:46. (lien). Évalué à 1.

C'est sympa, il y a un paquet debian, malheureusement seulement pour l'architecture i386.

J'ai téléchargé les sources; malheureusement elles ne contiennent pas le packaging qui permettrait de refaire facilement un paquet pour une autre architecture (amd64 dans mon cas)

Voilà, une petite requête pas méchante; et bravo pour le boulot.

Merci !

Posté par fleny68 () le 12/06/2007 à 19:37. (lien). Évalué à 2.

ça méritait bien une petit billet sur la mise à jour:
http://ticeblog.ycombe.net/index.php/2007/06/12/93-kitsune-2(...)

Bon, après avoir testé je peux confirmer: les neurones s'avachissent avec l'âge.

Dis, M'sieur, tu peux me faire le même avec la possibilité d'enregistrer une série de tirage à l'avance ? C'est pour faire des séries progressives.

--
Non, rien

Pallier.

Posté par Samuel V. () le 12/06/2007 à 19:37. (lien). Évalué à 2.

Il faut bien que quelqu'un fasse la remarque, et je me dévoue volontiers : le verbe pallier est un verbe transitif.

Autrement dit, on peut pallier quelque chose, mais pas pallier à quelque chose.

Où sont les lettres ?...

Posté par xavier dumont () le 13/06/2007 à 07:35. (lien). Évalué à 2.

Président du fanclub de Christine Fabréga, la première et unique présentatrice du "Mot le plus long (TM)", blonde cousine des regrettées Jacqueline Caurat et Catherine Langeais et en tant que secrétaire perpétuel de la fondation Max Favalelli, je proteste officiellement contre l'absence dans ce jeu d'un module dédié au premier et incontestablement primordial jeu de l'émission créée par notre grand gourou Armand Jammot (Dieu le garde en son paradis !)

Les ignares oublient souvent que "les chiffres" ne sont qu'un appendice rajouté après bien des années d'émission.

Vive le Mot le plus long !

Le renard !

Posté par THR4K (page perso, ) le 13/06/2007 à 10:17. (lien). Évalué à 1.

Bien que je préfère de loin les lettres aux chiffres, je ne peux m'empêcher de dire combien j'aime cette mascotte et la trouve excellente ; avec elle, c'est tout de suite beaucoup plus ludique, bravo pour le concept !

L'animateur télé "Des chiffres et des lettres" ne tient vraiment pas la comparaison, c'est d'ailleurs, amha, ce qui manque cruellement à l'émission pour battre des records d'audience. :-D


PS:
Et non, mes origines ne sont pas nippones, comme quoi...

--
THRAK (def.) :1) A sudden and precise impact moving from intention and commitment, in service of an aim. 2) 117 guitars almost hitting the same chord simultaneously.

Un peu faiblard...

Posté par calandoa () le 13/06/2007 à 12:23. (lien). Évalué à 1.

Et si on veut faire 21 avec 1, 5, 6 et 7? Si au moins on pouvait compter sur ses doigts, mais non... (à moins de savoir plier ses doigts avec suffisament de précision pour encoder des nombres rationnels :)

Revenir en haut de page