Articles précédents : Logiciel
- [10] Qt Jambi est enfin disponible
- [20] Nexuiz 2.3
- [7] Trophy : aidez un projet Libre
- [40] Open Sound System de retour vers le libre
- [57] Emacs 22 est déclaré stable
- [105] GPL3, TiVo ou TiVo pas ?
- [18] Géométrie dynamique avec CaRMetal
- [52] Mozilla finance un projet : 100 000 $ pour Democracy Player
- [28] Gérez vos dépôts subversion avec USVN
- [16] Sortie de NuFW 2.2, le pare-feu routeur authentifiant
Liens connexes
- Kitsune (1011 hits)
- Copies d'écran (1381 hits)
- Règles du jeu télévisé (229 hits)
- Notice sur Framasoft (164 hits)
Dépêche modérée par
Dépêche éditée par
Logiciel : Kitsune 2.0 : jeu de lettres et de chiffres
Posté par Lapinot (page perso, ). Modéré le 12 juin 2007.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.
Kitsune (1011 hits)
Copies d'écran (1381 hits)
Règles du jeu télévisé (229 hits)
Notice sur Framasoft (164 hits)
> Lire la suite (31 commentaires, moyenne: 2). [dépêche : 1409 caractères]
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 :
- Un problème choisi aléatoirement a 93.7% de chances d'avoir une solution exacte, c'est-à-dire que dans un peu moins d'un cas sur 15, seule une approximation est possible.
- 18,2 % des tirages de 6 plaques permettent de résoudre tous les comptes entre 100 et 999. C'est le cas par exemple de 1;2;3;4;5;100.
- 100 % de l'utilisatrice japonaise interrogée trouve la mascotte « kawaï » ; un meilleur score serait envisageable en dessinant au renard des yeux énormes et remplis de multiples reflets.
Bon entraînement
Voilà un bon entraînement pour ma faculté de calcul mental qui a tendance à se ramollir !
Beau travail.
-
[^]Re: Bon entraînement
Une version texte en C "pur"
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");
}
-
[^]Re: Une version texte en C "pur"
Posté par Ackira () le 12/06/2007 à 15:53. (lien). Évalué à 1.À mes tous débuts en C, j'étais tombé sur un programme un peu plus court - mais beaucoup plus compliqué à comprendre! Le voici:
#define GAP(a,b) (((a)>(b))?((a)-(b)):((b)-(a))) #define SPRINTOP(a,b,k,res) \ ({strcpy(str_tmp,str_result);\ sprintf(str_result,"%3d %c %3d = %d\n%s",(((a)>(b))?(a):(b)),s[k],(((a)>(b))?(b):(a)),res,str_tmp);}) #define NBCH 6 int best_tot = 0, best_gap = 999; char str_result[255],str_tmp[255]; int plus (int *a, int b) { return (*a += b); } int moins(int *a, int b) { return (*a = GAP(*a,b)); } int multi(int *a, int b) { return (*a *= b ); } int divis(int *a, int b) { if (*a < b) { *a^=b; b^=*a; *a^=b; } if ( !(*a%b) ) return (*a /= b ); return 0; } #define NBOP 4 int (*f[])(int *,int) = { plus , moins , multi, divis }; char s[] = "+-*/"; int lcb(int *tab, int nb, int tot) { int i,j,k,t[NBCH]; for ( i=0 ; i<nb-1 ; i++ ) for ( j=i+1 ; j<nb ; j++) for ( k=0; k<NBOP; k++) { memcpy(t,tab,sizeof(int)*NBCH); if ( (*f[k])(&t[i],t[j]) ) { if ( t[i] == tot ) return SPRINTOP(tab[i],tab[j],k,t[i]); if ( GAP(t[i],tot) < best_gap) { best_tot = t[i] ; best_gap = GAP(best_tot,tot); } t[j]=t[nb-1]; if (lcb(t,nb-1,tot)) return SPRINTOP(tab[i],tab[j],k,t[i]); } } return 0; } int main(void) { int t[NBCH], i, tot; *str_result = 0x00; for ( i=0; i<NBCH ; scanf("%d",(printf("nombre %d : ",i+1),&t[i++]))) ; printf("total : "); scanf("%d",&tot); if ( ! lcb(t,NBCH,tot) ) lcb(t,NBCH,best_tot); else printf("Le compte est bon : \n"); return ! printf(str_result); }Usage extensif des (deux) macros, presque obfusqué, avec un algorithme d'une complexité apparemment plus élevée. Je ne connais pas l'auteur, donc je ne peux pas donner de licence par contre...-
[^]En Prolog
Posté par DIAL () le 12/06/2007 à 16:11. (lien). Évalué à 3./*
mettre par ex
cptbon([2,3,25,7,1,3],347).
*/
cptbon(L,X):-
cptf(L,L2),
dans(L2,X),
cptfa(L,L2).
dans([X|_],X).
dans([_|L],X):-
dans(L,X).
cptfa(L,L).
cptfa(L1,L2):-
cpt(L1,L3),
cptfa(L3,L2),
write(L3),nl.
cptf(L,L).
cptf(L1,L2):-
cpt(L1,L3),
cptf(L3,L2).
cpt([X|Q1],[X|Q2]):-
cpt(Q1,Q2).
cpt([X|Q1],Q2):-
cpt2(X,Q1,Q2).
cpt2(X,[A|Q1],[A|Q2]):-
cpt2(X,Q1,Q2).
cpt2(X,[Y|Q1],[Z|Q1]):-
Z is X+Y;
X>Y, Z is X-Y;
X<Y, Z is Y-X;
Z is X*Y;
X>Y,0 is X mod Y, Z is X/Y;
X<Y,0 is Y mod X, Z is Y/X.-
[^]Re: Toutes, vraiment toutes ?
Posté par chtitux (Jabber id, page perso, ) le 12/06/2007 à 17:24. (lien). Évalué à 2.Je n'ai pas le niveau pour comprendre ni le code en Prolog, ni en C.
Mais j'avais une petite question ... (qui est bonne aussi pour le code en C++ de kitsune (et pas katsumi ;)
Peut-on être sûr d'avoir toutes les solutions ?
N'y a-t-il pas des solutions non analysées ?
Sinon, je le redis ici, mais c'est vraiment un beau projet, simple, mais qui est agréable. Ça fait déjà 3/4 d'h qu'il tourne chez moi :( et http://pour_mon_bac.saimal.fr/ )-
[^]Re: Toutes, vraiment toutes ?
Posté par Pol' uX () le 12/06/2007 à 18:29. (lien). Évalué à 3.De par sa nature, Prolog trouve toutes les solutions (sauf si on force ...) à une subtilité près : prolog ne sait pas inférer sur les calculs de sa calculatrice. Il faut soit définir les nombres de façon fonctionnelle, soit utiliser un langage (comme chips) qui sache inférer sur sa calculatrice.
--
Soutenez le logiciel libre, en adhérant dès maintenant à l'April-
[^]Re: Toutes, vraiment toutes ?
Posté par Benoît Guédas (Jabber id, ) le 12/06/2007 à 18:52. (lien). Évalué à 2.soit utiliser un langage (comme chips) qui sache inférer sur sa calculatrice.
Tu veux parler de CLIPS ? Si c'est bien ça, je doute qu'il soit très adapté à ce type de problème où on part de la solution.
En effet, CLIPS, contrairement à Prolog, fait du chaînage avant : on part des faits (les nombres) et on construit de nouveaux faits dès qu'une règle peut s'appliquer (ici, les opération arithmétiques élémentaires). On génère alors tous les nombres possibles à partir de ceux proposés. On vérifie alors à la fin si le nombre voulu se trouve dedans. Dans ce cas, ça pourrait peut être aller vu qu'il n'y a pas tant de nombres que ça, mais ça explose vite.
Avec Prolog (qui fait du chaînage arrière), on part du but (le nombre en question à trouver), et on regarde si un enchaînement de règle permet d'y arriver à partir des faits (les nombres de départ).
Bon, je ne sais pas si j'ai été très clair, et peut être que "chips" existe et que je suis complètement à côté de la plaque (en même temps, faites donc une recherche sur "chips" dans google :-)-
[^]Re: Toutes, vraiment toutes ?
Posté par Pol' uX () le 12/06/2007 à 19:19. (lien). Évalué à 2.Oui, Clips ... (désolé mon cerveau n'est pas ECC ...)
Je ne l'ai jamais utilisé ... et vu ce que tu me dis, je pense que le prof qui m'en a parlé non plus ;-) Il nous avait expliqué que clips était comme prolog, mais avec une calculatrice qui "marche".
C'est marrant le chainage avant ... en mini projet d'IA, j'avais essayé de réaliser un moteur de chainage avant en prolog ... ça n'a jamais abouti (pas le temps).--
Soutenez le logiciel libre, en adhérant dès maintenant à l'April-
[^]Re: Toutes, vraiment toutes ?
Posté par Benoît Guédas (Jabber id, ) le 12/06/2007 à 19:37. (lien). Évalué à 3.Pour préciser un peu, CLIPS est un outil pour faire des systèmes experts développé par la NASA (en C) à l'époque où les systèmes experts étaient faits en LISP, étaient très lents et très chers. Comme ils sont sympa, ils l'ont versé dans le domaine public.
-
-
[^]Re: Toutes, vraiment toutes ?
Posté par Sylvain Sauvage () le 13/06/2007 à 15:46. (lien). Évalué à 2.Il y a des Prolog avec contraintes (p.ex. ECLIPSe (attention à la casse)) qui ajoutent la gestion de contraintes et des possibilités arithmétiques au Prolog.
-
[^]Re: Toutes, vraiment toutes ?
Posté par Benoît Guédas (Jabber id, ) le 13/06/2007 à 15:55. (lien). Évalué à 2.GNU Prolog aussi permet d'utiliser les contraintes :-)
Sinon, il y a aussi Sictus Prolog qui s'interface très bien avec Java (mais qui coûte très cher).
-
-
-
-
[^]Re: Toutes, vraiment toutes ?
Posté par Lapinot (page perso, ) le 12/06/2007 à 23:33. (lien). Évalué à 1.Pour Kitsune, il est fabriqué de façon à te renvoyer toutes les solutions. Néanmoins, pour éviter de parasiter l'affichage avec trop de solutions, il évite d'afficher des "solutions équivalentes", c'est expliqué sur cette page : http://kitsune.tuxfamily.org/wiki/doku.php?id=solutions_equi(...)
-
-
-
Paquet debian
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.
-
[^]Re: Paquet debian
Posté par Lapinot (page perso, ) le 12/06/2007 à 23:38. (lien). Évalué à 1.Je ne vois pas exactement ce qui te manque pour faire un paquet sur cette architecture. Tu peux nous contacter à l'adresse indiquée tout en bas du site de Kitsune, on pourra peut-être t'aider.
Merci !
ç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
-
[^]Re: Merci !
Posté par Lapinot (page perso, ) le 12/06/2007 à 23:42. (lien). Évalué à 1.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.
On l'attendait, celle-là. Tu arrives trop tard, c'est déjà sur la wishlist. Peut-être pour la 2.1 ou la 2.2.
Pallier.
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.
-
[^]Re: Pallier.
Posté par ewasx () le 12/06/2007 à 21:50. (lien). Évalué à 2.Sérieux?
Donc je l'ai toujours mal utilisé ce mot...
Non que je veuille me trouver une excuse mais il me semble que tout le monde, ou presque, l'utilise mal. Ne serait-ce donc pas là une évolution de la langue? ne pourrait-on pas considérer que le "pallier à" est correct dorénavant vu qu'il est tant utilisé et que tout le monde le comprend?-
[^]Re: Pallier.
Posté par Pierre Jarillon (page perso, ) le 12/06/2007 à 22:04. (lien). Évalué à 4.Eh, non, il faut pallier la méconnaissance du français ;-)
-
[^]Re: Pallier.
Posté par ewasx () le 12/06/2007 à 22:42. (lien). Évalué à 1.Bon ben tant qu'on y est avec les lieux communs.
"eh non" et "et non"
Lequel est le bon? Le deuxième me semble plus beau à l'oreille et à l'oeil.-
[^]Re: Pallier.
Posté par Samuel V. () le 13/06/2007 à 07:02. (lien). Évalué à 1.Ah (et non HA !) ? Moi c'est le premier qui me semble le plus beau à l'oeil et à l'oreille :)
-
[^]Re: Pallier.
Posté par Archibald (page perso, ) le 13/06/2007 à 11:25. (lien). Évalué à 2."eh non" et "et non"
Lequel est le bon? Le deuxième me semble plus beau à l'oreille et à l'oeil.
Eh non ! (sans accent sur le 'E' !)
Moi c'est le premier qui me semble le plus beau à l'oeil et à l'oreille :)
Eh oui ! (pas d'accent non plus)
Un extrait du Trésor informatisé de la langue française [http://atilf.atilf.fr/tlf.htm]
eh : le locuteur infirme le point de vue de l'interlocuteur ou notifie l'inadéquation de son comportement.
Des exemples :
« Mettez une épingle ici. Eh ! non, pas là, ici, près de la manche » (ZOLA, Bonh. dames, 1883, p. 692).
« Est-ce vrai? Je crois rêver. Eh non ! Ce n'est pas un rêve » (APOLL., Casanova, 1918, I, 10, p. 982).-
[^]Re: Pallier.
-
-
-
[^]Re: Pallier.
Posté par Etre-ange () le 15/06/2007 à 07:56. (lien). Évalué à 1.>"eh non" et "et non", Lequel est le bon?
Je dirais :
* Hé non ! blabla
- Tu as eu ton bac ?
- Hé non, je n'ai pas eu mon bac. *blam*
* Et, non, blabla
- C'est à cette heure ci que tu rentres ? Tu as eu ton bac ?
- Oui c'est à cette heure-ci. Et non, je n'ai pas eu mon bac. *blam* *blam*
(j'ai mon bac)--
Être ange, c'est étrange, dit l'ange
-
-
-
Où sont les lettres ?...
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 !
-
[^]Re: Où sont les lettres ?...
Posté par baud123 (Jabber id, page perso, ) le 13/06/2007 à 12:16. (lien). Évalué à 3.Dans Ton Capello
http://fr.wikipedia.org/wiki/Jacques_Capelovici ;-)-
[^]Re: Où sont les lettres ?...
Posté par xavier dumont () le 13/06/2007 à 13:17. (lien). Évalué à 3.Ta référence à Capello est, certes, de bon aloi, mais comme le dit si bien Wikipedia, il n'a jamais participé aux "chiffres et aux lettres" !
-
Le renard !
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...
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 :)
-
[^]Re: Un peu faiblard...
Posté par fleny68 () le 15/06/2007 à 10:53. (lien). Évalué à 3.http://linuxfr.org/comments/753301.html#753301
--
Non, rien




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.