#define M 10 // lignes
#define N 10 // colonnes
#define Y M-2 // lignes
#define X N-2 // colonnes
#define CASE 50
//case ca désigne quoi!!!
#define TRAIT 2
//pareil pour trait
#define BORD 2
//et également pour bord
CINI_fill_rect(X0 + BORD + (i-1)*(TRAIT + CASE), Y0, TRAIT, terrain_Y, "grey") ;
fatal_error a écrit:on va clairement pas s'en sortir si tu y vas au compte goutte.
Donc :
- tu n'as toujours pas dit ce que fait CINI_fill_rect, ni à quoi servent ses arguments
- lorsque tu montres une image, montre son code associé, sinon on peut pas deviner
CINI_fill_rect(X0, Y0, LARGEUR, HAUTEUR, COULEUR) pour dessiner un rectangle avec (X0, Y0) les coordonnées du sommet supérieur gauche.
fatal_error a écrit:Enfin:
- Code: Tout sélectionner
#define M 10 // lignes
#define N 10 // colonnes
#define Y M-2 // lignes
#define X N-2 // colonnes
ces commentaires sont complètement incohérents. si M vaut 10 et désigne "lignes" c'est quoi "lignes", alors pourquoi Y=8 désigne la même chose!!!!
Pour ne pas avoir de pb pour les cases à la limite, le DM impose une grille de dimension M+2*N+2 mais seulement la grille M*N sera affichée (les autres cases, elles seront non minées par défaut).
"fatal_error" a écrit:
- Code: Tout sélectionner
#define CASE 50
//case ca désigne quoi!!!
#define TRAIT 2
//pareil pour trait
#define BORD 2
//et également pour bord
"fatal_error" a écrit:Mais sinon, c'est juste un problème d'indice, qui se résoud trivialement:
- Code: Tout sélectionner
CINI_fill_rect(X0 + BORD + (i-1)*(TRAIT + CASE), Y0, TRAIT, terrain_Y, "grey") ;
semble tracer une ligne. (oui, en fait un rectangle mais ce DM impose aux traits des largeurs, donc cela revient à tracer des rectangles de largeurs fines ...)
Ben tu crèes ta fonction qui trace ca.
et tu vérifies pour chaque valeur de X passé quelle est la ligne qui est tracée...
//border-top
CINI_fill_rect(X0, Y0, terrain_X, BORD, "grey") ;
//border-bottom
CINI_fill_rect(X0, Y0 + terrain_Y, terrain_X, BORD, "grey") ;
//border-left
CINI_fill_rect(X0, Y0,BORD, terrain_Y, "grey") ;
//border-right
CINI_fill_rect(X0 + terrain_X - BORD, Y0,BORD, terrain_Y, "grey") ;
//je suggère de tracer le contour en red pour etre sur qu'il est bien délimité
//on trace donc les traits uniquement a l'intérieur
//il y a X colonnes donc X+1 traits
//on enleve les deux traits de contour : X+1 -2 =X-1
for (i=0 ; i < X-1 ; i++) { //on va tracer exactement X-1 traits
//on commence à partir de
//bord gauche + taille case
int offsetLeft = X0+BORD+CASE;
CINI_fill_rect(offsetLeft + i*(TRAIT + CASE), Y0, TRAIT, blabla) ;
}
for (i=0 ; i < X+1 ; i++) { //on va tracer exactement X+1 traits
//on commence à partir de bord gauche
int offsetLeft = X0+BORD
CINI_fill_rect(offsetLeft + i*(TRAIT + CASE), Y0, TRAIT, blabla) ;
}
#include
#define M 10 // lignes
#define N 10 // colonnes
#define Y M-2 // lignes
#define X N-2 // colonnes
#define CASE 50
#define TRAIT 2
#define BORD 2
#define X0 10
#define Y0 10
#define terrain_X 2*BORD + CASE*X + TRAIT*(X-1) // largeur
#define terrain_Y 2*BORD + CASE*Y + TRAIT*(Y-1) // hauteur
#define NBR_MINES 20
void afficher_terrain() {
int i ;
CINI_fill_rect(X0, Y0, terrain_X, BORD, "red") ;
CINI_fill_rect(X0, Y0 + terrain_Y, terrain_X, BORD, "red") ;
CINI_fill_rect(X0, Y0,BORD, terrain_Y, "red") ;
CINI_fill_rect(X0 + terrain_X - BORD, Y0,BORD, terrain_Y, "red") ;
for (i=0 ; i < X-1 ; i++) { //on va tracer exactement X-1 traits
//on commence à partir de
//bord gauche + taille case
int offsetLeft = X0+BORD+CASE;
CINI_fill_rect(offsetLeft + i*(TRAIT + CASE), Y0, TRAIT, terrain_Y, "grey") ;
}
}
int main() {
CINI_open_window(2*BORD + CASE*X + TRAIT*(X+1) + 20, 2*BORD + CASE*Y + TRAIT*(Y+1) + 20, "Demineur") ;
afficher_terrain() ;
CINI_loop() ;
return 0 ;
}
int offsetLeft = X0+BORD+CASE;
int x=offsetLeft + i*(TRAIT + CASE);
prinft("%d",x);
CINI_fill_rect(x, Y0, TRAIT, terrain_Y, "grey") ;
}
CINI_fill_rect(X0, Y0,BORD, terrain_Y, "red") ;
normalement X0==10
CINI_fill_rect(X0 + terrain_X - BORD, Y0,BORD, terrain_Y, "red") ;
normalement x0==10+400+20 (a peu pres)
canvas{background-color:#eeeeee;}
var ctx=document.getElementById('canvas').getContext('2d');
function CINI_fill_rect(x,y,width,height,color){
ctx.fillStyle= color;
ctx.fillRect(x,y,width,height);
}
function CINI_open_window(x,y){
document.getElementById('canvas').width=x;
document.getElementById('canvas').height=y;
}
var M=10,
N=10,
Y=M-2,
X=N-2,
CASE=50,
TRAIT=2,
BORD=2,
X0=10,
Y0=10,
terrain_X=2*BORD + CASE*X + TRAIT*(X-1),
terrain_Y=2*BORD + CASE*Y + TRAIT*(Y-1);
function afficher_terrain() {
CINI_fill_rect(X0, Y0, terrain_X, BORD, "red") ;
CINI_fill_rect(X0, Y0 + terrain_Y, terrain_X, BORD, "red") ;
CINI_fill_rect(X0, Y0,BORD, terrain_Y, "red") ;
CINI_fill_rect(X0 + terrain_X - BORD, Y0,BORD, terrain_Y, "red") ;
for (var i=0 ; i
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :