public void Move_block_right() // Moving block right { try { for (int l = 0; l < block.Right_sensor_right().Length; l++) { if (matrix_crate[block.Right_sensor_right()[l], block.Right_sensor_right()[l + 1]].Get_colour_name() != bgColour) // Checking if a block won't hit another block { move_left = false; } l++; } if (move_left) { for (int i = 0; i < block.Return_coordinates().Length; i++) { matrix_crate[block.Return_coordinates()[i], block.Return_coordinates()[i + 1]].Change_colour(bgColour); // Blanking the old positon block i++; } block.Block_coordinates_right(); // Moving right the coordinates of falling block for (int i = 0; i < block.Return_coordinates().Length; i++) { matrix_crate[block.Return_coordinates()[i], block.Return_coordinates()[i + 1]].Change_colour(colour); // Displaying the new position block i++; } } else { move_left = true; } } catch (System.IndexOutOfRangeException) { } }