Java - Necesito ayuda con este ejercicio, por favor

 
Vista:

Necesito ayuda con este ejercicio, por favor

Publicado por Adrián (1 intervención) el 01/10/2022 00:20:19
La universidad ha decidido marcar la disposici´on de las aulas para que se mantenga
la distancia social entre los alumnos, de esta forma ha marcado cada una de las
mesas con una “A” indicando que est´a disponible para los alumnos y con un “.”
indicando que no debe usarse.
Por ejemplo, aqu´ı vemos una disposici´on de un aula peque˜na en la que el responsable
del marcado no ha sido especialmente h´abil.
A . A A .
A A A A A
A . A . A
A A A A .
A . A A .

Los alumnos pueden ahora sentarse libremente en los sitios marcados con una “A”.
Sin embargo, los alumnos prefieren ser prudentes y a la hora de sentarse siguen la
siguiente regla:
“Solo sentarse en un asiento si en los 8 asientos adyacentes al mismo no hay
otra persona sentada”.
Los alumnos toman la decisi´on de d´onde sentarse viendo la disposici´on del aula, y
se sientan todos a la vez, as´ı en la primera iteraci´on todos los sitios est´an libres
inicialmente y todos ser´an ocupados al no tener nadie adyacente. El aula quedar´a
entonces de esta forma, donde un “#” indica que el asiento est´a ocupado por el
alumno.
# . # # .
# # # # #
# . # . #
# # # # .
# . # # .
Una vez sentados, los alumnos son reticentes a levantarse, pero si ven que hay mucha
gente en los asientos adyacentes decidir´an levantarse siguiendo esta regla:
“Levantarse de un asiento en el que cuatro o m´as de sus asientos adyacentes
est´en ocupados”.
La disposici´on del aula quedar´a por tanto de la siguiente forma:
# . A A .
# A A A #
A . A . #
# A A A .
# . A # .
Los alumnos continuaran sent´andose y levant´andose siguiendo las dos reglas antes
mencionadas (nos sentamos si no hay alumnos adyacentes, nos levantamos si hay
cuatro o m´as alumnos adyacentes), siempre teniendo en cuenta que los alumnos se
levantan o se sientan todos a la vez. Por lo tanto, nuestra siguiente iteraci´on ser´a:
# . # A .
# A # A #
A . # . #
# A A A .
# . A # .
Llegados a este punto vemos ning´un alumno tiene la necesidad de levantarse, porque
no tiene 4 o m´as alumnos adyacentes, y ning´un alumno puede sentarse, porque no
hay sitios libres sin nadie adyacente, por lo que esta ser´a la disposici´on final de
nuestra aula.
Para este ejercicio se pide, por tanto, la implementaci´on de la siguiente funci´on:


public class SocialDistance {
/**
* Given the layout of a class with available sites marked with an ’A’ and
* invalid sites marked with a ’. ’, returns the resulting layout with the
* sites occupied by the students marked with a ’#’ following two rules :
* - Students occupy an empty seat if there are no other adjacent students .
* - A student leaves a seat empty if he/ she has 4 or more adjacent students .
* @param layout The initial layout .
* @return The resulting layout .
* @throws IllegalArgumentException if the initial layout is invalid (is null ,
* is ragged , includes characters other than ’.’ or ’A ’)).
*/
public static char [][] seatingPeople ( char [][] layout ) { /* ... */ }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder