void c(int w,int h)throws Exception{String r="";int x=0,j=0,i;for(;j++<h;x^=1,r+="\n")for(i=0;i<w;r+=(i+++x)%2<1?"_":"O");for(System.out.println(r);r.contains("O");System.out.println(r=r.substring(0,x)+'X'+r.substring(x+1))){Thread.sleep(1000);for(x=0;r.charAt(x)!='O';x=new java.util.Random().nextInt(r.length()));}}
void c(int w,int h)throws Exception{String r="";int x=0,j=0,i;for(;j++<h;x^=1,r+="\n")for(i=0;i<w;r+=(i+++x)%2<1?"_":"O");for(System.out.println(r);r.contains("O");System.out.println(r=r.substring(0,x)+'X'+r.substring(x+1))){Thread.sleep(1000);for(x=0;r.charAt(x)!='O';x=new java.util.Random().nextInt(r.length()));}}
void c(int w, int h) throws Exception{ // Method with two integer parameters (throws Exception is required for the Thread.sleep)
String r = ""; // String we build to print
int x=0, j=0, i; // Some temp values and indexes we use
for(; j++<h; // Loop over the height
x^=1, // After every iteration change the flag `x` every iteration from 0 to 1, or vice-versa
r += "\n") // And append the String with a new-line
for(i=0; i<w; // Inner loop over the width
r += (i++ + x)%2 < 1 ? "_" : "O") // Append the String with either '_' or 'O' based on the row and flag-integer
; // End inner width-loop (implicit / no body)
// End height-loop (implicit / single-line body)
for( // Loop
System.out.println(r); // Start by printing the starting wrap
r.contains("O"); // Continue loop as long as the String contains an 'O'
System.out.println(r= // Print the changed String after every iteration
r.substring(0,x)+'X'+r.substring(x+1))){ // After we've replaced a random 'O' with 'X'
Thread.sleep(1000); // Wait 1 second
for(x=0; r.charAt(x) != 'O'; // Loop until we've found a random index containing still containing an 'O'
x = new java.util.Random().nextInt(r.length())) // Select a random index in the String
; // End loop that determines random index containing 'O' (implicit / no body)
} // End loop
} // End method
void c(int w, int h) throws Exception{ // Method with two integer parameters (throws Exception is required for the Thread.sleep)
String r = ""; // String we build to print
int x=0, j=0, i; // Some temp values and indexes we use
for(; j++<h; // Loop over the height
x^=1, // After every iteration change the flag `x` every iteration from 0 to 1, or vice-versa
r += "\n") // And append the String with a new-line
for(i=0; i<w; // Inner loop over the width
r += (i++ + x)%2 < 1 ? "_" : "O") // Append the String with either '_' or 'O' based on the row and flag-integer
; // End inner width-loop (implicit / no body)
// End height-loop (implicit / single-line body)
for( // Loop
System.out.println(r); // Start by printing the starting wrap
r.contains("O"); // Continue loop as long as the String contains an 'O'
System.out.println(r= // Print the changed String after every iteration
r.substring(0,x)+'X'+r.substring(x+1))){ // After we've replaced a random 'O' with 'X'
Thread.sleep(1000); // Wait 1 second
for(x=0; r.charAt(x) != 'O'; // Loop until we've found a random index containing still containing an 'O'
x = new java.util.Random().nextInt(r.length())) // Select a random index in the String
; // End loop that determines random index containing 'O' (implicit / no body)
} // End loop
} // End method