Damier

cs_rosesamiarose Messages postés 4 Date d'inscription samedi 24 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011 - 25 déc. 2011 à 19:02
cs_rosesamiarose Messages postés 4 Date d'inscription samedi 24 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011 - 31 déc. 2011 à 17:00
bonsoir, j'ai un code source qui me donne une applet qui affiche une damier, j'ai réalisé le code source comme il faut et avec aucune erreur mais il n'y a pas d'affiche. merci de m'aider car j'ai tout essayer; c'est le code source:

package exercice5;
import java.awt.*;
import java.applet.*;
public class damier extends Applet
{ int k; int x,y; String s1,s2;
public void init()
{
setForeground(Color.red);
s1=getParameter("nombre de ligne");
x=Integer.parseInt(s1);
x=8;
s2=getParameter("largeur de carré");
y=Integer.parseInt(s2);
y=20;
setBackground(Color.black);
}
public void paint(Graphics g)
{
for(int i=1;i<=y;i++)
{
k=0;
for(int j=1;j<=(y/2);j++)
{
if((i%2)==0)
{
g.drawRect(i*x,(j*x)+k,x,x);
k+=x;
g.fillRect(i*x,(j*x)+k,x,x);}
else
{
g.fillRect(i*x,(j*x)+k,x,x);
k+=x;
g.drawRect(i*x,(j*x)+k,x,x);};
}
}
g.drawRect(x,x,y*x,y*x); k=0;
if((y%2)!=0)
{
for(int i=1;i<=(y/2);i++)
{
g.fillRect((i*x)+k,y*x,x,x);
k+=x;
g.drawRect((i*x)+k,y*x,x,x);}
g.fillRect(y*x,y*x,x,x);
}
}
}

3 réponses

cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 367
25 déc. 2011 à 21:39
Bonjour,

Je n'ai pas regardé ton code, détecter une erreur d'affichage en lisant n'est pas évident. Par contre, je te conseille de regarder cette source qui te créé un damier plus "proprement" :

http://www.javafr.com/codes/JEU-DAMES_53760.aspx
0
Utilisateur anonyme
26 déc. 2011 à 05:58
Salut,

Ce code fonctionne très bien s'il est lancé correctement.

Puisque c'est un damier il doit comprendre 100 cases, soit 10 "lignes" de 10 cases chacune.

Le paramètre s1 n'est pas le nombre de lignes mais la taille d'une case sachant que les cases sont carrées.

Le paramètre s2 n'est pas la taille d'une case mais le nombre de cases par lignes, et c'est aussi le nombre de lignes du damier.

À noter cette grosse anomalie:

x=Integer.parseInt(s1); 
x=8;

quelle que soit la valeur de s1, x sera à 8.

Idem pour y = 20 quelle que soit la valeur de s2

Tu peux faire un test en remplacant

s1=getParameter("nombre de ligne"); 
x=Integer.parseInt(s1); 
x=8; 
s2=getParameter("largeur de carré"); 
y=Integer.parseInt(s2); 
y=20;


par

//s1=getParameter("nombre de ligne"); 
//x=Integer.parseInt(s1); 
x = 33; 
//s2=getParameter("largeur de carré"); 
//y=Integer.parseInt(s2); 
y=10;


et voir le beau damier se déssiner (peut-être un peu trop beau concernant les couleurs, ne pas oublier que les pions se posent sur les case sombres et donc que les pions noirs sur les cases noires ne seront pas visibles).


Au fait comment lances-tu ton applet ?
Tu utilises un .html ?


Cordialement,


...\ Dan /...
0
cs_rosesamiarose Messages postés 4 Date d'inscription samedi 24 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011
31 déc. 2011 à 17:00
j'utilise l'eclipse pour executer les codes
0