Partage
  • Partager sur Facebook
  • Partager sur Twitter

Jeu_de_dame

en java au tout début

    9 décembre 2018 à 13:25:51

    Bonjour ,

    J'ai commencé le java y'a 1 semaine et quelque et je débute dans la programmation pour vous mettre dans le contexte bien sur, je me suis fixé comme objectif de faire un jeu de dame en java sur eclipse 1.8 en JRE comme ça vous poserez pas la question a chaque fois que je bloque je vais pas chouiner pour 1 problème mais la vu que le code est simple bah vraiment je me pose des questions sur ma vie quoi.

    du coup bah j'ai 3 fichiers, main, logique_jeu_de_dame , et Piece;

    J'ai vraiment commencé la vieille du coup y'a pas le système ou lorsque qu'un pion mange un autre bah il disparait, et y'a pas de reine, mais sinon même si c'est précaire bah y'a "la base" quoi, 2 joueur, deux 2 listes par joueurs , une avec l'ensemble des pions, restant pour le joueur et une avec les pions qui doivent absolument se déplacer au tour tout ca dans une gille , on alterne blanc / noir, (commençant par blanc), une méthode pour se déplacer dans 4 directions de la range qu'on souhaites, c'est des statics pour des raisons évidentes, et y'a pas le système de collision entre les pions d'un même joueur, l'IHM est bidon,  un entier de 0-19 pour quelle pion de la liste on déplace, (au setup() il sont défini de gauche a droite de haut en bas et un int de 0 - 3 pour les case de mouvement.

    Le problème est que je ne sais pas pourquoi avec les inputs, 0 (premier élément de la liste des blancs), 0(correspond en haute a gauche), ET OUI J'AI FAIS LE DEBUGGER JUSTEMENT , déjà je pense mal m'en servir mais je sais largement l'utiliser pour ce genre de projet enfin, les coordonnées de ce pion sont a  6, 1 (y, x) du coup vu que je fais ( -, -) je devrais avoir (5 , 0), logiquement , (et les pions ne laisse pas de trace derriere eux ) Merci pour votre temps , ( PS : ça va je le vois que mes instructions sont pas optis , c'est le début je connais pas les life_hack pour le moment)

    import java.util.Scanner;
    
    
    public class Main {
    
    	public static void main(String[] args) {
    		setup();		
    		Logique_jeu_de_dame.dislay();
    		Scanner s = new Scanner(System.in);
    		while (Logique_jeu_de_dame.joueur_1.isEmpty() == false 
    				&& Logique_jeu_de_dame.joueur_2.isEmpty() == false) {
    			if (Logique_jeu_de_dame.turn == 'B') {
    				int t;
    				int j;
    				do {
    					Logique_jeu_de_dame.still_move();
    					t = s.nextInt();
    					if (t >= 0 && t <= 20) {
    						j = s.nextInt();
    						if (j >= 0 && j <= 3) {
    							Piece.move_classique(t, j, 0);
    							System.out.println(Logique_jeu_de_dame.joueur_1.get(t).getY());
    							System.out.println(Logique_jeu_de_dame.joueur_1.get(t).getX());
    							Logique_jeu_de_dame.dislay();
    						}
    					}
    				} while (Logique_jeu_de_dame.joueur_1_has.isEmpty() == false) ;
    				Logique_jeu_de_dame.turn = 'N';
    			}
    			else {
    					int t;
    					int j;
    					do {
    						Logique_jeu_de_dame.still_move();
    						t = s.nextInt();
    						if (t >= 0 && t <= 20) {
    							j = s.nextInt();
    							if (j >= 0 && j <= 3) {
    								Piece.move_classique(t, j, 0);
    								Logique_jeu_de_dame.dislay();
    							}
    						}
    					} while (Logique_jeu_de_dame.joueur_2_has.isEmpty() == false);
    				}
    				Logique_jeu_de_dame.turn = 'B';
    			}
    		}
    	
    	
    	public static void setup() {
    		Logique_jeu_de_dame.setup();
    	}
    	
    }
    
    import java.util.ArrayList;
    import java.util.Arrays;
    
    
    
    public class Logique_jeu_de_dame {
    	
    	public static int grid[][] = new int[10][10];
    	public static char turn = 'B';
    	static ArrayList<Piece> joueur_1 = new ArrayList<Piece>();
    	static ArrayList<Piece> joueur_2 = new ArrayList<Piece>();
    	static ArrayList<Piece> joueur_1_has = new ArrayList<Piece>();
    	static ArrayList<Piece> joueur_2_has = new ArrayList<Piece>();
    	
    	public static void setup() {
    		for (int i = 0; i < 10; i++) {
    			for (int j = 0; j < 10; j++) {
    				grid[i][j] = 0;
    				if (i < 4  && j % 2 == 1) {
    					if (i % 2 == 1) {
    						Piece jeton = new Piece(j - 1, i);
    						joueur_2.add(jeton);
    						grid[i][j- 1] = 2;
    					}
    					else {
    						Piece jeton = new Piece(j, i);
    						joueur_2.add(jeton);
    						grid[i][j] = 2;
    					}
    				}
    				else if (i > 5 && j % 2 == 1) {
    					if(i % 2 == 1) {
    						Piece jeton = new Piece(j - 1, i);
    						joueur_1.add(jeton);
    						grid[i][j-1] = 1;
    					}
    					else {
    						Piece jeton = new Piece(j, i);
    						joueur_1.add(jeton);
    						grid[i][j] = 1;
    					}
    				}
    			}
    		}
    	}
    	
    	public static boolean still_move() {
    		if (Logique_jeu_de_dame.turn == 'B') {
    			if (Logique_jeu_de_dame.joueur_1_has.isEmpty() == false)
    				Logique_jeu_de_dame.joueur_1_has.clear();
    			for (int i = 0; i < Logique_jeu_de_dame.joueur_1.size(); i++) {
    				if (Piece.has_to_move(Logique_jeu_de_dame.joueur_1.get(i))) {
    					System.out.println(Piece.has_to_move(Logique_jeu_de_dame.joueur_1.get(i)));
    					Logique_jeu_de_dame.joueur_1_has.add(Logique_jeu_de_dame.joueur_1.get(i));
    				}
    			}
    			if (Logique_jeu_de_dame.joueur_1_has.isEmpty() == false)
    				return true;
    		}
    		else {
    			if (Logique_jeu_de_dame.joueur_2_has.isEmpty() == false)
    				Logique_jeu_de_dame.joueur_2_has.clear();
    			System.out.println(0);
    			for (int i = 0; i < Logique_jeu_de_dame.joueur_2.size(); i++) {
    				if (Piece.has_to_move(Logique_jeu_de_dame.joueur_2.get(i))) {
    					System.out.println(i);
    					Logique_jeu_de_dame.joueur_2_has.add(Logique_jeu_de_dame.joueur_2.get(i));
    				}
    			}
    			if (Logique_jeu_de_dame.joueur_2_has.isEmpty() == false)
    				return true;
    		}
    		return false;
    	}
    	
    	public static void dislay() {
    		for (int i = 0; i < 10; i++) {
    			System.out.println(Arrays.toString(Logique_jeu_de_dame.grid[i]));
    		}
    		System.out.println("\n\nTurn : " + Logique_jeu_de_dame.turn);
    	}
    }
    
    public class Piece {
    	private int x;
    	private int y;
    	
    	public Piece(int x, int y){
    		this.setX(x);
    		this.setY(y);
    	}
    	
    	public int getX() {
    		return x;
    	}
    	public void setX(int x) {
    		if (check_coord(x)) {
    			this.x = x;
    			return;
    		}
    		System.out.println("X pas dans les coodornées");
    		return;
    	}
    	
    	public static boolean check_coord(int x_y) {
    		if (x_y >= 0 && x_y < 10)
    			return true;
    		return false;
    	}
    	
    	public int getY() {
    		return y;
    	}
    	public void setY(int y) {
    		if (check_coord(y)) {
    			this.y = y;
    			return;
    		}
    		System.out.println("Y pas dans les coodornées");
    		return;
    	}
    	
    	public static boolean xy_valid(int x_y) {
    		if (x_y >= 0 && x_y < 10)
    			return true;
    		return false;
    	}
    	
    	public static void move_classique(int index, int direction, int i) {
    		if (Logique_jeu_de_dame.turn == 'B') {
    			Logique_jeu_de_dame.grid[Logique_jeu_de_dame.joueur_1.get(index).getY()][Logique_jeu_de_dame.joueur_1.get(index).getX()] = 0;
    			switch (direction) {
    			case 0: // --
    				Logique_jeu_de_dame.joueur_1.get(index).setX(Logique_jeu_de_dame.joueur_1.get(index).getX() - i);
    				Logique_jeu_de_dame.joueur_1.get(index).setY(Logique_jeu_de_dame.joueur_1.get(index).getY() - i);
    				break;
    			case 1: //-+
    				Logique_jeu_de_dame.joueur_1.get(index).setX(Logique_jeu_de_dame.joueur_1.get(index).getX() + i);
    				Logique_jeu_de_dame.joueur_1.get(index).setY(Logique_jeu_de_dame.joueur_1.get(index).getY() - i);
    				break;
    			case 2: //+-
    				Logique_jeu_de_dame.joueur_1.get(index).setX(Logique_jeu_de_dame.joueur_1.get(index).getX() - i);
    				Logique_jeu_de_dame.joueur_1.get(index).setY(Logique_jeu_de_dame.joueur_1.get(index).getY() + i);
    				break;
    			case 3://++
    				Logique_jeu_de_dame.joueur_1.get(index).setX(Logique_jeu_de_dame.joueur_1.get(index).getX() + i);
    				Logique_jeu_de_dame.joueur_1.get(index).setY(Logique_jeu_de_dame.joueur_1.get(index).getY() + i);
    				break;
    			}
    			Logique_jeu_de_dame.grid[Logique_jeu_de_dame.joueur_1.get(index).getY()][Logique_jeu_de_dame.joueur_1.get(index).getX()] = 1;
    		}
    		else {
    			Logique_jeu_de_dame.grid[Logique_jeu_de_dame.joueur_2.get(index).getY()][Logique_jeu_de_dame.joueur_2.get(index).getX()] = 0;
    			switch (direction) {
    			case 0: // --
    				Logique_jeu_de_dame.joueur_2.get(index).setX(Logique_jeu_de_dame.joueur_2.get(index).getX() - i);
    				Logique_jeu_de_dame.joueur_2.get(index).setY(Logique_jeu_de_dame.joueur_2.get(index).getY() - i);
    				break;
    			case 1: //-+
    				Logique_jeu_de_dame.joueur_2.get(index).setX(Logique_jeu_de_dame.joueur_2.get(index).getX() + i);
    				Logique_jeu_de_dame.joueur_2.get(index).setY(Logique_jeu_de_dame.joueur_2.get(index).getY() - i);
    				break;
    			case 2: //+-
    				Logique_jeu_de_dame.joueur_2.get(index).setX(Logique_jeu_de_dame.joueur_2.get(index).getX() - i);
    				Logique_jeu_de_dame.joueur_2.get(index).setY(Logique_jeu_de_dame.joueur_2.get(index).getY() + i);
    				break;
    			case 3://++
    				Logique_jeu_de_dame.joueur_2.get(index).setX(Logique_jeu_de_dame.joueur_1.get(index).getX() + i);
    				Logique_jeu_de_dame.joueur_2.get(index).setY(Logique_jeu_de_dame.joueur_1.get(index).getY() + i);
    				break;
    			}
    			Logique_jeu_de_dame.grid[Logique_jeu_de_dame.joueur_2.get(index).getY()][Logique_jeu_de_dame.joueur_2.get(index).getX()] = 2;
    		}
    	}
    	
    	public static boolean check_up_left(Piece jeton , int i, int b_n_e) {
    		if (check_coord(jeton.getY() - i) && check_coord(jeton.getX() - i)) {
    			if (Logique_jeu_de_dame.grid[jeton.getY() - i][jeton.getX() - i] == b_n_e) {
    				return true;
    			}
    		}
    		return false;
    	}
    	public static boolean check_up_right(Piece jeton , int i, int b_n_e) {
    		if (check_coord(jeton.getY() - i) && check_coord(jeton.getX() + i)) {
    			if (Logique_jeu_de_dame.grid[jeton.getY() - i][jeton.getX() + i] == b_n_e)
    				return true;
    		}	
    		return false;
    	}
    	public static boolean check_down_left(Piece jeton , int i, int b_n_e) {
    		if (check_coord(jeton.getY() + i) && check_coord(jeton.getX() - i)) {
    			if (Logique_jeu_de_dame.grid[jeton.getY() + i][jeton.getX() - i] == b_n_e)
    				return true;
    		}
    		return false;
    	}
    	public static boolean check_down_right(Piece jeton , int i, int b_n_e) {
    		if (check_coord(jeton.getY() + i) && check_coord(jeton.getX() + i)) {
    			if (Logique_jeu_de_dame.grid[jeton.getY() + i][jeton.getX() + i] == b_n_e)
    				return true;
    		}
    		return false;
    	}
    	
    	public static boolean has_to_move(Piece jeton) {
    		if (Logique_jeu_de_dame.turn == 'B') {
    			if ((check_up_left(jeton, 1, 2) && check_up_left(jeton, 2, 0)) 
    				|| (check_up_right(jeton, 1, 2) && check_up_right(jeton, 2, 0))
    				||(check_down_left(jeton, 1, 2) && check_down_left(jeton, 2, 0))
    				||(check_down_right(jeton, 1, 2) && check_up_right(jeton, 2, 0))) {
    				return true;
    			}
    		}
    		else {
    			if ((check_up_left(jeton, 1, 1) && check_up_left(jeton, 2, 0)) 
    				|| (check_up_right(jeton, 1, 1) && check_up_right(jeton, 2, 0))
    				||(check_down_left(jeton, 1, 1) && check_down_left(jeton, 2, 0))
    				||(check_down_right(jeton, 1, 1) && check_up_right(jeton, 2, 0))) {
    				return true;
    			}
    		}
    		return false;
    	}
    }
    




    • Partager sur Facebook
    • Partager sur Twitter

    Jeu_de_dame

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown