Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1339 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Un pti coup de main en java (please je débute)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Un pti coup de main en java (please je débute)

n°127432
Shaman Liz​ardKing
Blanc2poulet
Posté le 17-04-2002 à 20:29:17  profilanswer
 

Voila je vous ai copier mon programme cé sur le principe d'un démineur rudimentaire, j'ai pas encore soigné la sortie.
 
Mais je compile sans erreur, quand je lance aparemment ca coince dans la boucle pour marquer combien y a de bombes sur la case...
 
je sèche si qqun voit comment faire un coup de main serai le bienvenu je buche dessus en attendant...
 
A++
 
Shaman
 
 
 
 
/*************************************************
***********************
 * Nom du programme : Serie10.java  
 * Date    : 02/04/17
 * Auteur   : Gilles Walther
 * Description  :  Créer des carrés parfaits
 * Conditions  :  aucune
 ************************************************************************/
 
import java.io.* ;
import java.util.* ;
import javax.swing.* ;
 
 
 
public class Serie10
{
   
    public static void main(String[] args) throws IOException
    {
     
    BufferedReader in =new BufferedReader(new InputStreamReader(System.in)) ;
     
    int hauteur, largeur ;
    int hauteurPlayer, largeurPlayer ;
    int nbreBombes ;
    int i, j, k, l, m ;
    int a, b, c ;
     
     
    System.out.println("Veuillez entrer la hauteur du plateau de jeu" ) ;
    hauteurPlayer = Integer.parseInt(in.readLine());
    hauteur = hauteurPlayer+1  ;
     
    System.out.println("Veuillez entrer la largeur du plateau de jeu" ) ;
    largeurPlayer = Integer.parseInt(in.readLine());
    largeur = largeurPlayer+1 ;
     
    int [] [] game = new int [largeur][hauteur];
     
    System.out.println("Veuillez entrer le nombre de bombes en jeu (doit être inférieur à " +(hauteurPlayer*largeurPlayer)+" )" ) ;
    nbreBombes = Integer.parseInt(in.readLine()) ;
     
     
    // minage  
     
    c = 0 ;
         
    do  
     {
      a = (int) (Math.random()*largeurPlayer+1) ;
      b = (int) (Math.random()*hauteurPlayer+1) ;
      c++ ;
      if (game[a][b]!=9)
       game[a][b] = 9 ;
       
     }      
    while (c!=nbreBombes) ;
     
     
    // check des cases  
       
    int compteur = 0 ;  
         
    for (j=-1;j<=1;j++)
     {
      for(k=-1;k<=1;k++)
       {
        for (l=1;l<=largeurPlayer;l++)
         {
          for (m=1;m<=hauteurPlayer;m++)
           {
            if (game[l+j][m+k]==9)
             compteur +=1 ;
             
                                     
                     
             
           }
           
           
         }
       }
     }  
     
     
     
   
     
             
    // affichage du tableau
     
    for (i=1;i<=largeur;i++)
     {
      for (j=1;j<=hauteur;j++)
      {
    System.out.println(game[i-1][j-1]);        
         
      }
     }
   
 
       
    }
   
}


---------------
Le Smiley de la mort !! (8÷þ
mood
Publicité
Posté le 17-04-2002 à 20:29:17  profilanswer
 

n°127527
Cherrytree
cn=?
Posté le 17-04-2002 à 23:08:00  profilanswer
 

Salut, ami joueur (et programmeur, donc :bounce:)
D'abord bravo pour ta question qui est bien posée, ça fait plaisir. J'ai rapidement survolé ton code source et je n'ai pas trouvé le problème. Désolé. Tu peux aller voir le démineur de mon professeur, à l'adresse suivante : www.freund.fr.fm

n°127606
HappyHarry
Posté le 18-04-2002 à 09:49:01  profilanswer
 

trace pas a pas ... tu mets des System.out.println un peu partout et tu verras bien ou ca coince ...
 
ps : les do {}while c pas bo !

n°127651
Shaman Liz​ardKing
Blanc2poulet
Posté le 18-04-2002 à 11:00:25  profilanswer
 

if (game[l+j][m+k]==9)  
    compteur +=1 ;  
 
ca croche la a la ligne 73....


---------------
Le Smiley de la mort !! (8÷þ
n°127655
JeromeV
On en a gros!
Posté le 18-04-2002 à 11:06:03  profilanswer
 

Quand tu testes les cases qui sont sur premiere ligne, premiere colonne, derniere ligne et derniere colonne, il faut penser a ne pas tester les 8 cases autour maus seulement 5 (et 1 pour les 4 coins).
 
Edit : je viens de voir que tu avais a moitié pensé au probleme : tu ajoute une ligne et une colonne en position 0, il faut juste ajouter les meme en derniere ligne et derniere colonne.

 

[jfdsdjhfuetppo]--Message édité par JeromeV--[/jfdsdjhfuetppo]

n°127660
JeromeV
On en a gros!
Posté le 18-04-2002 à 11:08:47  profilanswer
 

Autre remarque :
 

Citation :

do
    {
     a = (int) (Math.random()*largeurPlayer+1) ;
     b = (int) (Math.random()*hauteurPlayer+1) ;
     c++ ;
     if (game[a][b]!=9)
      game[a][b] = 9 ;
 
    }
   while (c!=nbreBombes) ;


 
Je pense qu'il vaut mieux mettre le c++ dans le if : ici tu incremente le nombre de mines posées meme si tu tombe dans une case ou il y en a déjà une.

n°129502
Shaman Liz​ardKing
Blanc2poulet
Posté le 22-04-2002 à 21:11:23  profilanswer
 

CA Y EST j ai trouvé
y a un truc qui bloquait dans ma boucle !!
 
pour ceux que ca intéresse... voila
 
//********************
 
import java.io.* ;
import java.util.* ;
import javax.swing.* ;
 
 
 
public class Serie10
{
   
    public static void main(String[] args) throws IOException
    {
     
    BufferedReader in =new BufferedReader(new InputStreamReader(System.in)) ;
     
    int hauteur, largeur ;
    int hauteurPlayer, largeurPlayer ;
    int nbreBombes, compteur ;
    int i, j, k, l, m ;
    int a, b, c ;
     
     
    System.out.println("Veuillez entrer la hauteur du plateau de jeu" ) ;
    hauteurPlayer = Integer.parseInt(in.readLine());
    hauteur = hauteurPlayer+2  ;
     
    System.out.println("Veuillez entrer la largeur du plateau de jeu" ) ;
    largeurPlayer = Integer.parseInt(in.readLine());
    largeur = largeurPlayer+2 ;
     
    int [] [] game = new int [largeur][hauteur];
     
    System.out.println("Veuillez entrer le nombre de bombes en jeu (doit être inférieur à " +(hauteurPlayer*largeurPlayer)+" )" ) ;
    nbreBombes = Integer.parseInt(in.readLine()) ;
     
     
    // minage  
     
    c = 0 ;
         
    do  
     {
      a = (int) (Math.random()*largeurPlayer+1) ;
      b = (int) (Math.random()*hauteurPlayer+1) ;
       
      if (game[a][b]!=9)
       
      {
       game[a][b] = 9 ;
       c++ ;
      }
       
     }      
    while (c!=nbreBombes) ;
     
     
    // check des cases  
 
    for (i=1 ; i<=hauteurPlayer ; i++)
  {
  for (j=1 ; j<=largeurPlayer ; j++)
   {
   compteur = 0 ;  
   if (game[i][j] != 9)
    {
    for (k=i-1 ; k<=i+1 ; k++)
     {
     for (m=j-1 ; m <= j+1 ; m++)
      {
      if (game[k][m] == 9)
       compteur++ ;
      }
     }
     
    game[i][j] = compteur ;
    }
   }
  }
 
 
   
     
             
    // affichage du tableau
     
    for(i=1 ; i<=hauteurPlayer ; i++)
  {
  for (j=1 ; j<=largeurPlayer ; j++)
   {
   System.out.print(game[i][j]+"  " ) ;
   }
  System.out.println() ;
  }
     
 System.exit(0) ;  
   
 
       
    }
   
}


---------------
Le Smiley de la mort !! (8÷þ

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Un pti coup de main en java (please je débute)

 

Sujets relatifs
RMI java en C/C++ ?Je cherche une perssones pour me creer un appelet java pour un chat.
[java] recuperer des images sur le net?Java 3d + importation de scènes
[JAVA] comment inserer des JCheckBox dans une JTableJAVA .class
[Java] image et mosaïque[java] ajouter un package
[ JAVA ] Compilation - Question bete :D[JAVA] Dom to URL
Plus de sujets relatifs à : Un pti coup de main en java (please je débute)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR