1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
| #include <stdlib.h>
#include <stdio.h>
#include "fonctions.c"
//--------------------------------------
int main(int argc,char*argv[]) {
//Arguments d'entree//
int i=0;
int j=0;
printf("Parametres d'entree : ");
printf("argc =%d\n\n",argc);
for (i=0;i<argc;i++){
printf("argv[%d]=%s\n",i,argv[i]);
}
printf("\n");
//-------------------------------------------------------
//recuperation du puzzle de depart//
char matrix1[TAILLE_1][TAILLE_1];
for (i=0;i<TAILLE_1;i++){
for (j=0;j<TAILLE_1;j++){
matrix1[i][j]=argv[1][i*TAILLE_1+j];
}
}
//-------------------------------------------------------
//affichage du puzzle de depart//
printf("Puzzle de depart : \n");
for(i=0; i<TAILLE_1; i++) {
for(j=0; j<TAILLE_1; j++){
printf("%c ", matrix1[i][j]);
}
printf("\n");
}
//-------------------------------------------------------
//recuperation du puzzle d'arrivee//
char matrix2[TAILLE_1][TAILLE_1];
for (i=0;i<TAILLE_1;i++){
for (j=0;j<TAILLE_1;j++){
matrix2[i][j]=argv[2][i*TAILLE_1+j];
}
}
//-------------------------------------------------------
//affichage du puzzle d'arrivee//
printf("Puzzle d'arrivee : \n");
for(i=0; i<TAILLE_1; i++){
for(j=0; j<TAILLE_1; j++){
printf("%c ", matrix2[i][j]);
}
printf("\n");
}
//-------------------------------------------------------
//comparaison des deux matrices//
char temp1[TAILLE_2];
char temp2[TAILLE_2];
short c=0;
for(i=0;i<TAILLE_1;i++){
for(j=0; j<TAILLE_1; j++){
temp1[i*TAILLE_1+j]=matrix1[i][j];
temp2[i*TAILLE_1+j]=matrix2[i][j];
}
}
for (i=0; i<TAILLE_2; i++){
for (j=0; j<TAILLE_2; j++){
if (temp1[i]==temp2[j]){
c++;
}
}
}
if (c<TAILLE_2){
printf("les 2 matrices ne contiennent pas les memes elements");
}else{
//-------------------------------------------------------
//Calcul des erreurs//
int errtot;
errtot=calcul_erreur(matrix1,matrix2);
printf("total erreurs : %d",errtot);
//---------------------------------------------------------
//Choix aleatoire d'un element a deplacer
int m=0;
char direction;
int k;
int l;
while (m==0){
k=r();
sleep(SUP);
l=r();
if (matrix1[k][l]==SP)
{
m=0;
}
else if (matrix1[k+1][l]==SP && k+1<TAILLE_1)
{
m=1;
direction='b';
}
else if (matrix1[k-1][l]==SP && k-1>0)
{
m=1;
direction='h';
}
else if (matrix1[k][l+1]==SP && l+1<TAILLE_1){
m=1;
direction='d';
}
else if (matrix1[k][l-1]==SP && l-1>0){
m=1;
direction='g';
}
else{
m=0;
}
}
printf("lettre aleatoire : %c",matrix1[k][l]);
printf("coords : %d | %d \n",k,l);
printf("\ndeplacable a : %c",direction);
}
//--------------------------------------
printf("fin\n");
return 0;
} |
Partager