Programmation du Jeu des Dames Chinoises
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Cartes Pokémon : la prochaine extension Pokémon sera EV6.5 Fable ...
Voir le deal

Modélisation du plateau

3 participants

Aller en bas

Modélisation du plateau Empty Modélisation du plateau

Message par Mellyra Sam 20 Oct - 15:05

Juste un petit message pour lancer ce vaste sujet...

La prof proposait donc de modéliser notre plateau par une matrice et d'avoir plein de points qui ne servent à rien.
Pas très efficace, mais pratique, je dois avouer...

On modélise ensuite les déplacements grâce aux numéros des cases
(-2,0) pour se déplacer horizontalement vers la gauche par exemple car il faut sauter une case qui sert à rien,
ou (1,1) pour se déplacer en diagonale.

Si d'autres idées vous traversent la tête...
Mellyra
Mellyra
Admin

Nombre de messages : 118
Age : 37
Localisation : Dans mon lit ^^
Date d'inscription : 18/10/2007

https://dameschinoises.forumpro.fr

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par Kerigwenn Sam 20 Oct - 20:38

Pareil.
Le déplacement reviendrait à un calcul d'indice dans la matrice (deux en horizontale, duex selon chaque diagonale).

J'ai commencé à regarder pour une version où on remplirait d'abord une matrice (17 lignes, 25 colonnes) de "-99"; avec ensuite rajout de "0" pour les cases actives. Je ne voulais pas partir sur une différenciation des cases à ce moment, pensant que ça serait trop lourd à programmer (à moins que vous n'ayez une solution).

Par manque de temps je n'ai pas encore abouti, mais mon idée était de compléter les cases à activer en progressant diagonale par diagonale (pour faire un premier grand triangle d'abord, puis les 4 autres petits triangles du plateau).

Si quelqu'un voit quelque chose de plus efficace...
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par Kerigwenn Dim 21 Oct - 19:16

(en fait, on peut aussi remplir ligne par ligne, ça revient au même...^^)
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par Kerigwenn Mar 30 Oct - 13:49

Bonjour tout le monde

Après quelques heures de sommeil voilà enfin la façon de programmer le plateau de jeu initial qui me semble la plus efficace: je décompose hexagone central et triangles périphériques.
L'avantage de cette méthode est qu'en créant le plateau de jeu, on l'initialise du même coup (cases inactivées fixées à -9, cases vides à 0 et cases comportant un pion fixées à 1).

L'astuce pour avoir des "bordures de remplissage" en diagonale est de prendre des bornes "flottantes" dans la boucle FOR (borne_inf et borne_sup). Pour bien comprendre, le mieux est de vous faire votre schéma.. à vos crayons, donc. Explications de vive voix à la rentrée si besoin.

Si vous voyez des améliorations, faites signe.

Hoplà, bonnes vacances
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par Kerigwenn Mar 30 Oct - 13:52

pour les améliorations: je pense à celles qui ont lu le programme Matlab de Sarah-sorcha...
moi je l'ai toujours pas fait :p
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par Kerigwenn Mar 30 Oct - 13:57

Création du plateau de jeu initial



Version qui ne plante pas car on tient compte du fait que l'indexation d'un tableau commence à O Smile



#include<stdio.h>

#include<stdlib.h>



