Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » Plateau de jeu (24 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
geogeo Ecrit le: Vendredi 21 avril 2006 à 13:02 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Selon vous quelle est la meilleure méthode pour réprésenter un jeu de plateau qui a les régles suivantes.
Pouvoir empiler des pions, pouvoir les dépiler mais sur des cases toutes différentes, pouvoir rebondir sur les extrémités du plateau.
Actuellement j'ai représenté un plateau sous forme de matrice contenant les pions mais sous forme de pointeurs.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°1   Marquer comme non lu.
Onur Ecrit le: Vendredi 21 avril 2006 à 13:32 Déconnecté(e)    Voir le profil de Onur Envoyer un email à Onur Visiter le site WEB de Onur Envoyer un message privé à Onur  


tu peux donner plus de contraintes s'il y en a?
par exemple le nombre maximal de pions sur une case, le nombre maximal de pions sur tout le plateau etc..
On pourra peut etre alors representer des tableaux et/ou liste pour les pions et non pas pour le plateau.

A priori, l'histoire de rebondir sur les extremités sera exprimé à l'aide de l'opérateur modulo, quelque soit la structure de données choisie pour modéliser le jeu.
Je ne veux pas faire quelque chose de bien, je cherche l'excellence:ETP Studio...


et autres projets à finir avant 2010
    
./Post n°2   Marquer comme non lu.
geogeo Ecrit le: Vendredi 21 avril 2006 à 14:10 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Les régles du jeu sont ici:
http://perso.wanadoo.fr/rvo/gounki/rules.html
http://gounki.org/files/rules/Gounki-fr-v1.0.pdf

En gros voici comment ça se présente.
On a un plateau de 8x8 cases. Il y a 2 types de pions, les ronds et les carrés. Les ronds se déplacent en diagonale et les carrés verticalement ou horizontalement.
Dans ce jeu il est possible d'empiler plusieurs pièces de son camp pour pouvoir former de plus grands déplacements, ainsi une pièce contenant 2 ronds pourra être déplacée de 2 ou 1 case en diagonale. Maximum, on peut empiler 3 pièces.
On ne peut pas revenir en arrière, sauter par dessus une pièce.
Par contre il est possible de dépiler entièrement sa pièce mais avec la contrainte de dépiler tous les carrés ou ronds en premiers. (interdit de faire rond carré rond ou encore carré rond carré). On peut dépiler en rebondissant sur l'extrémité du plateau mais aussi en mangeant ou encore empiler d'autres pièces. Et enfin on ne peut dépiler que dans la même direction, interdit de dépiler en zigzaguant.
-Edité le Vendredi 21 avril 2006 à 14:18 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°3   Marquer comme non lu.
Thor Ecrit le: Vendredi 21 avril 2006 à 15:41 Déconnecté(e)    Voir le profil de Thor Envoyer un email à Thor Visiter le site WEB de Thor Envoyer un message privé à Thor  


Tu parle de la façon interne de représenter ou de la façon graphique?
Car moi pour représenter une pile je ferais comme tu as fais une matrice de pointeur vers des structures PILES
Cyril MOTTIER aka {==Thor==}
Modérateur général du forum de Tigen
[Etudiant à l'Institut National des Sciences Appliquées (INSA) de Rennes]
Mon site perso c'est ici
    
./Post n°4   Marquer comme non lu.
geogeo Ecrit le: Vendredi 21 avril 2006 à 15:43 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


De façon interne.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°5   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 21 avril 2006 à 20:02 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Je vois 3 représentations logiques:
1. une matrice 8*8*3 de type enum {EMPTY, CIRCLE, SQUARE};
2. une matrice 8*8*2 de type unsigned char (2 compteurs par case: nombre de ronds, nombre de carrés)
3. une matrice 8*8 de type entier avec des codes pour chacun des 10 contenus possibles (1 vide + 2 avec une pièce + 3 avec 2 pièces + 4 avec 3 pièces)
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°6   Marquer comme non lu.
geogeo Ecrit le: Vendredi 21 avril 2006 à 20:11 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Ok je vois. L'idée des compteurs me plait bien car elle va me permettre de résoudre un pb. La simulation de déplacements assez facilement.
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°7   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 21 avril 2006 à 20:49 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Ah oui, il y a aussi la distinction blanc/noir à faire. Ce que j'ai fait dans Backgammon, c'est prendre des compteurs signés et utiliser des comptages >0 pour blanc et <0 pour noir. Sinon, tu peux utiliser 4 compteurs (carrés blancs, ronds blancs, carrés noirs, ronds noirs) ou un flag (par exemple 0=blanc, 1=noir ou 1=blanc, 0=vide, -1=noir).
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°8   Marquer comme non lu.
geogeo Ecrit le: Samedi 22 avril 2006 à 12:22 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


La couleur n'est pas un problème, inutile d'avoir un compteur. On ne peut pas empiler des pions provenant de l'adversaire.
Le truc c'est que je dois être orienté objet, donc une classe pour gérer les pions, une pour le plateau...
Le pb c'est qu'avec la classe pion je ne peux pas créer un pion vide pour représenter une case vide, ça serait absurde. Donc comment faire pour représenter un plateau de jeu avec une classe de type pion (j'ai trouvé que l'idée des pointeurs).
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°9   Marquer comme non lu.
Sasume Ecrit le: Samedi 22 avril 2006 à 17:21 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Je ne vois pas le pb #trifus#
Tu as ta classe Plateau, qui contient un tableau 8*8 de Case. Le type Case permet de renseigner sur le contenu de la case : s'il y a des pions empilés dessus ou non. Si c'est le cas, il doit être possible d'accéder aux objets Pion concernés.
    
./Post n°10   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 22 avril 2006 à 18:39 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Une structure est une classe. :) Là où je dis "structure", tu peux mettre une classe, et un tableau 8*8*2 de type T peut être remplacé par un tableau 8*8 de type struct{T x,y;}. Tu peux utilisers des méthodes get/set pour ces variables aussi. Les méthodes set peuvent aussi vérifier les invariantes (num_circles+num_squares>=0 && num_circles+num_squares<=3) (sachant que la première est redondante si les nombres sont non signés). Donc AMHA, la représentation avec les compteurs est OO. Il n'y a pas d'objet Pion parce je ne vois pas l'intérêt.

Et sinon, si tu veux vraiment des objects Pion, pour ton "pion vide", la représentation naturelle est NULL.
-Edité le Samedi 22 avril 2006 à 18:41 par Kevin Kofler-
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°11   Marquer comme non lu.
Thor Ecrit le: Samedi 22 avril 2006 à 21:52 Déconnecté(e)    Voir le profil de Thor Envoyer un email à Thor Visiter le site WEB de Thor Envoyer un message privé à Thor  


Ca veut dire quoi tes "AMHA"?
Cyril MOTTIER aka {==Thor==}
Modérateur général du forum de Tigen
[Etudiant à l'Institut National des Sciences Appliquées (INSA) de Rennes]
Mon site perso c'est ici
    
./Post n°12   Marquer comme non lu.
Jfg Ecrit le: Samedi 22 avril 2006 à 21:55 Déconnecté(e)    Voir le profil de Jfg Envoyer un email à Jfg Visiter le site WEB de Jfg Envoyer un message privé à Jfg  


google
Kill Mario
    
./Post n°13   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 22 avril 2006 à 22:54 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


C'est la traduction de IMHO. ;)
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°14   Marquer comme non lu.
FpgForce Ecrit le: Samedi 22 avril 2006 à 23:12 Déconnecté(e)    Voir le profil de FpgForce Envoyer un email à FpgForce Envoyer un message privé à FpgForce  

Et réciproquement =]
    
./Post n°15   Marquer comme non lu.
geogeo Ecrit le: Dimanche 23 avril 2006 à 12:26 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


J'avances dans le projet j'ai bientôt fini, merci à vous.
-Edité le Dimanche 23 avril 2006 à 12:27 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°16   Marquer comme non lu.
geogeo Ecrit le: Jeudi 27 avril 2006 à 21:44 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Bon voilà j'ai réussi à réaliser l'ensemble du jeu mais on ne peut jouer qu'à deux tours à tours donc pas contre l'ordinateur.

J'aimerai donc développer une intelligence artificielle mais je ne sais pas par où vraiment commencer.
Le problème majeur avec ce jeu, c'est qu'on peut gagner en arrivant à la fin de la ligne adverse ou en mangeant tout ces pions. Les déplacement s'orientent de cette façon,
- déplacement simple d'une pièce ou d'un ensemble empilé de pièces
- déplacement où à l'arrivée on mange une pièce ennemie composée ou non
- déplacement qui provoque l'empilement de pièces
- déploiement avec rebond avec les contraintes de ne pas pouvoir manger un ennemi et être obligé de tout dépiler dans la même direction.
Tout ceci avec la possibilité de rebondir sur les extrémités du plateau.

Je pense à une méthode par parcours d'arbres. L'idée est de simuler 4 coups à l'avance au moins. Le meilleur coup correspond au chemin menant le plus rapidement à la ligne d'arrivée adverse.
-Edité le Jeudi 27 avril 2006 à 21:57 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°17   Marquer comme non lu.
Sasume Ecrit le: Vendredi 28 avril 2006 à 11:12 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

On peut se déplacer d'autant de cases que l'on veut ?
Sinon, en effet, le minmax est probablement une idée correcte.
    
./Post n°18   Marquer comme non lu.
geogeo Ecrit le: Vendredi 28 avril 2006 à 16:17 Déconnecté(e)    Voir le profil de geogeo Envoyer un email à geogeo Visiter le site WEB de geogeo Envoyer un message privé à geogeo  


Le déplacement est plus ou moins dicté par l'ensemble de formes que contient ta pièce. On sait qu'un rond se déplace seulement en diagonale et un carré tout droit. En assemblant les formes on peut composer d'autres déplacement, ainci 2 ronds ne te permetteront que d'avance de une ou 2 cases en diagonale mais si tu assemble un rodne t un carré tu pourras aller dans toutes les directions mais seulement d'une case, 2 ronds etun carré tu pourras aller en diagonale de une ou 2 cases mais verticalement ou hozironatelement que d'une case... etc Bref on combine les formes élémentaires et on a d'autres déplacements.
La difficultée majeure pour moi réside dans le fait qu'on peut rebondir sur le plateau et avoir des coups assez spaces genre passer en quelque sorte son tour, déployer toutes les formes d'une pièce avec rebond et celà donne des dépalcements étonnants...
-Edité le Vendredi 28 avril 2006 à 16:18 par geogeo-
Webmaster du site.
Programmeur sur TI68K. Arkanoid, Nebulus, GFA-Basic.

Plus d'informations sur GFA-Basic (un langage Basic pour TI68K).
http://www.tigen.org/gfabasic
    
./Post n°19   Marquer comme non lu.
Sasume Ecrit le: Vendredi 28 avril 2006 à 16:30 Déconnecté(e)    Voir le profil de Sasume Envoyer un email à Sasume Visiter le site WEB de Sasume Envoyer un message privé à Sasume  

Non, mais ma question c'était : à chaque tour, combien de possibilité de coups y a-t-il ? 10 ? 100 ? 1000 ?
Parce qu'un arbre de profondeur 4 pour simuler les coups, ça te donnera 1000^4 noeuds si tu as 1000 coups possibles.
Donc si c'est le cas, il va falloir faire une présélection des coups possibles :(
    
  :: Index » Forum Ti68K » Programmation C » Plateau de jeu (24 réponse(s))
Pages : 1/2     « [1] 2 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 88.18ms avec 18 requetes