forked from menault/TD3_DEV51_Qualite_Algo
		
	Compare commits
	
		
			4 Commits
		
	
	
		
			a3627d9023
			...
			9d7c681ca3
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 9d7c681ca3 | |||
| e6e0d4cf71 | |||
| ffbe1e232e | |||
| 2a8eac0720 | 
							
								
								
									
										113
									
								
								src/Partie.java
									
									
									
									
									
								
							
							
						
						
									
										113
									
								
								src/Partie.java
									
									
									
									
									
								
							| @@ -2,22 +2,127 @@ | ||||
| /** | ||||
| * La classe <code>Partie</code> | ||||
| * | ||||
| * @version | ||||
| * @author | ||||
| * Date : | ||||
| * @version 0.1 | ||||
| * @author Aurélien | ||||
| * Date : 08-10-25 | ||||
| * Licence : | ||||
| */ | ||||
| public class Partie { | ||||
|    //Contantes | ||||
|    private static final byte REMAININGTRY = 11 ; | ||||
|    private static final byte CARACTERCODESHIFT = 65 ;  //Décalage ASCI > 'A' | ||||
|  | ||||
|    //Attributs | ||||
|    private char[] secretword ; | ||||
|    private byte wordsize ; | ||||
|    private boolean[] foundletters ; | ||||
|    private boolean[] entriesletters = new boolean[26] ;  //Pseudo Alphabée | ||||
|    private byte remainingtry = REMAININGTRY ; | ||||
|  | ||||
|    //Constructeur | ||||
|    public Partie() { | ||||
|  | ||||
|       this.secretword = generateSecretWord() ; | ||||
|       this.wordsize = (byte) secretword.length ; | ||||
|       this.foundletters = new boolean[wordsize] ; | ||||
|    } | ||||
|    //Méthodes | ||||
|    public char[] getSecretWord() { | ||||
|       return this.secretword ; | ||||
|    } | ||||
|  | ||||
|    public boolean[] getFoundLetters() { | ||||
|       return this.foundletters ; | ||||
|    } | ||||
|  | ||||
|    public byte getRemainingTry() { | ||||
|       return this.remainingtry ; | ||||
|    } | ||||
|  | ||||
|  | ||||
|    /** | ||||
|     * Vérifie l'état de la partie en cours. | ||||
|     *  | ||||
|     * @return true si le jeu est fini. | ||||
|     */ | ||||
|    public boolean gameIsEnding() { | ||||
|       if(this.remainingtry <= 0){ | ||||
|          return true ; | ||||
|       }else if(wordIsFound()){ | ||||
|          return true ; | ||||
|       }else{ | ||||
|          return false ; | ||||
|       } | ||||
|    } | ||||
|  | ||||
|    /** | ||||
|     * Vérifie si la lettre reçu n'a pas déjà été joué puis, met à jour le tableau "entriesletters" et | ||||
|     * "foundletters" le cas échéant. | ||||
|     *  | ||||
|     * @return true si la lettre était déjà présente. | ||||
|     */ | ||||
|    public boolean isAlreadyEntries(char letter) { | ||||
|       short caractercode = (short) letter ;  //Récupération du code du caractère | ||||
|       if(this.entriesletters[caractercode-CARACTERCODESHIFT]){ | ||||
|          this.remainingtry-- ;  //Décrément des essais | ||||
|          return true ; | ||||
|       }else{ | ||||
|          boolean isfind = false ; | ||||
|          for(byte i = 0 ; i < this.wordsize ; i++){  //Parcours du "secretword" | ||||
|             if(this.secretword[i] == letter){ | ||||
|                this.foundletters[i] = true ; | ||||
|                isfind = true ; | ||||
|             } | ||||
|          } | ||||
|          if(isfind == false){ | ||||
|             this.remainingtry-- ;  //Décrément des essais | ||||
|          } | ||||
|          this.entriesletters[caractercode-CARACTERCODESHIFT] = true ;  //Ajout au tableau des lettres jouées | ||||
|          return false ; | ||||
|       } | ||||
|    } | ||||
|  | ||||
|  | ||||
|    private char[] generateSecretWord() { | ||||
|       char[] word = {'D','A','M','I','E','N'}; | ||||
|       //À implémenter plus tard | ||||
|       return word ; | ||||
|    } | ||||
|  | ||||
|    private boolean wordIsFound() { | ||||
|       for(byte i = 0 ; i < this.wordsize ; i++){  //Parcours du "secretword" | ||||
|          if(!this.foundletters[i]){  //Si une lettre n'est pas trouvé | ||||
|             return false ; | ||||
|          } | ||||
|       } | ||||
|       return true ; | ||||
|    } | ||||
|  | ||||
|  | ||||
|    //Affichage | ||||
|    public String toString() { | ||||
|       return "" ; | ||||
|    } | ||||
|  | ||||
|    //Tests | ||||
|    public static void main(String[] args){ | ||||
|       char[] test = {'E','O','M','I','E','D','A','Z','N'}; | ||||
|       byte size = (byte) test.length ; | ||||
|       boolean status ; | ||||
|  | ||||
|       Partie game = new Partie(); | ||||
|       System.out.println("Trick > " + String.valueOf(game.secretword) + "\n"); | ||||
|       for(byte i = 0 ; i < size && !game.gameIsEnding() ; i++){ | ||||
|          System.out.println("Essais restants : " + game.getRemainingTry()); | ||||
|          status = game.isAlreadyEntries(test[i]); | ||||
|          for(byte l = 0 ; l < game.wordsize ; l++){  //Parcours du "secretword" | ||||
|             if(game.foundletters[l] == true){ | ||||
|                System.out.print(game.getSecretWord()[l] + " "); | ||||
|             }else{ | ||||
|                System.out.print("_ "); | ||||
|             } | ||||
|          } | ||||
|          System.out.println("");  //Lisibilité | ||||
|          //System.out.println("Lettres : " + game.entriesletters); | ||||
|       } | ||||
|    } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user