Bonjour,
Je suis là de nouveau!! :)
J'ai crée un struct qui s'appelle "pièce" avec un contour(o,#,+,*), une forme(carré, losange, croix) et un lettre à l'intérieur(A,B,C,D)..et tout ça en aléatoire. Tout marche bien, mais...
maintenant, j'ai un ptit souci. Je n'arrive pas à intégrer ma fonction qui génère le contour de façon aléatoire. Est-ce que quelqu'un peut m'aider???
Merci BCP et dzlé pour mes messages aussi longs :)
J'ajoute mon code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
typedef struct piece{
int forme;
int contour;
int lettre;
}piece;
typedef piece* Piece;
struct matrice
{
int lignes, colonnes;
Piece **coefficients;
} matrice;
void affiche_matrice( struct matrice *A)
{
int i, j;
for(i=0; i< A->lignes; i++){
for(j=0;j< A->colonnes;j++){
printf("+-----");
}
printf("+\n");
/*1ere ligne*/
for(j=0;j<A->colonnes;j++)
{
if((*(A->coefficients[i][j])).forme==1) {
printf("|%c%c%c%c%c",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour);
}
else if ((*(A->coefficients[i][j])).forme==2)
{
printf("| %c " ,(*(A->coefficients[i][j])).contour);
}
else if ((*(A->coefficients[i][j])).forme==3)
{
printf("| %c%c%c ",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour);
}
else{
printf("| ");
}
}
printf("|\n");
/*2ere ligne*/
for(j=0;j<A->colonnes;j++)
{
if((*(A->coefficients[i][j])).forme ==1)
{
printf("|%c %c",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour);
}
else if((*(A->coefficients[i][j])).forme ==2){
printf("| %c %c ",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour);
}
else if((*(A->coefficients[i][j])).forme ==3){
printf("|%c%c %c%c",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour);
}
else
{
printf("| ");
}
}
printf("|\n");
/*3eme ligne*/
for(j=0;j<A->colonnes;j++)
{
if((*(A->coefficients[i][j])).forme ==1){
printf("|%c %c %c",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).lettre,(*(A->coefficients[i][j])).contour);
}
else if((*(A->coefficients[i][j])).forme ==2){
printf("|%c %c %c",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).lettre,(*(A->coefficients[i][j])).contour);
}
else if((*(A->coefficients[i][j])).forme ==3){
printf("|%c %c %c",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).lettre,(*(A->coefficients[i][j])).contour);
}
else{
printf("| ");
}
}
printf("|\n");
/*4eme ligne*/
for(j=0;j<A->colonnes;j++){
if((*(A->coefficients[i][j])).forme ==1){
printf("|%c %c",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour);
}
else if((*(A->coefficients[i][j])).forme ==2){
printf("| %c %c ",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour);
}
else if((*(A->coefficients[i][j])).forme ==3){
printf("|%c%c %c%c",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour);
}
else{
printf("| ");
}
}
printf("|\n");
/*5eme ligne*/
for(j=0;j<A->colonnes;j++){
if((*(A->coefficients[i][j])).forme ==1){
printf("|%c%c%c%c%c",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour);
}
else if((*(A->coefficients[i][j])).forme ==2){
printf("| %c ",(*(A->coefficients[i][j])).contour);
}
else if((*(A->coefficients[i][j])).forme ==3){
printf("| %c%c%c ",(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour,(*(A->coefficients[i][j])).contour);
}
else
{
printf("| ");
}
}
printf("|\n");
}
for(j=0;j<A->colonnes;j++) {
printf("+-----");
}
printf("+\n");
}
int randomcontour()
{
int MIN=0;
int MAX=3;
int W=35;
int X=43;
int Y=42;
int Z=111;
int i=0;
int j,k;
srand(time(NULL));
for(i=MIN;i<MAX+1;i++)
{
j=(rand()%(MAX-MIN+1))+MIN;
}
if(j==0)
{
return Y;
}
if(j==1)
{
return X;
}
if(j==2)
{
return W;
}
if(j==3)
{
return Z;
}
return j;
}
int main (int argc,char *argv [])
{
/*int a=35;
int b=43;
int c=42;
int d=111;
int MAX=a;
int MIN=d;
int k=0;*/
// j'ai crée ces variables pour essayer une fonction random qui utilise les bornes a et d avec les valeurs "int" qui me donnent les contours (o,#,+,*) si les affiche en type char (%c)...mais cela ne marche pas :( //
srand(time(NULL));
printf("%c\n",randomcontour());/* test pour prouver la fonction*/
struct matrice *A = malloc ( sizeof ( struct matrice ) ) ;
int lignes,colonnes;
int i, taille,j;
printf("ingrese lignes:");
scanf("%d",&lignes);
printf("ingrese colonnes:");
scanf("%d",&colonnes);
A-> lignes=lignes;
A-> colonnes=colonnes;
A-> coefficients = (Piece**)malloc ( (A -> lignes)* sizeof ( Piece* ) ) ;
taille=(A->lignes*A->colonnes);
printf("talla %d\n",taille);
for(i=0;i<A->lignes;i++)
{
A -> coefficients [i] = (Piece*)malloc (( A -> colonnes) * sizeof (piece* ) ) ;
for(j=0;j<A->colonnes;j++)
{
piece* nbr=(piece*)malloc(sizeof(piece));
nbr->forme=(rand()%(3-1+1))+1;
nbr->contour='#'; /*CELA OU IL FAUT INTEGRER LA FONCTION*/
nbr->lettre=(rand()%(69-65+1))+65;
A->coefficients[i][j]=nbr;
}
}
affiche_matrice(A);
return 0;
}
Afficher la suite