繁体   English   中英

Java上5x5的盒子阵列?

[英]5x5 array of boxes on Java?

我是一名新程序员,我必须完成一个程序,该程序将建立5 x 5的盒子阵列。 行应编号为1-5,列也应编号为1-5。 计算机应选择一个随机的列号和行号,并且在该单元格中应隐藏数字7。用户应以10点开始,然后要求用户选择行和列。 计算机应选中所示的框以查看其中是否包含数字7。如果包含,则应打印用户的得分,棋盘并结束游戏。 如果选择的框不包含数字7,则应从用户得分中减去1,然后显示棋盘。 玩家选择另一个盒子继续游戏。 游戏应以这种方式继续进行,直到玩家找到数字为7的盒子或其得分为零为止。

我只是无法获得该程序,有人可以帮助我并告诉我应该添加到程序中的内容吗?

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);
}
}}}

我面临的一个问题是,在用户选择列和行并且它不在1到5之间之后,该程序只是再次询问该问题,并且不会输出“行不在1到5之间。得分:”或“列不在1到5之间。得分:“。

对每列使用System.out.print ,并在每行末尾打印\\n ,例如:

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)使用此代码来打印数组(如果使用其他方法则更好):

    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)当用户输入列或行号时,应从中减去1(因为java数组从0开始)

3)给vars更好的名字,用“ c”这样的vars很难理解代码

除此之外,代码的逻辑看起来还不错,在某些地方我会使用println而不是print。

祝好运

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM