Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feedback #1

Open
wants to merge 95 commits into
base: feedback
Choose a base branch
from
Open

Feedback #1

wants to merge 95 commits into from

Conversation

github-classroom[bot]
Copy link

@github-classroom github-classroom bot commented Sep 24, 2024

👋! GitHub Classroom created this pull request as a place for your teacher to leave feedback on your work. It will update automatically. Don’t close or merge this pull request, unless you’re instructed to do so by your teacher.
In this pull request, your teacher can leave comments and feedback on your code. Click the Subscribe button to be notified if that happens.
Click the Files changed or Commits tab to see all of the changes pushed to the default branch since the assignment started. Your teacher can see this too.

Notes for teachers

Use this PR to leave feedback. Here are some tips:

  • Click the Files changed tab to see all of the changes pushed to the default branch since the assignment started. To leave comments on specific lines of code, put your cursor over a line of code and click the blue + (plus sign). To learn more about comments, read “Commenting on a pull request”.
  • Click the Commits tab to see the commits pushed to the default branch. Click a commit to see specific changes.
  • If you turned on autograding, then click the Checks tab to see the results.
  • This page is an overview. It shows commits, line comments, and general comments. You can leave a general comment below.
    For more information about this pull request, read “Leaving assignment feedback in GitHub”.

Subscribed: @SantiagoGimenez01 @luciagarcia0 @Malena8a @noiseArch @VOrtigosa

Copy link

@dlopezalvas dlopezalvas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

¡Hola @pdepjm/vmsl!

Les dejamos algunos comentarios, el comentario más importante en general es el tema de la declaratividad para darle un orden y prolijidad al código, sobre todo porque el juego es un proyecto medianamente grande y les puede complicar a futuro si no ordenan un poco ahora.

Por otro lado les consulto, ¿tienen algun diagrama de clases? ¿En qué lugar están aplicando polimorfismo?

Por último, estaría bueno que tengan definidos los límites del mapa para el movimiento del mozo, para que no se pueda ir por fuera del tamaño de la pantalla.

¡Saludos!

clientes.wlk Outdated
Comment on lines 4 to 17
object mesas {
var property mesasDisponibles = [[8, 8], [2, 2], [2, 8]]
var property mesasOcupadas = []

method ocuparMesa(mesa) {
mesasOcupadas.add(mesa)
mesasDisponibles.remove(mesa)
}

method desocuparMesa(mesa) {
mesasOcupadas.remove(mesa)
mesasDisponibles.add(mesa)
}
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Para no estar trabajando siempre con dos listas, podrían tener una lista que tenga todas las existentes y otra que solo tenga las ocupadas, las disponibles se pueden calcular a partir de las ocupadas asi que no sería necesario tener ese dato guardado. De esta forma únicamente tienen que tocar la lista de mesas ocupadas.

main.wpgm Outdated
game.cellSize(100)
game.title("Restaurante")
/* Spawn de clientes en la posicion de la mesa si es que hay disponibles */

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Toda la lógica de spawn de clientes podrían tenerla en un objeto que se encargue de eso, es más prolijo para saber concretamente que objeto tocar y que no esté todo en un mismo lugar.

main.wpgm Outdated
Comment on lines 23 to 43
game.onTick(
2000,
"spawnClientes",
{ if (mesas.mesasDisponibles().size() !== 0) {
const cliente = new Cliente()
cliente.sentarseEnMesa()
// Crea un objeto nuevo de cliente y le asigna una mesa de las disponibles

game.addVisual(pepita)
game.addVisual(cliente)
game.say(cliente, "!")
// Este onTick se encarga de eliminar al cliente y desocupar la mesa cuando se le acaba la paciencia
game.onTick(
cliente.paciencia(),
"pacienciaCliente/" + cliente.id(),
{
mesas.desocuparMesa([cliente.position().x(), cliente.position().y()])
return game.removeVisual(cliente)
}
)
} }
) // Eventos de Teclado: Interaccion con cliente

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

El onTick idealmente debería ejecutar un método, es más prolijo tener esto delegado en sus diferentes partes para no tener toda la lógica en un lugar, queda poco declarativo. Fijense de delegar un poco (teniendo en cuenta que además esto debería estar en un objeto que se encargue del spawneo, no en el program).

main.wpgm Outdated
Comment on lines 51 to 65
)
/*game.addVisualCharacter(mesa1)
game.addVisualCharacter(mesa2)
game.addVisualCharacter(mesa3)
game.addVisualCharacter(mesa4)
game.addVisualCharacter(mesa5)*/

keyboard.w().onPressDo({ pepita.fly(1) })
// TECLADO
//Mostrar contenido de la bandeja
keyboard.space().onPressDo{mozo.mostrarBandeja()}
//agarrar y entregar plato
keyboard.h().onPressDo { mozo.agarrar(hamburguesa) }
keyboard.enter().onPressDo { mozo.entregar() }

game.start()

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Las configuraciones también podrían estar en otro objeto que se encargue de ellas, para tener un poco más de orden. El program debería ser sencillo de leer, algo como:

program Juego {
  configuracion.setearTeclado()
  configuracion.setearVisuales()
  spawner.comenzar()
  //etc, otras configuraciones
}

Fijense que queda mucho más claro que cosas tienen que estar iniciadas para que el juego levante correctamente, así además de poder entenderlo más fácil, se les va a hacer más sencillo resolver bugs si los tuvieran.

mozo.wlk Outdated
Comment on lines 29 to 34
method mostrarBandeja() {
const dialogo = new Dialogo(position = game.at(self.position().x() + 1.15, self.position().y() + 3),
duration = 1000,
image = bandeja.image()) // Dura 2 segundos
dialogo.mostrar()
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Podrían delegar la posición a un método aparte para que sea más declarativo.

mozo.wlk Outdated
Comment on lines 59 to 76
method entregar (){
game.whenCollideDo(
self,
{ cliente =>
if(cliente.plato()== self.bandeja()){
self.sumarPuntos(cliente, bandeja)
//agregar metodo
cliente.recibirPlato()
bandeja = vacio
}
else {
self.restarPuntos()
console.println("plato incorrecto o bandeja vacia")
}
}
)
}
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ojo, esto se está ejecutando cada vez que aprietan la tecla enter, están configurando la colisión cada vez que entregan, cuando debería ejecutarse una sola vez.
Acá hay que pensar, ¿quiero que entregue en una colisión o quiero que entregue cuando aprieto la tecla enter?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Por otro lado, entiendo que los console print ahora son para ver si está funcionando, pero a futuro estaría bueno que se le comunique al jugador de alguna forma (visual o sonora) que el plato está incorrecto, ahora mismo no se le está comunicando.

pruebas.wtest Outdated
Comment on lines 1 to 9
import pepita.*

describe "group of tests for pepita" {

test "pepita has initial energy" {
assert.equals(100, pepita.energy())
}

}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

¿Pensaron algun test?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants