#1 Le 05/10/2007, à 11:11
- Peat.hagore
pour "programmateur" sans idée,...épisode n°2
Bonjour a Toutes et Tous
Et oui, je suis de retour, dans ma quete de gagner un jour a:
L'EURO millions
J'ai une nouvelle idée.
a L'image de mon Premier Post ( pour celles ou ceux d'entre vous qui n'etaient pas du projet)
Je vous demande, a vous , les grands " programmateurs ", un nouveau service.
Mise en garde : ce challenge releve d'un cran,d'un niveau superieur les techniques utilisées lors du premier post
Les differentes versions, des logiciels du premier post, sont toutes vraiment superbe.
Mais maintenant serait 'il possible ce creer ceci:
Toujours dans l' optique de trouver:
5 numeros compris entre 1 et 50 (inclus), pour la premiere grille
puis 2 numeros compris entre 1 et 9 (inclus) pour la seconde grille.
mon idée serai de visualiser deux compteurs tournant de facon aleatoire*
(un pour la premiere grille et un pour la seconde)
Et par un clic sur une touche faire arreter le compteur, sur un chiffre au hasard.
( simplement , comme une machine a sous, il tourne a l'infini et top, on arrete le cycle)
et que ce chiffre "trouvé" s'inscrive dans une des 5 cases vides, correspondant a notre grille n° 1
il en vas de meme pour la grille numero 2 ( deux cases vides)
Bien sur les conditions, sont les memes pour les deux grilles:
1: Il ne peut y avoir deux fois le meme chiffre dans la meme grille.
2: il doit pouvoir avoir une possibilitée de reinitialiser le tirage.
3: Pour l'instant je vois pas
4: vous pouvez creer ce soft sans mode graphique, juste dans un terminal ( si c'est possible )
*de facon "aleatoire", perso je pense que lorsqu'un compteur "tourne de facon normale, 1 23456 -->50.. puis on recommence 123... ----> 50 etc... en on recommence dans le meme ordre.
on a avec le temps et l'habitude le pouvoir stopper plus ou moins ou on veut. Prenez un chronometre et faite l'experience, vous verez qu'avec le temps on peut facilement, par exemple s'arreter sur un nombre proche de la Trentaine etc...
Donc de facon, aleatoire, ( 1,48,4, 50 etc...) il serait impossible, de facon consciente ou inconsciente de "choisir" ou du moins de se rapprocher d'un nombre choisi.
Voila, pour ce nouveau Challenge.
J'esperes qu'il interessera quelqu'un
de toutes les facons, c'est du pure hasard ce Jeux ( quoique )
Et il n'y a aucune limite de Temps.
Merci d'avoir pris le temps de lire ceci.
Bonne continuation a Vous
Amicalement
Peat.hagore
Hors ligne
#2 Le 05/10/2007, à 11:27
- AuraHxC
Re : pour "programmateur" sans idée,...épisode n°2
programmateur mouai, programmeur mieux non
Hors ligne
#3 Le 05/10/2007, à 11:37
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
:lol::lol:
excellent a chaque fois ca marche :lol::lol:
il est ecrit entre guillemet
Dernière modification par Peat.hagore (Le 05/10/2007, à 11:38)
Hors ligne
#4 Le 05/10/2007, à 16:51
- pipomolo
Re : pour "programmateur" sans idée,...épisode n°2
Salut, je débarque sur le forum...et je vois ce truc...ayant du temps à tuer, j'ai bricolé quelque chose vite fait...
Ca utilise la librairie ncurses, qu'il faut donc avoir d'installée en version dev
#include <stdio.h>
#include <stdlib.h>
#include <ncurses.h>
// Nombre maximum à tirer
#define NMAX 50
// Nombre de tirage maximum
#define NTIRAGE 5
// Temps entre 2 tirages
#define TIMEOUT 250
int main (int argc, char ** argv[])
{
int nb1 = 0;
int t=0;
int c;
int a1[NTIRAGE];
// Initialisation
initscr();
timeout (TIMEOUT);
curs_set(0);
noecho();
srand(time(0));
while (nb1 < NTIRAGE)
{
int i;
// On tire un numéro au hasard
t = (int)((double)rand()*(double)(NMAX+1)/(double)RAND_MAX);
if (t != 0)
{
// On vérifie qu'il n'est pas déjà dans la grille
for (i=0; i<nb1; i++)
{
if (t == a1[i])
{
break;
}
}
if (i == nb1)
{
// Affichage du numéro tiré
mvprintw (0,0,"%02d",t);
refresh();
// Attente entrée clavier (avec timeout)
c = getch();
if (c != -1)
{
// Ajout dans la grille et affichage du numéro
a1[nb1] = t;
mvprintw (nb1, 10, "%02d", t);
refresh();
nb1++;
}
}
}
}
timeout (-1);
getch();
curs_set(1);
endwin();
return 0;
}
Pour compiler :
sudo aptitude install libncurses5-dev
gedit fichier.c
<copier coller le code ci-dessus>
gcc fichier.c -lncurses
./a.out
Ca ne réalise qu'un seul tirage de 5 parmi [1;50] ... il suffit de modifier les constantes pour un tirage de 2 parmi [1;9] ... il faudrait aussi bricoler pour permettre plusieurs tirages successifs, mais là je n'ai plus le temps
Dernière modification par pipomolo (Le 05/10/2007, à 16:57)
Hors ligne
#5 Le 08/10/2007, à 10:32
- doof
Re : pour "programmateur" sans idée,...épisode n°2
Allez hop, j'avais du temps à tuer ^^
dépendance : python-qt4
fichier à lancer : ./euromillion.py
http://elbong.free.fr/gifs/euro.tar.gz
Hors ligne
#6 Le 08/10/2007, à 13:00
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
Doof
Genial ton petit Programme, il a l'air sympa.
Le seul hic pour ma part est, qu'il ne se lance pas.
j'ai bien, installé: python-qt4
Lancer: ./euromillion.py
(option, lancer dans un terminal)
Mais rien, un quatrieme fichier est apparu:
ui_main.pyc ????
Peut etre me faut il une autre dependance?
Hors ligne
#7 Le 08/10/2007, à 13:27
- doof
Re : pour "programmateur" sans idée,...épisode n°2
Euh c'est étrange ça, il n'ouvre rien et aucun message d'erreur ?
Le fichier .pyc est normal, c'est le code python qui a créé un fichier bytecode, cela prouve d'ailleurs qu'il s'est bien lancé.
La seule dépendance externe a python que j'utilise est python-qt4, elle a besoin de qt4 bien sur, mais je suppose que qt4 s'est installé avec ?
Hors ligne
#8 Le 09/10/2007, à 12:50
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
Bon, aujourd'hui apres avoir fait un peut le menage dans mon systeme
( sous edgy )
Et bien toujours Rien
il doit surement me manquer une dependance.
je vais la tester sous feisty et je te tiens au courant
modification:
Dans synaptic en cherchant: qt4 ( sous edgy)
j'ai:
libqt4-core
libqt4-gui
libqt4-qt3support
libqt4-sql
python-qt4
Peut etre que cela peut etre utile, il doit me manquer une dependance non?
Dernière modification par Peat.hagore (Le 09/10/2007, à 13:16)
Hors ligne
#9 Le 09/10/2007, à 13:18
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
Test sous feisty (sans rien installer)
Bon, ici le soft se lance et je vois la meme chose que ton image
(avec les compteurs a zero biensur.)
Je lance start et la tres vite, le start se change en stop et tout disparait.
( sans que les compteurs se mettent a fonctionner)
et toujours pas de message d'erreur.
Mais a vu d'oeil, ca a l'air d'etre terrible
Merci encore
Hors ligne
#10 Le 09/10/2007, à 13:26
- doof
Re : pour "programmateur" sans idée,...épisode n°2
Essaie de baisser le slider sur la gauche tout en bas avant d'appuyer sur start.
Ce slider sert à régler la vitesse de défilement, tout en bas = le plus lent possible.
J'ai justement rencontré le problème au départ, sans temporisation, l'interface était submergée de signaux pour l'actualiser, ce qui l'amenait à planter (comme quoi on en apprend toujours ^^).
Hors ligne
#11 Le 09/10/2007, à 13:33
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
la meme chose, c'est etrange non?
a mon avis ton ordi doit avoir quelque chose en plus
Hors ligne
#12 Le 09/10/2007, à 14:08
- doof
Re : pour "programmateur" sans idée,...épisode n°2
C'est plus qu'étrange
Niveau dépendance, je suis sur qu'il n'y en a pas d'autre (de toute façon, ça aurait mit une erreur dans la console), par contre, niveau Qt, je suis sous debian sid et j'ai Qt 4.3.2 plus récent. Mais bon, le code que j'utilise est le même que j'utilisais déjà sous Qt3.
J'ai fait quelques modifs + mod debug dans la console (toujours sur le lien plus haut), si tu pouvais me copier/coller ce que dit le console pour voir où ça bloque.
Hors ligne
#13 Le 09/10/2007, à 14:13
- gadjou
Re : pour "programmateur" sans idée,...épisode n°2
J'ai écrit un programme qui affiche les numéros gagnants de l'euromillion. Il est cependant payant.
Vous pouvez l'obtenir simplement en envoyant 150€ en liquide à Mr X, BP1321, Iles Caïman
Dernière modification par gadjou (Le 09/10/2007, à 14:15)
Hors ligne
#14 Le 09/10/2007, à 14:34
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
@doof
je suis de retour .
En fait je le lance en console et elle aussi s'eteind toute seule, en meme temps que l'autre, mais c'est tres rapide
@gadjou
pour etre honete sur ebay on trouve moins cher...tu serais pas un peut escrot toi?
Hors ligne
#15 Le 09/10/2007, à 14:37
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
bon, avant de lancer le jeu dans la console il y a:
Computer thread initialized
je le lance, en dessous il y a encore cette phrase
puis autres choses d'ecrit ( toujours une phrase, mais ca vas trops rapidement)
Hors ligne
#16 Le 09/10/2007, à 14:45
- gadjou
Re : pour "programmateur" sans idée,...épisode n°2
@doof
@gadjou
pour etre honete sur ebay on trouve moins cher...tu serais pas un peut escrot toi?
Sur le forum microsoft, ça a marché. J'ai déjà reçu 15000€. Ce sont les mêmes types qui ont achetés vista
Hors ligne
#17 Le 09/10/2007, à 14:50
- doof
Re : pour "programmateur" sans idée,...épisode n°2
Bon, j'ai rechangé un truc, il faut donc re-télécharger
C'est pas normal que ta console se ferme en même temps, tu l'as lancé depuis ta console en tapant ./euromillion.py ou depuis un menu qui lance une console en même temps ?
Hors ligne
#18 Le 09/10/2007, à 14:59
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
@ doof
Meme resultat
en double cliquant sur: euromillion.py
il de 4 choix dont un le lancer avec le terminal
@gadjou
Non, en fait il s'achete Vista ohhh Enorme le concept
Hors ligne
#19 Le 09/10/2007, à 15:05
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
En le faisant 100 fois a la suite :P:P
( j'ai creer un lanceur!!)
la phrase est quelque chose du genre:
.fatal python....error: cg already tracked
( de temps en temps apparait des chiffres en bleu sur le compteur mais..une fois tous les 20 coups et encore!!)
Dernière modification par Peat.hagore (Le 09/10/2007, à 15:07)
Hors ligne
#20 Le 09/10/2007, à 15:06
- doof
Re : pour "programmateur" sans idée,...épisode n°2
Il vaut mieux ouvrir une console, aller dans le répertoire et lancer manuellement ./euromillion.py sinon la console se ferme automatiquement à la fermeture de l'application
Hors ligne
#21 Le 09/10/2007, à 15:09
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
Computer thread initialized
Run thread Computer
MainWin::updateLCD
Fatal Python error: GC object already tracked
Aborted (core dumped)
Hors ligne
#22 Le 09/10/2007, à 15:47
- doof
Re : pour "programmateur" sans idée,...épisode n°2
Donc je soupçonne ta version de PyQt buggée, l'erreur ne déclenche même pas une exception et la fonction updateLCD ne fait pourtant rien d'ésotérique. Je ne peux hélas rien y faire, il faut une autre version de PyQt.
Au passage, les modifs que j'ai fait font que -normalement-, ça se lance aussi sous edgy maintenant.
Hors ligne
#23 Le 09/10/2007, à 16:04
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
Bon, les nouvelles sous edgy:
Computer thread initialized
Run thread Computer
MainWin::updateLCD
Traceback (most recent call last):
File "/home/peat.hagore/euro//euromillion.py", line 30, in updateLCD
self.lcda[cpt].display(i)
TypeError: argument 1 of QLCDNumber.display() has an invalid type
MainWin::updateLCD
Segmentation fault (core dumped)
ps: les chiffres sont en noirs maintenant
"noir c'est noir, il n'y a plus d'espoir" :lol::lol:
Dernière modification par Peat.hagore (Le 09/10/2007, à 16:07)
Hors ligne
#24 Le 09/10/2007, à 16:19
- doof
Re : pour "programmateur" sans idée,...épisode n°2
Ca aide déjà plus quand python déclenche une exception
Bon, aller, une autre essai, je force le type en int qui semble être perdu dans mon signal (donc toujours le lien tout en haut ^^)
Pour les couleurs, oui, Qt 4.01 ne supporte pas les stylesheet, c'est ce qui fesait que ça ne se lançait pas.
Hors ligne
#25 Le 09/10/2007, à 16:27
- Peat.hagore
Re : pour "programmateur" sans idée,...épisode n°2
j'crois que tu vas m'en vouloir :lol::lol::lol:
Traceback (most recent call last):
File "/home/peat.hagore/euro//euromillion.py", line 29, in updateLCD
self.lcda[cpt].display(int(i))
TypeError: int() argument must be a string or a number
Segmentation fault (core dumped)
Hors ligne