CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Programmation d'un jeu

Etianos
Etianos
Niveau 38
05 mars 2012 à 22:04:30

Bonjours,

J'aimerai crée un jeu Reversi (Othello) sur Dv-c++ en utilisant sa bibliothèque graphique.

Avec deux mode de jeu.

- Pour deux joueurs
- Et avec une IA (Je ne suis pas très spécialiste en la matière)

Dans mon analyse des problème celui qui retient le plus mon attention est :
Comment Placer les pions

J'avais penser faire une matrice taille 8x8
et la remplir de ;

0 pour les cases vide
1 pour les poins blancs
-1 pour les poins noirs

{0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0}
{0 0 0 1 -1 0 0 0}
{0 0 0 -1 1 0 0 0}
{0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0}
{0 0 0 0 0 0 0 0}

(Début de partie)

Pour moi c'est assez simple:
Connaissant les limites mini et maxi de la matrice, les coordonnées de la case choisie, et la couleur du joueur courant, on doit recherche dans les 8 sens possibles (nord / nord-est / est / sud-est / sud / sud-ouest / ouest / nord-ouest).
- Si elles echouent toutes, alors on ne peut pas placer le pion.
- Si une fonctionne, alors on peut placer le pion.

Et pour faire les test, je propose de remplir un tableau a une dimension. (tabTest[])

--------------------------------------------

  1. include <stdio.h>
  2. include <stdlib.h>
  3. define MAX 8

int main()
{
int i,j,k,x,y;
typedef int t[MAX][MAX] = {{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,1,-1,0,0,0},
{0,0,0,-1,1,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0}};

scanf("%d%d", &x,&y);

t[MAX][MAX]; // Aire de jeux
tabTest[MAX]; // Tableau pour tester les recherches
k = 0;

// tester si la case est vide
if (t[x][y] == 0)
{
// recherche dans le sens nord-ouest
// donc i et j diminuent
for (i=x; i>=0; i--)
{
for (j=y; j>=0; j--)
{
// ajoute les valeurs des cases rencontrées dans le tableau de recherche
tabTest[k] = t[i][j];
indice++;
}
}
}

for (k=0; k<=MAX; i++)
{
if(tabTest[k]==-1 && tabTest[k+1]==0)
{
tabTest[k+1]=-1;
}
}

// Réinitialisation du tableau Test

for (k=0; k<=MAX; i++)
{
(TabTest[k]=0;
}

// Parcours "LIGNE EST"
for (j=y; i=x j<=8; j++)
{
// ajoute les valeurs des cases rencontrées dans le tableau de recherche
tabTest[k] = t[i][j];
indice++;
}

// Parcours "LIGNE OUEST"
for (j=y; i=x j>=0; j--)
{
// ajoute les valeurs des cases rencontrées dans le tableau de recherche
tabTest[k] = t[i][j];
indice++;
}

// Parcours "NORD"
for (i=x; j=y; i>=0; i--)
{
// ajoute les valeurs des cases rencontrées dans le tableau de recherche
tabTest[k] = t[i][j];
indice++;
}

// Parcours "SUD"
for (i=x; j=y; i=<8; i++)
{
// ajoute les valeurs des cases rencontrées dans le tableau de recherche
tabTest[k] = t[i][j];
indice++;
}

// Parcours "SUD EST"

for (i=x; i=<8; i++)
{
for (j=y; j=<8; j++)
{
// ajoute les valeurs des cases rencontrées dans le tableau de recherche
tabTest[indice] = t[i][j];
indice++;
}
}
}

// Parcours "NORD EST"

for (i=x; i>=0; i--)
{
for (j=y; j=<8; j++)
{
// ajoute les valeurs des cases rencontrées dans le tableau de recherche
tabTest[indice] = t[i][j];
indice++;
}
}
}

// Parcours "SUD OUEST"

for (i=x; i=<8; i++)
{
for (j=y; j>=0; j--)
{
// ajoute les valeurs des cases rencontrées dans le tableau de recherche
tabTest[indice] = t[i][j];
indice++;
}
}
}

return 0;
}
---------------------------------------------

Ce qui a c'est que je sais pas comment retourner les poins adverses.

Est ce que les différentes rechercher (Nord, Sud,....) doivent être dans une même boucle ?

Merci d'avance

Etianos
Etianos
Niveau 38
05 mars 2012 à 22:19:16

Je précise que je parle en langage C.

tbop2
tbop2
Niveau 10
05 mars 2012 à 23:09:43

Pourrais tu poster ton code sur pastebin ?

Etianos
Etianos
Niveau 38
05 mars 2012 à 23:24:44

http://pastebin.com/cLwdwUa6

tbop2
tbop2
Niveau 10
06 mars 2012 à 01:26:09

Pourrais tu indenter ton code aussi s'il te plaît ?

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment