All pastes #385694 Raw Edit

Stuff

public text v1 · immutable
·published 2007-03-08 00:57 UTC
rendered paste body
import javax.swing.JOptionPane;

public class Puissance4
{
    public static void initialisation(char tab[][])
    {
	//remplissage
	//la premiere dimension du tableau est le nombre de rangees, 
	//en faisant tab.length, on obtient le nombre de rangees.
	//on boucle sur chacune des rangees.
	for( int i = 0 ; i< tab.length; i++)
	    {
		//on boucle sur chacun des elements de la rangees i.
		//en faisant tab[i].length, on obtient le nombre de colonnes
		for(int j = 0; j< tab[i].length; j++)
		    {
			//on met un caractere '.' a la ieme rangee, 
			//jieme colonne du tableau tab
			tab[i][j] = '.';
		    }
	    }
    }

    public static void afficher(char tab[][])
    {
	System.out.println("  1 2 3 4 5 6 7");
	for(int i = 0; i< tab.length; i++)
	    {
		System.out.print(i+1 + " ");
		for(int j = 0; j< tab[i].length; j++)
		    System.out.print( tab[i][j]+ " " );
		System.out.println();
	    }  
	System.out.println();
    }

    public static void joueur1(char tab[][],char j1, int pos)
    {
	//System.out.print("Joueur 1 colonne? ");
	//int pos = Keyboard.readInt();
	pos = Integer.parseInt(JOptionPane.showInputDialog(null, "Joueur 1 colonne?"));
	if(!(pos == 1 || pos == 2 || pos == 3 || pos == 4
	     || pos == 5 || pos == 6 || pos == 7))
	    {
		System.out.println("Colonne hors du tableau. " +
				   "Choisissez une autre colonne.");
		joueur1(tab,j1,pos);
		return;
	    }
	if(tab[0][pos-1] != '.')
	    {
		System.out.println("Colonne pleine. " +
				   "Choisissez une autre colonne.");
		joueur1(tab,j1,pos);
		return;
	    }
	for(int i = tab.length - 1; i >= 0; i--)
	    {
		if(tab[i][pos-1] == '.')
		    {		    
			tab[i][pos-1] = 'X';
			System.out.println(">> X " + pos + " " + (i+1));
			break;
		    }
	    }
    }

    public static void joueur2(char tab[][],char j2, int pos)
    {
	//System.out.print("Joueur 2 colonne? ");
	//int pos = Keyboard.readInt();
	pos = Integer.parseInt(JOptionPane.showInputDialog(null, "Joueur 2 colonne?"));
	if(!(pos == 1 || pos == 2 || pos == 3 || pos == 4
	     || pos == 5 || pos == 6 || pos == 7))
	    {
		System.out.println("Colonne hors du tableau. " + 
				   "Choisissez une autre colonne.");
		joueur2(tab,j2,pos);
		return;
	    }
	if(tab[0][pos-1] != '.')
	    {
		System.out.println("Colonne pleine. " +
				   "Choisissez une autre colonne.");
		joueur2(tab,j2,pos);
		return;
	    }
	for(int i = tab.length - 1; i >= 0; i--)
	    {
		if(tab[i][pos-1] == '.')
		    {		    
			tab[i][pos-1] = 'O';
			System.out.println(">> O " + pos + " " + (i+1));
			break;
		    }
	    }
    }
    
    public static boolean veriflignejou1(char tab[][], int pos)
    {
	int lig = 0;
	for(int i = 0; i < tab.length; i++)
	    if(tab[i][pos-1] == 'X')
		{
		    lig = i;
		    break;
		}
	if(tab[lig-1][pos-1] == 'X' && tab[lig-2][pos-1] == 'X'
	   && tab[lig-3][pos-1] == 'X')
	    return true;
	else if(tab[lig+1][pos-1] == 'X' && tab[lig+2][pos-1] == 'X'
	   && tab[lig+3][pos-1] == 'X')
	    return true;
	else return false;
    }

    public static final int nombreDeLignes = 6;
    public static final int nombreDeColonnes = 7;

    public static void main(String [] args)
    {
	char j1 = 'h';
	char j2 = 'h';
	int pos = 0;
	char[][] tab = new char[nombreDeLignes][nombreDeColonnes];
	initialisation(tab);
	afficher(tab);
	while(true)
	    {
		joueur1(tab,j1,pos);
		afficher(tab);
		if(veriflignejou1(tab,pos))
		    break;
		joueur2(tab,j2,pos);
		afficher(tab);
	    }
	System.out.println("FINI");
    }
}