cs_rosesamiarose
Messages postés4Date d'inscriptionsamedi 24 décembre 2011StatutMembreDernière intervention31 décembre 2011
-
25 déc. 2011 à 19:02
cs_rosesamiarose
Messages postés4Date d'inscriptionsamedi 24 décembre 2011StatutMembreDernière intervention31 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);
}
}
}
cs_Julien39
Messages postés6414Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention29 juillet 2020371 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" :
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 ?