Mode d'emploi
Tout les 1er du mois vous sera déposé un mini cahier de charge contenant un exercice de programmation .
Et ceux qui sont déjà avancés ?
Pour les non débutants ne vous inquiétez pas, l'exercice enquestion sera composé de questions de niveau évolutif.
Type de sujets
Le but de chaque exercice est de permettre à chaque zeros d'évoluer, c'est pour cela que des exercices toucheront un peu à tous les domaines de java (console, interface, réseau, thread, UML).
Pour le moment nous ne mettrons pas d'exercices sur la J2EE, ou sur la J2ME, mais ça arrivera un peu plus tard.
Les suggestions d'exercices par des zeros sont possibles par MP à l'utilisateur "willard".
Soumission de réponses
Il est strictement inutile d'envoyer un MP à "willard".
Lorsque votre exercice est terminé, vous allez alors envoyer celui-ci en MP a l'utilisateur "ExoJava", celui-ci ne se connectera que les fin du mois afin de récupérer les différentes réponses proposées. Il n'accepte pas les demandes d'amis.
C'est quoi le format d'envoi des messages ?
Pour envoyer vos messages vous le ferez suiat ce format: Le titre du message :"user"_"DateLancement"
Exemple : willard_15/04/2009 Le sous titre : "Version"_"NuméroVersion"
Exemple : version_1
Le numéro de version correspond au nombre de fois que vous soumettez pour un même exercice. Contenu du message : Une introduction sur la version de java utilisé ou encore vos commentaires sur l'exercice, ensuite votre code bien encadré par les balises java.
Les exercices qui ne sont pas soumis dans le bon format ne seront pas corrigés
Que devient nos réponses ?
Après correction, les 3 meilleurs codes sont postés sur le site. Il ne sert à rien de copier des codes sans comprendre pour gagner, ceci n'est pas le but.
Alors je vous laisse découvrir les exercices.
J'attends vos réactions.
Titre: Les chiffres sans les lettres
Thème: Aléatoire, Algorithme, Graphique, réseau, Thread.
Énoncé:
On connait pour la plus part le jeu de chiffres et des lettres ! ici nous nous intéresserons aux chiffres.
Principe La liste de choix: suite de 7 nombres , qui sont proposés par l'ordinateur Résultat à atteindre: Nombre que l'on veut obtenir par une suite d'opérations. Opérateur : addition, soustraction, multiplication, division
Le but du jeu est de donner à deux concurrents la liste de choix ainsi que le résultat à atteindre. partant de ces paramètres, les eux concurrents vont essayer d'atteindre le résultat, en utilisant les opérateurs.
un élément de la liste peux ne pas être utilisé, mais dans le cas où il est utilisé il, ne peux plus l'être une deuxième fois
Exemple:
Liste de choix: 4, 2, 100, 30, 15, 1, 2
Résultat à atteindre : 222
Question 1: Concevoir le résultat atteindre
Il est composé de 3 chiffres (entre 0 et 9 ) avec équiprobabilité d'obtenir chacun des chiffres.
On aura donc : [0-9][0-9][0-9]
Question 2: Concevoir la liste de choix
Il s'agit de concevoir une liste de choix a proposer. Elle est faite ainsi:
Elle est composée de 7 nombres
chaque nombre est situé entre 1 et 100
Les nombres seront composé de 3 chiffres pris comme suit:
1er chiffre: entre 0 et 1 (avec prob(1)=1/7 ; prob(0)=6/7)
2e chiffre: entre 0 et 9 (0 si 1er chiffre est 1 , si le 1er chiffre est 0 alors 0,2,5,7 ont une probabilité égale au double de celle des autres )
3e chiffre:
- entre 0 et 9 (si le 1er chiffre est 0 et 2e chiffre est 0)
- 0 ou 5 (si le 1er chiffre est 0 et 2e chiffre différent de 0)
- 0 (si le 1er chiffre est 1)
Question 3: Concevoir le cœur du programme
A base de l'algorithme de votre choix, permettre d'afficher la solution la plus optimale possible pour le problème.
On ne doit pas consommer trop de ressource, si possible indiquer la complexité de votre algorithme
Question 4: Interface graphique
Pour eux qui arriverons à cette étapes, ils pourront sans doute faire une interface tel que l'utilisateur n'aura qu'à saisir dans des champs appropriées sa solution , et le système est chargé de vérifier si elle est juste.
Question 5: Gestion des flux et thread
Ici il s'agit de mettre en œuvre les deux interfaces précédentes en réseau, tel que les 2 concurrents participent et soumettent leur solution (ceci réalisé pendant un temps définis par le programme et paramétrable).
Si les deux solutions sont exacte le gagnant est le premier à avoir soumis son code.
Bonne chance à vous !!!
Pour les remarques ou question veuillez faire des MP à "willard" un membre du SDZ
Bon exercice, mais une petite erreur dans l'énoncer, l'énoncé dit que chaque nombre est compris entre 1 et 999. Or d'après les règles qui suivent, les nombres sont compris entre 1 et 100.
Sinon, je ne vois pas vraiment l'intérêt d'une interface graphique, sauf éventuellement pour la partie où on fait le jeux en réseau.
Ok, j'ai fais signe a ExoJava il devrait rééditer le sujet bientôt.
Pour l'interface graphique, c'est juste pour vérifier comment les zeros conçoivent une interface a partir d'un problème défini.
Il faut un respect des règles ergonomiques.
Ce n'est pas si difficile que ça si on s'y met sérieusement on peux facilement le faire, et la correction est faite par questions donc ne vous découragez pas.
Rien n'empêche à ceux qui ont le temps de faire les exercices proposés.
J'ai pas mal de code à proposé d'ailleurs que je ferai une fosi que j'aurai le temps, en même temps ça me permettra d'améliorer mon code.
Il y a aussi cette fameuse méthode stop que je dois virer et stopper l'exécution d'un Thread proprement.
Enfin là j'm'en fou un peu car c'est un bête chronomètre, donc c'est pas grâve si y'a des donnée qui se perdent à l'arrêt du thread.
Mais je vais quand même devoir améliorer si plus tard je veux faire des jeux client serveur.
PS : en faite les admins du style Matéo21 ? (Hein c'pas bien :p)
P-e qu'ils sont nostalgique au java.
Il y a aussi cette fameuse méthode stop que je dois virer et stopper l'exécution d'un Thread proprement.
Enfin là j'm'en fou un peu car c'est un bête chronomètre, donc c'est pas grâve si y'a des donnée qui se perdent à l'arrêt du thread.
Arrêter un Thread avec la méthode stop est une hérésie totale. Cette méthode est très dangereuse. Si tu eux savoir comment arrêter un thread proprement quand il est bloquer sur un appel bloquant, voici un lien très utile (pour les non anglophobes).
Citation : kohan95
post-it post-itpost-itpost-it
Il faut éviter ce genre de commentaire si l'on veut que le sujet finisse en post-it, il faut juste prouver que le sujet n'intéresse pas que son créateur ainsi que trois ou quatre paumés. Si ce sujet a du succès suite au premier exercice ou deux, il sera sûrement mis en post-it. Si les admins ne l'ont pas mis, c'est qu'ils ont des raisons, c'es ce qu'il faut se dire. Enfin, le sujet est intéressant, et je vais sûrement essayer de le faire (sauf pour l'IHM) si j'ai le temps.
Bonjour,
Je ne sais pas si "j'ai le droit" de poser des questions par rapport à l'exercice ici, ou bien s'il est préférable que je crée un nouveau topic, mais bon... Voilà, étant débutant, je bloque à la question 2 où nous devons traiter les probabilités. Pour le premier chiffre, je génère un nombre aléatoire entre 1 et 7 inclu. et si le nombre généré est entre 1 et 6, le premier chiffre est 0, sinon c'est 1.
@JFGagnon: Pour ce type de questions (qui relèvent de l'ordre de la résolution de l'exercice), tu doit créer un autre topic.
Ne poste ici que ceux qui ne comprennent pas l'énoncé, ou qui ont des suggestions.
bonne chance quand même.
@willard : Désolé, je ne savais pas... Mais bon en y pensant un peu, j'ai trouvé une solution
En ce qui concerne l'exercice, si il n'y a aucune solution possible avec les choix disponible que doit-on faire ? On affiche simplement "Aucune solution" ou bien nous devons afficher ce qui nous permet d'obtenir le résultat le plus proche du résultat à atteindre ?
S'il il n'y a vraiment pas de résultat exact, il faudra afficher le résultat qui se rapproche le plus de la solution.
Attention, le plus intéressant dans le problème c'est de le faire de la manière la plus optimale possible.
J'ai une question à propos des corrections : tu dit que après les corrections, les trois meilleurs seront posté ici. Mais quant est-il des autres ? Allons nous recevoir des commentaires personnels sur notre travail ?
J'ai une question à propos des corrections : tu dit que après les corrections, les trois meilleurs seront posté ici. Mais quant est-il des autres ? Allons nous recevoir des commentaires personnels sur notre travail ?
Des commentaires spéciaux sur le travail ? ça sera difficile, s'il ya beaucoup de monde.
Mais des commentaires sur le travail en général oui. C'est a dire, les erreurs qui reviennent le plus.
waouh ca fait longtemps je suis pas passé ici!
très interessante cette initiative domage que j'ai pas de temps en ce moment ; sinon j'aurai revêtu avec fierté mon manteau de zero pr me casser les dents à faire ces exos ...
bne continuation...
Et voilà, j'ai rapidement fais les deux premières questions, j'attaque l'algorithme, la partie la plus intéressante. C'est vrai que je ne sais pas encore comment je vais l'attaquer, mais il est vrai qu'il est très intéressant, puisqu'il faut trouver la valeur la plus approché si ce n'est pas possible d'obtenir la valeur, et qu'il faut trouver la solution la plus optimisé (pas n'importe quelle solution qui donne le résultat).
Il faudrait encore changer deux ou trois truc dans l'énoncé.
Dans la sélection aléatoire des nombres de la liste de choix, il y a de trop grande chance de tombé sur 100, si bien qu'on finit souvent avec plusieurs 100 (puisqu'il y a une chance sur 7 que le nombre soit 100). Il faudrait changer ce point.
Moins grave, mais si l'on veut respecter plus scrupuleusement les règles du jeux, il n'y a que 6 nombres dans la liste, et le nombre à atteindre est forcément supérieur à 100. (En fait, le jeux officiel stipule que l'on doit prendre les valeurs dans un set de valeurs prédéfinit avec équiprobabilité de chance d'obtenir chacun (pas sûr pour l'équiprobabilité), mais ça fait moins travailler le coté nombre aléatoire.
Il faudrait encore changer deux ou trois truc dans l'énoncé.
Dans la sélection aléatoire des nombres de la liste de choix, il y a de trop grande chance de tombé sur 100, si bien qu'on finit souvent avec plusieurs 100 (puisqu'il y a une chance sur 7 que le nombre soit 100). Il faudrait changer ce point.
la probabilité d'obtenir 100 est égale 1/7, mais si tu l'implémente correctement tu ne pourra avoir le nombre 100 dans ta liste de choix qu'au plus 2 fois.
En tout cas moi je n'ai pas ce problème.
Citation : Dalshim
Moins grave, mais si l'on veut respecter plus scrupuleusement les règles du jeux, il n'y a que 6 nombres dans la liste, et le nombre à atteindre est forcément supérieur à 100. (En fait, le jeux officiel stipule que l'on doit prendre les valeurs dans un set de valeurs prédéfinit avec équiprobabilité de chance d'obtenir chacun (pas sûr pour l'équiprobabilité), mais ça fait moins travailler le coté nombre aléatoire.
Si l'on reprend tel que tu le dit le concept général, ça devient trop simple a réaliser et pas intéressant , en sachant que le but c'est de se casser la tete un tout petit peu.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.