IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Jeu de Go Java


Sujet :

Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Jeu de Go Java
    Bonjour,

    Je dois faire un Jeu de Go en mode console sur Java sans IA et pour deux joueurs.
    Dans le projet, la fonction la plus importante que j'ai besoin de faire à tout prix pour assurer la moyenne et surtout pour que le jeu fonctionne correctement, est la fonction que l'on pourrait appeler "getchain" et qui serait capable après chaque tour (via surement la construction d'un tableau de coordonnées) d'identifier toutes les chaines de pierre du plateau ainsi que le nombre de libertés qu'elles possèdent.

    Je n'arrive malheureusement pas à construire cette fonction bien que je comprends son fonctionnement général : tableau de coordonnées, la fonction qui prend en compte les coordonnées des pions (ou pierres) dans ce tableau, ainsi que leur couleur (blanc ou noir).

    Pourriez vous m'aider ?

    Merci par avance

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    il me semble plus simple de construire les chaînes au fur et à mesure du jeu.

    Quand on pose une pierre toute seule, ça crée une nouvelle chaîne. Quand on pose une pierre à côté d'une chaîne, elle s'ajoute à cette chaîne. Quand on capture une chaîne, cette chaîne disparaît.

    ... Bien sûr, du coup, il devient possible d'employer le même raisonnement en parcourant toutes les cases du plateau sur une partie déjà entamée, mais c'est moins efficace, et ne devrait être fait que pour reprendre une partie sauvegardée.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Effectivement ca semble plus intelligent !

    Le problème c'est que c'est la manière de le construire (code) qui me bloque !!

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Eh bien, peux-tu déjà nous montrer quelles formes ont, en code, le plateau de jeu, une pierre, et une chaîne ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2015
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Ma classe du plateau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    public class Goban {
    	//on definit les attributs
    	public int nbl ;
    	public int nbc ;
    	private char [][] Goban ;
     
    	//CONSTRUCTEUR
    	public Goban (int l, int c) { //Construction du tableau
    		nbl = l+1 ;
    		nbc = c+1 ;
    		Goban = new char [nbl][nbc] ;
     
    		for (int i=1; i<nbl; i++) {
    			for (int j=1; j<nbc; j++) {
    				Goban[i][j] = '+' ;
    				//Goban[1][j] = 'j' ; //j'essaye d'afficher le numéro des colonnes 
    			}
    		}	
    	}
    	//METHODE
    	public void afficher() {
     
    		for (int i = 1; i < nbl; i++) {
    			for (int j = 1; j < nbc; j++) {
    				System.out.print("  " + Goban[i][j]);
    			}
    			System.out.println("  " + i);
    		}
    	}
     
    	public void placer (int l, int c, char Couleur) {
     
    		while (l<=0 || c<=0 || l>nbl || c>nbc) { 
    			System.out.println("Erreur de placement");
    			return;
    		}
    		if (Goban[l][c] == '+') {
    			Goban[l][c] = Couleur;
    		}
    		else{ 
    			System.out.println("Erreur, zone occupée");
    		}
    	}
    }
    celle qui gère l'avancement du jeu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    import java.util.Scanner;
     
    public class Console {
    	// on definit les attributs
    	private Goban g ;
    	private Joueur j1;
    	private Joueur j2;
     
    	public void NewGame () {
    		//on definit les objets dont on aura besoin
    		Scanner sc = new Scanner(System.in);
    		int nbl;
    		boolean taille = false ;
    		char Couleur;
    		boolean couleur = false;
     
    		//on affiche le message de commencement 
    		System.out.println("÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷ Nouveau Jeu ÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷÷");
     
    		while (!taille) {
    			System.out.println("Entrez la taille du Goban choisie : 9 13 ou 19 ?");
    			nbl = sc.nextInt();
    			if (nbl == 9 || nbl == 13 || nbl == 19) {
    				this.g = new Goban(nbl, nbl);
    				taille = true;
    			} 
    			else {
    				System.out.println("Erreur ! Veuillez indiquer une nouvelle taille (9, 13 ou 19)");
    			}
    		}
    		while (!couleur) {
    			System.out.println("Choisissez votre couleur: Blanc (tapez B) ou Noir (tapez N)");
    			Couleur = sc.next().charAt(0);
    			if (Couleur == 'B') {
    				j1 = new Joueur('N');
    				j2 = new Joueur(Couleur);
    				couleur = true;
    			} 
    			else if (Couleur == 'N') {
    				j1 = new Joueur(Couleur);
    				j2 = new Joueur('B');
    				couleur = true;
    			} 
    			else {
    				System.out.println("Erreur !");
    			}
    		}
     
    		System.out.println("Le joueur Noir commence !");
    		this.g.afficher();
     
    		for (int i = 1; i<169; i++) {
     
    			System.out.println("Joueur 1, placez votre pierre noire.");
    			System.out.println("Entrez le numéro de la ligne, Tapez sur Entrer, puis le numéro de la colonne.");
    			Scanner sc1 = new Scanner(System.in);
    			Scanner sc2 = new Scanner(System.in);
    			int nb1 = sc1.nextInt();
    			int nb2 = sc2.nextInt();
     
    			//placer les pierres noires
    			g.placer(nb1,nb2,'N');
    			g.afficher();
     
    			System.out.println("Joueur 2, placez votre pierre blanche");
    			System.out.println("Entrez le numéro de la ligne, Tapez sur Entrer, puis le numéro de la colonne.");
    			Scanner sc3 = new Scanner(System.in);
    			Scanner sc4 = new Scanner(System.in);
    			int nb3 = sc3.nextInt();
    			int nb4 = sc4.nextInt();
     
    			//placer les pierres blanches
    			g.placer(nb3,nb4,'B');
    			g.afficher();
     
    			System.out.println("Fin du tour " +i);
    			System.out.println("");
    		}
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public class Joueur {
    	private char Couleur;
     
     
    	public Joueur (char Couleur) {
    		this.Couleur = Couleur;	
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class Main {
    	public static void main (String[] args){
     
    		Console NewGame1 = new Console ();
    		NewGame1.NewGame () ;
    	}
    }

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    okay, mais il manque la notion de chaîne.
    Tu cherches à construire des chaînes pour en donner la liste et les libertés de chacune, donc tu dois un modèle de données de ce que c'est qu'une chaîne.
    Je dirais qu'il te manque une classe Chaine, par exemple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [Débutant] Programmer le jeu Sudoku en Java
    Par whally dans le forum Graphisme
    Réponses: 5
    Dernier message: 04/03/2011, 09h53
  2. jeu d'arcade java
    Par beachshells dans le forum Développement Mobile en Java
    Réponses: 3
    Dernier message: 30/11/2009, 12h40
  3. jeu à developper en java
    Par edhecasa dans le forum Général Java
    Réponses: 1
    Dernier message: 15/02/2009, 17h20
  4. [Conseil]Projet de jeu en binôme JAVA
    Par Vivian Pennel dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 30/07/2008, 17h21
  5. [Débutant] Developper un jeu DirectX en Java
    Par akito dans le forum DirectX
    Réponses: 5
    Dernier message: 10/08/2007, 07h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo