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( ... );
}
}
精彩评论