[résolu][LAJ1] - Puissance4

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

[résolu][LAJ1] - Puissance4

Message  justblaze le Mer 28 Nov 2007, 23:32

Salut, déjà je précise que j'ai une dispense au labo de java, ça ne fait que du bien de refaire les td's!!

1ère question (s'adresse particulièrement aux profs mais les étudiants susceptibles de répondre ça me va): j'aimerais mettre des couleurs sur les jetons R=rouge J=jaune. je sais qu'il faut faire un "import java.awt.Color"(selon des sources de google). comment mettre les caractères 'R' et 'J'
en couleur??

2iem question: je suis coincé au niveau où il faut tester (ou voir) si il y a un gagnant donc parcourir le tableau de char[][] en long et en large, mais j'ai un soucis avec les algorithmes a utilisés... une bonne âme n'aurait pas un exemple me permettant de comprendre??? (pourquoi faire simple lorsque l'on peut faire compliqué) Very Happy

merci pour les réponses


Dernière édition par le Sam 08 Déc 2007, 01:26, édité 3 fois

justblaze

Nombre de messages : 159
Age : 30
Prénom : Ismael
Statut : Etd 3R11
Localisation : Wolu. St. Lambert
Date d'inscription : 09/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  yoda le Jeu 29 Nov 2007, 00:01

justblaze a écrit:2iem question: je suis coincé au niveau où il faut tester (ou voir) si il y a un gagnant donc parcourir le tableau de char[][] en long et en large, mais j'ai un soucis avec les algorithmes a utilisés... une bonne âme n'aurait pas un exemple me permettant de comprendre??? (pourquoi faire simple lorsque l'on peut faire compliqué) Very Happy
suffit de se limiter a tester un alignement correct de point a partir du dernier pion jouer ... et ahma, faire cela en recursif est assez facile et bien cours Smile

yoda

Nombre de messages : 1119
Age : 33
Prénom : Antoine
Statut : Ancien
Localisation : Bruxelles
Date d'inscription : 17/12/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  justblaze le Jeu 29 Nov 2007, 00:10

ok grand merci!!! je viens de voir en image (dans ma tête) ce que tu viens d'écrire, c'est plus simple que ce que j'avais en tête, preuve que je complique tout or que c'est si simple Smile

justblaze

Nombre de messages : 159
Age : 30
Prénom : Ismael
Statut : Etd 3R11
Localisation : Wolu. St. Lambert
Date d'inscription : 09/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  pbt le Jeu 29 Nov 2007, 09:01

Pour ecrire en couleur, il n'est pas question d'utiliser la classe Color du package awt qui est plutôt destinée à définir des couleurs dans le cadre d'un environement graphique.
J'imagine que ce que tu veux faire ici, c'est écrire en couleur dans une console.

Il est possible d'écrire en couleur dans un terminal (si le terminal
l'autorise). Pour ce faire, nous utiliserons les codes d'échappement ANSI du style ESC [ 'paramètres' m où ESC est le caractère ASCII 27 et 'paramètres' est aucun ou plusieurs nombres séparés par des point-virgules ";".
De manière tout à fait générale, la formule est \033[i;j;k;lm} où
- i appartient [30,37] et détermine la courleur de l'avant-plan
- j appartient [40,47] et détermine la couleur de l'arrière-plan
- k= 21 et signale que l'on souligne
- l=1 et signale que l'on écrit en gras

Quelques exemples pour mieux comprendre
- \033[41;30m affiche en noir sur fond rouge
- \033[31;40;1m affiche en rouge sur fond noir en gras
- \033[31;47;21;m affiche en rouge sur fond noir en souligné
- \033[31;47;21;1m affiche en rouge sur fond noir en souligné et gras
- \033[0;0m rétablit l'affichage par défaut

J'ajouterai une note sur mon site ... bientôt.

Pour ce qui est de la recherche du gagnant, on te propose une recherche "non efficace" en utilisant trois boucles imbriquées (je suppose que tu fais l'exercice Puissance3D (interro 2 Java 2005-2006 du 19 déc)). Dans ces boucles tu testes les emplacements contigüs à la position courante i,j,k, soit i-1,j,k et i-2,j,k et ainsi de suite.
si tu ne t'en sort pas, revient vers nous.

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  nvs le Jeu 29 Nov 2007, 09:25

à voir le tableau utilisé pour stocker les pions, ça a plutôt l'ait d'un P4 2D...

_________________

nvs

Nombre de messages : 5238
Age : 44
Prénom : Nicolas
Statut : prof
Localisation : bxl
Date d'inscription : 24/11/2005

http://nvansteenkiste.googlepages.com

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  pbt le Jeu 29 Nov 2007, 12:57

nvs a écrit:à voir le tableau utilisé pour stocker les pions, ça a plutôt l'ait d'un P4 2D...
Exact, mais comme il faut deviner quel exercice il fait ^^.

Je n'ai pas préciser non plus que si on veut écrire en couleurs, il faudra écrire des String et pas des chars.

J'ai ajouté une entrée dans la FAQ pour expliquer la coloration syntaxique. Dites-moi si c'est clair.

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  justblaze le Jeu 29 Nov 2007, 12:59

Oui c'est plutôt un puisance4 en 2D (char[][])...
Malheureusement l'année passée je ne suis pas tombé sur l'interro avec le jeu puissance4 en 3D, j'ai eu plutôt droit a un fakir, et aux oeufs de pâques comme interros!!!
pour les différents codes de couleurs, je dois les placer dans quel fichier?? (mon programme, .vimrc, ou .bashrc)
Je pensais que ça pourrait être plus simple avec la méthode de yoda, mais je ne trouve pas la solution!!encore coincé

justblaze

Nombre de messages : 159
Age : 30
Prénom : Ismael
Statut : Etd 3R11
Localisation : Wolu. St. Lambert
Date d'inscription : 09/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  justblaze le Jeu 29 Nov 2007, 13:11

Exact, mais comme il faut deviner quel exercice il fait ^^.

désolé, c'est vrai je n'avais pas précisé sur quel exercice je bloque, c'est le dernier exercice du td9 de cette année!! Smile

justblaze

Nombre de messages : 159
Age : 30
Prénom : Ismael
Statut : Etd 3R11
Localisation : Wolu. St. Lambert
Date d'inscription : 09/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  justblaze le Jeu 29 Nov 2007, 13:35

Voila j'ai écrit ce bout de code sur papier pour tester si il y a 4 jeton de même couleur 'R' ou 'J' sur une ligne.. selon vous ce code peut être juste!??

Code:
public static boolean estIlGagnant(Puissance4 jeu, char joueur){
    int nbre;
    String chaine = "";
    boolean ok = false;
    for(int i=0;i<jeu.length;i++){
        nbre = 0;
        while(nbre<4){
            for(int j=0+nbre;j<4+nbre;j++){
                chaine += jeu[i][j];
            }
            nbre += 1;
            if(joueur == 'R'){
                if(chaine.equals("RRRR"))
                    ok = true;
            }
            if(joueur == 'J'){
                if(chaine.equals("JJJJ"))
                    ok = true;
            }
            if(ok == true)
                nbre = 4;
        }
        if(ok == true)
            i = jeu.length;
    }
    return ok;
}

voici les cas que l'on peut avoir pour les lignes:
-----------------
|R|R|R|R| | | |
| |R|R|R|R| | |
| | |R|R|R|R| |
| | | |R|R|R|R|
| | | | | | | |
| | | | | | | |
-----------------

justblaze

Nombre de messages : 159
Age : 30
Prénom : Ismael
Statut : Etd 3R11
Localisation : Wolu. St. Lambert
Date d'inscription : 09/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  Bardack le Jeu 29 Nov 2007, 14:00

Juste un peu chiante ta signature justblaze... Prochaine fois prend du 1280*1024 comme taille...

Bardack

Nombre de messages : 2107
Age : 32
Prénom : Florent
Statut : Ancien(ne terreur)
Localisation : Frasnes-lez-Buissenal
Date d'inscription : 18/12/2006

http://www.bardack.be

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  justblaze le Jeu 29 Nov 2007, 14:10

Juste un peu chiante ta signature justblaze... Prochaine fois prend du 1280*1024 comme taille...

oui mon petit bardack, je suivrais tes conseils je vais augmenter la taille de ma signature tkt je ferai ça uniquement pour toi!!!

pour ce genre de réflexion je crois ke tu peu le gardé pour toi ou me le dire via mp, parce que la j'ai posé une question, donc si tu ne peux pa répondre correctement comme ton pote yoda ki a pris la peine de m'aider, alors c'est pas la peine parce que là c'est toi ki prend de la place pour rien dans ce post

justblaze

Nombre de messages : 159
Age : 30
Prénom : Ismael
Statut : Etd 3R11
Localisation : Wolu. St. Lambert
Date d'inscription : 09/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  Bardack le Jeu 29 Nov 2007, 14:33

C'est pas parce que je répond pas que mon truc sert à rien.
De nombreuses fois on a fait la remarque aux gens, ta signature met une plombe a charger la page, ca prend de la place pour rien, etc ...

Ca donne pas envie aux gens de lire ta question, pour peut être y répondre.
Maintenant si t'as envie de prendre ca comme ca, libre à toi.

Ne polluons pas le post, j'ai dis ce que j'avais à dire, t'en fais ce que tu veux

Bardack

Nombre de messages : 2107
Age : 32
Prénom : Florent
Statut : Ancien(ne terreur)
Localisation : Frasnes-lez-Buissenal
Date d'inscription : 18/12/2006

http://www.bardack.be

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  justblaze le Jeu 29 Nov 2007, 14:44

précision bardack, j'ai dépassé mon quota pour internet je suis passé de 10Mbps(théorique) à environ 50kbps et l'affichage se fait sans soucis!!
Ne polluons pas le post
c'est bien au moins une bonne action de la journée pour toi Wink

justblaze

Nombre de messages : 159
Age : 30
Prénom : Ismael
Statut : Etd 3R11
Localisation : Wolu. St. Lambert
Date d'inscription : 09/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  Morbid le Jeu 29 Nov 2007, 14:47

Et moi je confirme que se serait quand même sympa de la réduire stp Wink

Edit : merci Razz

Morbid

Nombre de messages : 894
Age : 30
Prénom : Christophe
Statut : Ancien (R)
Date d'inscription : 23/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  AngelKML le Jeu 29 Nov 2007, 14:50

Puissance 4 en diagonale tu l'as oublié mon cher JustBlaze

Compliqué mon code mais complet au moins et puis pourquoi tu test si ton joueur c'est un J ou un R vu que de toute manière tu ne dis pas qui a gagner enfin voilà un peu bizard ta facon mais ça se vaut mais t'as oublié la diagonale.


Bardack sérieux tu cassais la tete pour une signature qui ne pompait pas tant que ça je sais pas sur quoi t'es mais tu te fais avoir ou alors arretes de dl tes films de *** parce que sérieux je le vois à peine le dl de ça pourquoi je usis CONSTAMENT En 512 Ko/S

Et morbid ta signature c'est presque la meme taille donc ce serait sympa de



Justblaze 694 sur 169
Morbid 468 sur 90


Vous exagerez pas un peu les mecs ?

AngelKML

Nombre de messages : 296
Age : 28
Prénom : Kamel
Statut : Ancien informatiCHIEN reconvertit en INSTIT
Localisation : Bruxelles Ixelles 1050 Rue du trône dans dans ma chambre
Date d'inscription : 07/01/2007

http://angelk.skyblog.com

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  mcd le Jeu 29 Nov 2007, 15:05

justblaze a écrit:Voila j'ai écrit ce bout de code sur papier pour tester si il y a 4 jeton de même couleur 'R' ou 'J' sur une ligne.. selon vous ce code peut être juste!??

Code:
public static boolean estIlGagnant(Puissance4 jeu, char joueur){
    int nbre;
    String chaine = "";
    boolean ok = false;
    for(int i=0;i<jeu.length;i++){
        nbre = 0;
        while(nbre<4){
            for(int j=0+nbre;j<4+nbre;j++){
                chaine += jeu[i][j];
            }
            nbre += 1;
            if(joueur == 'R'){
                if(chaine.equals("RRRR"))
                    ok = true;
            }
            if(joueur == 'J'){
                if(chaine.equals("JJJJ"))
                    ok = true;
            }
            if(ok == true)
                nbre = 4;
        }
        if(ok == true)
            i = jeu.length;
    }
    return ok;
}
Ca se pourrait mais comme l'a fait remarquer yoda il suffit de tester la ligne où a été placé le dernier pion; il ne peut pas y avoir de solution ailleurs car sinon le jeu serait déjà fini Wink

Je dis "ca se pourrait" car ton code n'est pas des plus lisibles
- "chaîne" c'est plus que moyen comme nom (c'est vrai "temp" serait pire). Cela ne dit rien sur ce qu'on va y mettre
- Pour le "while" tu modifies le nombre de lignes pour arrêter la boucle. Modifie ta condition plutôt : while (... && !ok)
- "ok" n'est pas super non plus ("trouvé" serait plus parlant)
- Pour le for, tu modifies l'indice dans la boucle pour arrêter plus tôt ce qui n'est pas non plus une bonne idée au niveau lisibilité. Utilise à nouveau le "ok" (ou plutôt le "trouvé")
- tant qu'on y est le nom "nbre" n'a pas l'air en rapport avec ce que la variable contient; ce ne serait pas "colonne" plutôt ?

mcd

Nombre de messages : 1548
Prénom : Marco
Statut : prof
Localisation : Molenbeek
Date d'inscription : 29/09/2006

http://mcd.namok.be

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  Morbid le Jeu 29 Nov 2007, 15:19

AngelKML a écrit:...

Hum ...

Jdis ca jdis rien mais ma signature en longueur-largeur rentrais au moins trois fois dans la sienne ...

Et puis c'est aussi la taille(ou poids ou appel ca comme tu veux xD) qui est chiant ...


Dernière édition par le Jeu 29 Nov 2007, 15:21, édité 1 fois

Morbid

Nombre de messages : 894
Age : 30
Prénom : Christophe
Statut : Ancien (R)
Date d'inscription : 23/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  justblaze le Jeu 29 Nov 2007, 15:21

tant qu'on y est le nom "nbre" n'a pas l'air en rapport avec ce que la variable contient; ce ne serait pas "colonne" plutôt ?
oui c'est bien cela, "nbre" équivaut aux colonnes du tableau!! ben je vais réécrire un autre code avec les infos que vous m'avez fournies. merci

justblaze

Nombre de messages : 159
Age : 30
Prénom : Ismael
Statut : Etd 3R11
Localisation : Wolu. St. Lambert
Date d'inscription : 09/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  yoda le Jeu 29 Nov 2007, 15:24

et dans les economies ... faut pas tester au dessus evidemment ...

ni a gauche si on est a gauche, ni a droite si on est a droit ... mais cela en recursif, faut meme pas le prevoir, ca se fait tout seul ...

par exemple faire une methode qui renvoi le nombre de pion present de la meme couleur et pour une direction donnee ... et pis tu additionne les nombres pour les directions opposee, ca me semble encore assez sympa.

et concernant les debat de taille et poids de signature ... c'est pasque une signature de taille monstrueuse non optimisee passe sans probleme dans les connexion actuelle que y faut pas aller vers le bien ... 15 signature monstrueuse sur la meme page, ca vas plus bien du tout ...

pose un peux la meme attitude sur ta conception de programme informatique. a quoi ca sert d'optimiser ses programmes et l'occupation memoire alors que tout le monde a au moins 2 go de ram et des processeur quad core de 3 ghz ... on peux faire des truc bourrin, on s'en fout, le processeur et la ram sont assez rapide pour que ca se voye pas pour l'utilisateur ...

c'etait mes deux cents

yoda

Nombre de messages : 1119
Age : 33
Prénom : Antoine
Statut : Ancien
Localisation : Bruxelles
Date d'inscription : 17/12/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  justblaze le Jeu 29 Nov 2007, 15:29

ok Wink vais essayer de faire ça!!

justblaze

Nombre de messages : 159
Age : 30
Prénom : Ismael
Statut : Etd 3R11
Localisation : Wolu. St. Lambert
Date d'inscription : 09/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  pbt le Jeu 29 Nov 2007, 15:29

pour les différents codes de couleurs, je dois les placer dans quel fichier??
Soit tu les écrits dans ton programme. Tu n'oulies pas que ce sont des String que tu devras afficher et plus des char.
Soit tu utilises la classe pbt.packages.CouleurTerminal qui contient les contantes de type String qui vont bien. Et tu peux écrire
Code:
System.out.println(CouleurTerminal.RED + "R" + CouleurTerminal.DEFAULT);

J'étais distrait car je n'ai pas fait le lien avec le TD9 (et c'est moi qui l'ai écrit %-D ).

Pour ce qui est de la recherche du gagant, ce serait plus rapide si l'on sait où l'on pose le dernier jeton. Il suffit alors de chercher à partir de là.
Dans notre cas (comme on ne le sait pas) il faut chercher "partout" ... ou
s'arranger pour savoir où se trouve le dernier jeton posé.

Bref pour chaque position analysée, il faut dans toutes les directions
(8 directions) regarder si les 3 jetons qui suivent sont de la même couleur que moi. Si oui j'ai un gagnant.

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  erka le Jeu 29 Nov 2007, 15:31

pose un peux la meme attitude sur ta conception de programme informatique. a quoi ca sert d'optimiser ses programmes et l'occupation memoire alors que tout le monde a au moins 2 go de ram et des processeur quad core de 3 ghz ... on peux faire des truc bourrin, on s'en fout, le processeur et la ram sont assez rapide pour que ca se voye pas pour l'utilisateur ...


c'est a priori ce que microsoft doit penser quand on voit comment windows vista demande des ressources a crevé ...

erka

Nombre de messages : 495
Age : 29
Prénom : Julian
Statut : ancien reseaux
Localisation : Charleroi
Date d'inscription : 23/10/2006

http://www.vanden.be

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  pbt le Jeu 29 Nov 2007, 15:45

yoda a écrit:pose un peux la meme attitude sur ta conception de programme informatique. a quoi ca sert d'optimiser ses programmes et l'occupation memoire alors que tout le monde a au moins 2 go de ram et des processeur quad core de 3 ghz ...
Allez un peu de lecture pour ne pas continuer sur les 56.79kB de la signature de Morbid et les 107.5 de Justblaze.
Je ne l'ai pas encore lu donc vous pourrez me dire si ça vaut la peine que je lise ... c'est un article de Ulrich Drepper [pdf]

_________________
smartq.namok.be · faq ·  · IRC / irc.freenode.net #esi · blog.namok.be
style #pbt {heigth:189cm; weight:79kg; eye-color:#524000; hair:very short; dead pixels: some; }

pbt
Admin

Nombre de messages : 4862
Age : 45
Prénom : Pierre
Statut : prof
Localisation : La cité des géants
Date d'inscription : 24/11/2005

http://esi.namok.be

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  justblaze le Jeu 29 Nov 2007, 16:02

Bref pour chaque position analysée, il faut dans toutes les directions
(8 directions) regarder si les 3 jetons qui suivent sont de la même couleur que moi. Si oui j'ai un gagnant.

mais Mr. si maintenant le dernier jeton posé est le 2iem ou le 3iem de l'alignement il faudra tester
- le jeton précédent et les 2 suivants
- les 2 jetons précédents et le jeton suivant
donc ça se complique un peu..

justblaze

Nombre de messages : 159
Age : 30
Prénom : Ismael
Statut : Etd 3R11
Localisation : Wolu. St. Lambert
Date d'inscription : 09/11/2006

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  AngelKML le Jeu 29 Nov 2007, 16:21

En fait pour une logique première c'est difficile et compliqué mais avec ce que t'apprends en logique deuxieme DONT LE RECURCIF que propose yoda ça se simplifie mais comme tu es en 1 ere et que tu veux utiliser les outils de 1 ère tu ne peux pas connaitre le RECURCIF

ps : honte à moi mais 114 pages en anglais je le fais pas à cette heure çi Sleep

AngelKML

Nombre de messages : 296
Age : 28
Prénom : Kamel
Statut : Ancien informatiCHIEN reconvertit en INSTIT
Localisation : Bruxelles Ixelles 1050 Rue du trône dans dans ma chambre
Date d'inscription : 07/01/2007

http://angelk.skyblog.com

Revenir en haut Aller en bas

Re: [résolu][LAJ1] - Puissance4

Message  Contenu sponsorisé Aujourd'hui à 01:11


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum