Class demineur

Description

Une class Dem..
Avec un certain nombre de méthode pour créé son démineur, que voici:

/*
  • CREAT BY NIIDHOGG: 28/11/09 - 29/11/09
  • -> To change display: created another class (extends Dem) and redefined method aff() <-
  • Dem() constructeur par default
  • Dem(nbrColone,nbrLigne,nbrMine) constructeur
  • void Init() remetre a zero
  • void Init(nbrColone,nbrLigne,nbrMine) remettre a zéro
  • void genMap() genere la map
  • void aff() affiche la map dans la console
  • void setVisible(boolean) rend la map visible ou non
  • void click(x,y) gere le clique a une endroit sur la map
  • boolean getCompleted() regarde si la map est compléter
  • boolean isDeath() indique si on a toucher une mine
  • void prohibitedValue(x,y)la case [x][y] ne contiendra pas de mine lors de la génération
  • void changeFlag(x,y) si true il y a un drapeau il met false il n'y en a plus et l'inverse dans l'autre cas
  • boolean getFlag(x,y) vérifier si true il y a un drapeau si non il y en a pas
  • int getX() revoie le nombre de colonne
  • int getY() renvoie le nombre de ligne
  • int getMine() renvoie le nombre de mine
  • int[][] getMap() renvoie un tableau contenant un chiffre entre [1 et 8] quand il y a un chiffre, 0 quand il y à rien et 9 quand il y a une mine
  • boolean[][] getShem() renvoie un tableau contenant true quand la case est découvert et false quand la case est toujours pas encore découvert
  • boolean[][] getFlag() envoie un tableau contenant true si il y a un drapeau sur la case et false si il y en a pas
  • void setMap(int[][]) envoyer une map
  • void setShem(boolean[][]) envoyer un tableau contenant true pour la case est découverte et false pour la case n'est pas découverte

void setFlag(boolean[][]) envoyer un tableau contenant true pour il y a un drapeau et false si il y en a pas
  • /

Source / Exemple :


// ICI UN EXEMPLE SIMPLE DE DEMINEUR(en console)

import java.util.Scanner;

public class main_
{

	public static void main(String[] args)
	{
		
		Scanner sc = new Scanner(System.in);
		Dem demineur = new Dem();
		
		int x;
		int y;
		int m;
		
		int val;
		boolean NoRe = true;
		
		boolean cont = true;
		
		while(cont)
		{
			if(NoRe)
			{
				System.out.print("Nombre de ligne: ");
				y = Integer.parseInt(sc.nextLine());
				System.out.print("Nombre de colone: ");
				x = Integer.parseInt(sc.nextLine());
				System.out.print("Nombre de mine: ");
				m = Integer.parseInt(sc.nextLine());
				
				if(m < x*y);
				else System.out.println("[Trop de mine]");
				
				demineur.Init(x, y, m);
				
				System.out.print("x: ");
				x = Integer.parseInt(sc.nextLine());
				System.out.print("y: ");
				y = Integer.parseInt(sc.nextLine());
				
				demineur.prohibitedValue(x, y);
				demineur.genMap();
				
				demineur.click(x, y);
				demineur.aff();
				
			}
			else demineur.setVisible(false);
			
			while(!demineur.getCompleted())
			{
				
				System.out.print("x: ");
				x = Integer.parseInt(sc.nextLine());
				System.out.print("y: ");
				y = Integer.parseInt(sc.nextLine());
				
				demineur.click(x, y);
				
				if(!demineur.isDeath())
					demineur.aff();
				else break;
				
			}
			
			demineur.setVisible(true);
			demineur.aff();
			
			if(!demineur.isDeath())System.out.println("YOU WON !");
			else System.out.println("YOU DEATH !");
			
			System.out.println("1. Rejouer la même map");
			System.out.println("2. Rejouer une autre map");
			System.out.println("3. Quitter");
			val = Integer.parseInt(sc.nextLine());
			
			if(val == 1)NoRe=false;
			if(val == 2)NoRe=true;
			if(val == 3)cont=false;
			
		}

	}

}

Conclusion :


La source de la class Dem est dans le Zip

N'hésiter pas à créer votre propre démineur avec cette class, vous pouvez par exemple créer une class qui hérite de Dem et recodée la méthode aff() pour lui faire afficher sur une fenêtre...
Gérer les drapeaux avec changeFlag() et getFlag()...

N'hésitez pas à mettre vos commentaire ou à reporter des bugs ;p

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.