Bataille Navalle en JAVA

Fermé
TYKA - Modifié le 15 déc. 2019 à 16:28
Bonjour, je suis débutant en JAVA et dans le cadre de mes études on m'a demander de crer le jeux bataille navale et j'ai quelque difficulté j'espère que vous pourrez m'aider en vous remerciant de par avance.

Voici mon code :

static int changeLettre(String lettres)
    {
        switch(lettres)
        {
            case "A": return 0;
            case "B": return 1;
            case "C": return 2;
            case "D": return 3;
            case "E": return 4;
            case "F": return 5;
            case "G": return 6;
            case "H": return 7;
            case "I": return 8;
            case "J": return 9;
        }
        return -1;
    }

    @SuppressWarnings("empty-statement")
    public static void main(String[] args)
    {
       int chiffre = -5;
       char TC[] = new char []{'A','B','C','D','E','F','G','H','I','J'};
       int TN[] = new int []{1,2,3,4,5,6,7,8,9,10};
       int TP[][] = new int[10][10];
       int i = 0; 
       int nbrdebateaux = 0;
       int PA = 5;
       int croiseur = 4;
       int SM = 3;
       int torpilleur = 2;
       
        
       while (chiffre != 5)
       
      
        
        { 
            Scanner sc = new Scanner(System.in);
            System.out.println("Que voulez-vous faire ?");
            System.out.println("1. Positionner des bateaux");
            System.out.println("2. Lancer une partie");
            System.out.println("3. Afficher la map");
            System.out.println("4. Remettre la grille à zéro");
            System.out.println("5. Quitter");
            System.out.println("Saisir numéro pour choix du paramètre");
            chiffre = sc.nextInt();
            
            if (chiffre < 1 || chiffre > 5)
            {
                System.out.println("Erreur de saisie, veuillez recommencez");
            }
            else if (chiffre == 1)
            {
                while(nbrdebateaux < 5)
                {
                    System.out.println("Veuillez saisir les emplacements des bateaux");
                    
                    sc.nextLine();
                    System.out.println(" Saisir Une lettre entre A et J ");
                    String lettres = sc.nextLine();
                    int indexLettre = changeLettre(lettres);
                    System.out.println(" Saisir un chiffre entre 1 et 10 ");
                    int nombre = sc.nextInt();
                    nbrdebateaux = nbrdebateaux +1;
                    
                    while ((nombre < 1 || nombre >10)||(indexLettre == -1))
                    {
                       System.out.println(" Erreur de saisis vous devez entrer une lettre entre A et J COMPRIS et un chiffre entre 1 et 10 Compris ! ");
                       
                       sc.nextLine();
                       System.out.println(" Saisir Une lettre entre A et J en MAJUSCULES ");
                       lettres = sc.nextLine();
                       indexLettre = changeLettre(lettres);
                       System.out.println(" Saisir un chiffre entre 1 et 10 ");
                       nombre = sc.nextInt();
                        for (i = 0; i <=10; i++)
                        {
                       //TP[lettres][nombre] = 1;
                        }
                    }
                    if (nbrdebateaux < 5)
                    {
                        System.out.println("Vous devez encore saisir des bateaux");
                    }
                    else
                    {
                        System.out.println("Vous pouvez commencer");
                    }
                }
            }
            else if (chiffre == 2)
            {
                System.out.println("Lancement de la partie");
            }
            else if (chiffre == 3)
            {
                System.out.println("Voici la map du jeux");
                System.out.print("  ");
                 for (int j = 0; j <(TP.length); j++)
                 {
                    System.out.print(+ TN[j]+ "  "); 
                 }
                System.out.println(" ");
                for (int x = 0; x < (TP.length); x++)
                {
                    System.out.print(TC[x]+"  ");
                        for (int p = 0; p <(TP.length); p++)
                        {
                            System.out.print(TP[x][p]+"  ");
                        } 
                        System.out.println(" ");
                }
            }
            else if (chiffre == 4)
            {
                System.out.println(" La grille, à était remise à zéro");
                for (int x = 0; x < (TP.length); x++)
                {
                    for (int p = 0; p <(TP.length); p++)
                    {
                        TP[x][p] = 0;
                    }
                }
            }
            else if (chiffre == 5)
            {
                System.out.println("Au revoir, et à bientôt");
            }
        }
    }
}


Mon problème est que je n'arrive pas entrer les valeurs saisis dans mon tableaux, et je ne sais pas comment gérer les bateaux qui pourrait potentiellement déborder de la grille

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également: