tableau 5x5 de boîtes sur Java?


Je suis un nouveau programmeur et je dois compléter un programme qui établira un tableau de 5 x 5 boîtes. Les lignes doivent être numérotées de 1 à 5 et les colonnes doivent également être numérotées de 1 à 5. L'ordinateur doit choisir un numéro de colonne et un numéro de ligne aléatoires, et dans cette cellule, il doit masquer le numéro 7. L'utilisateur doit être commencé avec 10 points et sera invité à choisir une ligne et une colonne. L'ordinateur doit cocher la case indiquée pour voir s'il contient le numéro 7. Si c'est le cas, il devrait imprimer le score de l'utilisateur, le conseil et la fin du jeu. Si la case choisie ne contient pas le numéro 7, elle doit en soustraire un du score des utilisateurs et afficher le tableau. Le joueur choisit une autre case pour continuer le jeu. Le jeu devrait continuer de cette façon jusqu'à ce que le joueur trouve la boîte avec le numéro 7 ou que son score soit égal à zéro.

Je ne peux tout simplement pas obtenir ce programme, quelqu'un peut-il m'aider et me dire ce que je devrais ajouter à mon programme/ ce qui ne va pas?

import java.io.*;
import java.util.Scanner;
public class Program6

{
public static void main (String args[])
{
Scanner scanner = new Scanner(System.in);
int num, score=10, b, a, x,y,r=0,c=0;

int columnrow[][]= new int[5][5];
char board[][]= new char[5][5];
char show[][]=new char[5][5];


x=(int)(Math.random()*5);
y=(int)(Math.random()*5);
columnrow[x][y]=7;


while(r!=x&&c!=y){
System.out.println("Pick row: ");
r=scanner.nextInt();
System.out.println("Pick column: ");
c=scanner.nextInt();
for(a=0; a<=4; a++){
  for(b=0; b<=4; b++){
    columnrow[a][b]=0;
    board[a][b]='O';
    show[a][b]='O';
    System.out.println(show[a][b]);
}

}

if(r==x&&y==c){
System.out.println("You win! Score: "+score);
}
if(r>5||r<1){
score=score-1;
System.out.print("Row is not between 1 and 5. Score: "+score);
}
if(c>5||c<1){
score=score-1;
System.out.print("Column is not between 1 and 5. Score: "+score);
}
}}}

Un problème auquel je suis confronté est que une fois que l'utilisateur a choisi une colonne et une ligne et qu'elle n'est pas comprise entre 1 et 5, le programme pose simplement la question à nouveau et ne produit pas "La ligne n'est pas comprise entre 1 et 5. Score: la colonne " ou " n'est pas comprise entre 1 et 5. Note: ".

Author: airgold, 2014-03-30

2 answers

Utiliser System.out.print pour chaque colonne et imprimer un \n à la fin de chaque ligne, quelque chose comme:

for(a=0; a<=4; a++){
    for(b=0; b<=4; b++){
        columnrow[a][b]=0;
        board[a][b]='O';
        show[a][b]='O';
        System.out.print(show[a][b]);
    } 
    System.out.println("");
}
 1
Author: , 2014-03-30 19:21:01

Puisque vous ne nous avez donné aucune idée de quels sont vos problèmes, écrivez ici toutes les erreurs que je vois dans votre code (peut-être que j'en ai manqué quelques-unes):

1) utilisez ce code pour imprimer le tableau (c'est mieux si vous mettez une méthode différente):

    for(a=0; a<=4; a++){
      for(b=0; b<=4; b++){
         columnrow[a][b]=0;
         board[a][b]='O';
         show[a][b]='O';
         System.out.print(show[a][b]);
      } 
      System.out.println("");
    }

2) Lorsque l'utilisateur entre une colonne ou un numéro de ligne, vous devez en soustraire 1 (puisque les tableaux java commencent à partir de 0)

3) Donnez un meilleur nom aux vars, il est vraiment difficile de comprendre le code avec des vars comme "c"

Autre que cela la logique de le code semble correct, quelques endroits où j'utiliserais println et non print.

Bonne chance

 0
Author: Gigalala, 2014-03-30 19:35:52