开发者

how to print particular value in array with other values change to '*'?

For example, in the following layout:

.    8 * * *

.    * * * *

.    * 8 * *

.    * * * *

All of the cards that are face down are indicated by a *. The pairs of 8 which are face up are at coordinates (1,1) and (2,3).

I have done my 2D array and now i'm stuck in printing the *. The one i've done is only printing * * * *. i have no idea how to print the 8 inside the array.

Any help?

public static void Shuffles(){

    int[][]a = new int[4][4];
    for (int i =0; i<4;i++){
        for (int j=0;j<4;j++){

            System.out.print("*");
            System.out.print(" ");
        }
        System.out.println("");
        System开发者_开发知识库.out.println("");
    }


}

public static void main(String[] args) {

    List<Integer> randoms = new ArrayList<Integer>();
    Random randomizer = new Random();
    int [][] memory = new int[4][4];

    for(int i = 0; i < 8; ) {
      int r = randomizer.nextInt(8)+1;
      if(!randoms.contains(r)) {
        randoms.add(r);
        ++i;
      }
    }

    List<Integer> clonedList = new ArrayList<Integer>();
    clonedList.addAll(randoms);
    Collections.shuffle(clonedList);
    randoms.addAll(clonedList);

    for(int i=0; i < 4; i++){
            memory[0][i] = randoms.get(i);
            memory[1][i] = randoms.get(i+4);
            memory[2][i] = randoms.get(i+8);
            memory[3][i] = randoms.get(i+12);
    }

    for (int i =0; i<4;i++){
        for (int j=0;j<4;j++){

            System.out.print(memory[i][j]);
            System.out.print(" ");
        }
        System.out.println("");
        System.out.println("");
    }


    int x1,y1,x2,y2;
    Scanner input = new Scanner(System.in);

    System.out.print("Please enter the coordinate [x1] : ");
    x1 = input.nextInt();
    while((x1<1) || (x1>4)){
        System.out.print("Invalid coordinate!! Re-enter [x1] : ");
        x1 = input.nextInt();
    }

    System.out.print("Please enter the coordinate [y1] : ");
    y1 = input.nextInt();
    while((y1<1) || (y1>4)){
        System.out.print("Invalid coordinate!! Re-enter [y1] : ");
        y1 = input.nextInt();
    }

    System.out.print("Please enter the coordinate [x2] : ");
    x2 = input.nextInt();
    while((x2<1) || (x2>4)){
        System.out.print("Invalid coordinate!! Re-enter [x2] : ");
        x2 = input.nextInt();
    }

    System.out.print("Please enter the coordinate [y2] : ");
    y2 = input.nextInt();
    while((y2<1) || (y2>4)){
        System.out.print("Invalid coordinate!! Re-enter [y2] : ");
        y2 = input.nextInt();
    }

    x1=x1-1;
    y1=y1-1;
    x2=x2-1;
    y2=y2-1;

    if(memory[x1][y1] != memory[x2][y2]){
        Shuffles();
    }

} }

this is wad i've done so far...


Are you looking for this?


// k is the number to display
//a[][] is the array

public static void Shuffles(int k, int[][]a) { for (int i =0; i<4;i++) { for (int j=0;j<4;j++) { if(a[i][j] == k) { System.out.print(a[i][j]); } else { System.out.print("*"); } System.out.print(" "); } System.out.println(""); System.out.println(""); } }


Print the positions one at a time. For each one, check if the card is face up, if so then print the value, else print the star. System.out.print() will allow you to print without a new line.


Are you looking for a nested loop?

for (int y = 0; y < 8; y++)
{
    for (int x = 0; x < 8; x++)
    {
        // Use 'x' and 'y' here to index your 2-D 8x8 array
        system.out.println( ... );
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