main(){

int Plateau[17][25];

int l,c,cpt,borne_inf,borne_sup;

int l2,c2, borne_inf2, borne_sup2;



//Formation de la matrice de cases inactivées

for(l=0;l<17;l++){

for(c=0;c<25;c++){

Plateau[l][c]=-9;

}

}



//Vérification de l'écriture de la matrice initiale (inactivée)

for(l=0;l<17;l++){

for(c=0;c<25;c++){

printf("%3d",Plateau[l][c]);

}

printf("\n");

}



printf("\n");



//Activation des cases de jeu: hexagone central (cases vides)

//On utilise la symétrie par rapport à la ligne centrale de l'hexagone

cpt=0;

borne_inf=5;

borne_sup=21;



//Ligne du milieu, à n'écrire qu'une fois

for(c=borne_inf-1;c<borne_sup;c=c+2) Plateau[9-1][c]=0;



//Autres lignes

for(l=8-1;l>=5-1;l--){

borne_inf++;

borne_sup--;

cpt++;

for(c=borne_inf-1;c<borne_sup;c=c+2){

Plateau[l][c]=0;

Plateau[l+2*cpt][c]=0;

}



}



//Vérification de l'écriture de la matrice à ce stade (hexagone seul)

for(l=0;l<17;l++){

for(c=0;c<25;c++){

if (Plateau[l][c]!=-9) printf("%3d",Plateau[l][c]);

else printf(" ");

}

printf("\n");

}



//Activation des cases de jeu: triangles périphériques (cases pleines)

//On utilise toutes les symétries...

cpt=1;

borne_inf=1;

borne_sup=7;

for(l=5-1;l<=8-1;l++){

l2=l-cpt;

for(c=borne_inf-1;c<borne_sup;c=c+2){

Plateau[l][c]=1;

Plateau[17-(l+1)][c]=1;

Plateau[l][25-(c+1)]=1;

Plateau[17-(l+1)][25-(c+1)]=1;

}

//Ecriture des triangles "centraux"

borne_inf2=borne_inf+9;

borne_sup2=borne_sup+9;

for(c2=borne_inf2-1;c2<borne_sup2;c2=c2+2){

Plateau[l2][c2]=1;

Plateau[17-(l2+1)][c2]=1;

}



borne_inf++;

borne_sup--;

cpt=cpt+2;

}



//Vérificataion : écriture du plateau final Smile

for(l=0;l<17;l++){

for(c=0;c<25;c++){

if (Plateau[l][c]!=-9) printf("%3d",Plateau[l][c]);

else printf(" ");

}

printf("\n");

}

system("Pause");}
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par Mellyra Mar 30 Oct - 15:20

Euh en fait, je pense arriver a faire l'affichage dans une fenetre, je vais me servir de ton algo, merci.
Je vais aussi faire la prise en charge de la soureis et on pourra rajouter la prise en charge des touches du clavier pour que les 2 marchent au choix.
Je vous propose un truc: Si j'ai reussi a faire ca pour la rentree, vous serez obligee d'apprendre aussi Razz !!
Vous verrez c'est super simple en fait. Y'a juste un petit truc a installer sur l'ordi, il suffit de le fournir avec le jeu pour que ca marche sur tous les ordis.
Voila, je vous montrerai ce que j'aurai fait a la rentree.
Merci pour l'algo Audrey.
Je reviens dans quelques jours^^.
Mellyra
Mellyra
Admin

Nombre de messages : 118
Age : 37
Localisation : Dans mon lit ^^
Date d'inscription : 18/10/2007

https://dameschinoises.forumpro.fr

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par Mellyra Mar 30 Oct - 15:23

Et encore bravo, ca marche impec ta programmation!!
Mellyra
Mellyra
Admin

Nombre de messages : 118
Age : 37
Localisation : Dans mon lit ^^
Date d'inscription : 18/10/2007

https://dameschinoises.forumpro.fr

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par Mellyra Mar 30 Oct - 20:20

Juste pour vous dire que j'ai bien avancé l'interface, ca marche a merveille meme si pour tester, j'ai mis des graphiques de merde, donc j'espere que ca vous plaira et que vous accepterez de perdre 2 ou 3 heures pour apprendre a vous servir de ca, parce que c'est vraiment simple et ca rendra mieux qu'en mode console comme on le faisait jusqu'a present, et surtout surtout ca nous permettra de jouer avec la souris super facilement!!
Je vous enverrai le resultat d'ici quelques jours si j'ai le temps de l'avancer encore, mais je suis contente de ce que j'arrive a faire, c'est hallucinant!!

Allez voir mon post pour avoir le site où tout est expliqué dans "Pendant les vacances" ^^

PS pour Audrey: C'est toi qui l'as inventé toute seule ton truc de fous avec les symétries??? Shocked
Mellyra
Mellyra
Admin

Nombre de messages : 118
Age : 37
Localisation : Dans mon lit ^^
Date d'inscription : 18/10/2007

https://dameschinoises.forumpro.fr

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par Mellyra Mar 30 Oct - 20:48

Bon, j'ai voulu vous montrer ce que j'avais programmé mais c'est trop long ca m'a coupé le programme au beau milieu, je vous envoie donc seulement le résultat qui pour le moment est tout a fait laid car j'ai juste mis une forme.C'est juste pour avoir un apercu!
La couleur des cases se change en un clin d'oeil!
Je vais maintenant m'attaquer a la gestion de la souris.

Après, je ferai la gestion du clavier et a la rentree,, je vous montre comment ca marche trop bien^^!!

Bisous!

Modélisation du plateau Ecranmardiuo0

Notez le titre de la fenetre, et tout ^^
La classe non?
Je rajoute un petit fond sonore? un logo? un menu et des options? Smile
Par contre, je ne m'attaque pas a minmax toute seule,je vous attends pour cette galere! tongue

Il me tarde que ce soit fini! Exclamation

Par contre, si vous ne lisez pas le tutorial dont je vous ai parlé, le programme va vous faire peur affraid ...
Mellyra
Mellyra
Admin

Nombre de messages : 118
Age : 37
Localisation : Dans mon lit ^^
Date d'inscription : 18/10/2007

https://dameschinoises.forumpro.fr

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par Kerigwenn Mer 31 Oct - 14:04

hello

nice work Smile !
ça me plaît beaucoup, on verra ce qu'en disent Sarah et Camille. A mon avis c'est tout bon, bravo à toi!

Pour MinMax, je pense regarder ça dans le train (insomnies...) mais je vais commencer par une autre version que la tienne. Déjà comprendre, le reste on verra ensuite.

Me suis attaquée à une fonction "déplacer": il faut que je prenne quoi en compte, alors? comment ton interface fait-il le lien entre le clic de souris, la case et le déplacement?
Tu gardes la matrice "Plateau" que j'ai créé, et tu as deux valeurs successives (départ, arrivée)?
Je pars sur cette base pour réfléchir (je ne pourrais plus me connecter avant dimanche soir sans doute).
J'essaie d'inclure les fonctions de contrôle de déplacement (cas du joueur humain).

Si j'ai le temps je commence à réfléchir à la façon de faire "réagir" l'ordi - mais ça j'espère qu'on pourra voir les détails ensembles ^^

Sinon: oui, les symétries, ça vient tout de moi. J'avoue avoir eu un grand moment de joie quand, après pas mal de tergiversations, j'ai fini par trouver cette solution et voir qu'elle marchait... Ma famille m'a prise pour une tarée. Heureusement, les chevilles ont vite désenflé: de toute façon, j'arrive pas à passer les portes en sautillant les bras en l'air.
Ca te donne une idée du tableau hier matin. (mdr!)
Kerigwenn
Kerigwenn

Nombre de messages : 99
Localisation : ...sur ma chaise.
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par sorcha Jeu 1 Nov - 19:36

ouah! Surprised la vache c'est beau! affraid c'est dingue!magnifique(les mots me manquent ,j'en bafouille devant mon clavier)
par contre va me falloir un peu de temps pour COMPRENDRE drunken
je m'incline devant les cerveaux du c!
sorcha
sorcha

Nombre de messages : 18
Date d'inscription : 18/10/2007

Revenir en haut Aller en bas

Modélisation du plateau Empty Re: Modélisation du plateau

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser