Se connecter

Informatique

Programmation

Sujet : Jeu du taquin
1
titonioss
Niveau 7
18 mars 2018 à 11:01:28

Hello !
J'ai un exercice à réaliser en cours de c++, qui est de réaliser un jeu du taquin.
Alors voilà l’énoncé :

" L'objectif de ce TP est de construire un programme permettant de mener une partie
de taquin. La configuration d'un jeu de taquin est ainsi caractérisée par :
-
une grille de 3 x 3 cases, constituée d'éléments entiers qui sera
représentée par un tableau à deux dimensions.
Question 1
Ecrire la définition du taquin correspondant à un tableau à 2
dimensions de taille 3 x 3 à éléments entiers. La case libre sera représentée par un
9.
Question 2
Ecrire la fonction
initialisation
qui met le jeu de taquin dans une
configuration initiale aléatoire. La case libre se trouve en (p, p), en bas à droite. La
valeur de p étant ici 3. Les cases sont mélangées. Pour cela, vous utiliserez
l'algorithme suivant :
-
initialiser la grille dans la configuration gagnante ;
-
tirer au sort un entier n entre 1 et p² et échanger la 1
ère
case avec la n
ième
case. Recommencer avec la 2
ème
case, en tirant un entier compris entre 1
et p² et ainsi de suite jusqu'à avoir traité toutes les cases.
Question 3
Ecrire une fonction
affichage
qui affiche la grille du taquin, avec un
espace pour la case libre. "

Je bloque à la question 2, je sais que pour initialiser la grille en config gagnante c'est la grille de base que je créer à la question 1.
Mon problème étant le fait tirer au sort un entier et de permuter cette case avec la première, etc..

Voici le peu de code que j'ai fais :

" #include <iostream>

  1. include <array>
  2. include <ctime>
  3. include <cstdlib>

using namespace std;
const int nbcol = 3;
const int nblig = 3;
using taquin = array<array<int, nbcol>, nblig>;
void initialisation (taquin &t)
{
int nb = rand()% 2+0;
int a=1;
for (int i=0; i<3; i++)
{
for (int j=0; j<3; j++)
{
t[i][j]=a;
cout << t[i][j];
a++;
}
cout << endl;
}
}
int main()
{
srand(time(NULL));
taquin tab;
initialisation(tab);
return 0;
}
"

Le-Respect
Niveau 9
18 mars 2018 à 15:10:06

les balises code ça n'a pas été ajouté à jvc pour décorer

titonioss
Niveau 7
18 mars 2018 à 15:25:43

Excuse moi, je ne savais pas l'existence des balises code.

#include <iostream>
#include <array>
#include <ctime>
#include <cstdlib>
using namespace std;
const int nbcol = 3;
const int nblig = 3;
using taquin = array<array<int, nbcol>, nblig>;
void initialisation (taquin &t)
{
    int nb = rand()% 2+0;
    int a=1;
    for (int i=0; i<3; i++)
        {
            for (int j=0; j<3; j++)
                {
                    t[i][j]=a;
                    cout << t[i][j];
                    a++;
                }
            cout << endl;
        }
}
int main()
{
    srand(time(NULL));
    taquin tab;
    initialisation(tab);
    return 0;
}
godrik
Niveau 22
18 mars 2018 à 15:47:20

utilise une variable temporaire pour echanger deux valeurs
temp = echange1; echange1=echange2; echange2=temp;

titonioss
Niveau 7
18 mars 2018 à 19:05:46

Ok je vais essayer comme ça merci !

1
Sujet : Jeu du taquin
   Retour haut de page
Consulter la version web de cette page