Skip to content

Commit

Permalink
Subo ultimos cambios, juego terminado
Browse files Browse the repository at this point in the history
IsiAliEmir committed Nov 14, 2024
1 parent ef705ce commit f628543
Showing 10 changed files with 43 additions and 45 deletions.
17 changes: 0 additions & 17 deletions ProximosPasos.md

This file was deleted.

12 changes: 9 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -13,22 +13,28 @@ UTN - Facultad Regional Buenos Aires - Materia Paradigmas de Programación

## Capturas

![jugador1](assets/jugadorsito.png)
![jugador2](assets/brasil2.png)
![menuInicio](assets/menuInicio.png)
![screenshot](assets/screenshot.png)

## Reglas de Juego / Instrucciones

Cada jugador debe desplazarse por el campo de juego tratando de recolectar consumibles en el camino
para no cansarse, y patear la pelota hacia el arco rival. El que hace más goles gana!

Notas importantes:
- Los goles solo cuentan cuando la pelota es pateada dentro del arco, no se puede anotar dribbleando.
- La partida finaliza cuando algún jugador llega a anotar 3 goles.

## Controles:

- `W` para mover el jugador 1 hacia arriba.
- `A` para mover el jugador 1 hacia abajo
- `S` para mover el jugador 1 hacia la izquierda.
- `D` para mover el jugador 1 hacia la derecha.
- `SPACEBAR` para patear la pelota.

- `UP` para mover el jugador 2 hacia arriba.
- `DOWN` para mover el jugador 2 hacia abajo.
- `LEFT` para mover el jugador 2 hacia la izquierda.
- `RIGHT` para mover el jugador 2 hacia la derecha.
- `RIGHT` para mover el jugador 2 hacia la derecha.
- `DELETE` para patear la pelota.
Binary file removed assets/cerveza.png
Binary file not shown.
Binary file removed assets/cono.png
Binary file not shown.
Binary file added assets/gritoGol.mp3
Binary file not shown.
Binary file added assets/menuGameOver.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 4 additions & 6 deletions ejecucion.wlk
Original file line number Diff line number Diff line change
@@ -128,12 +128,11 @@ object jueguito{
pelota.irseDePantalla()
golesJugador2 += 1
game.say(jugador2, "¡Gol para el Jugador 2! Total: " + golesJugador2)
//reproducir sonidito.
game.sound("gritoGol.mp3").play()
game.schedule(3000, {
pelota.moverse(xiPelota, yiTodos)
self.setearPosicion(jugador1,xiJugador1,yiTodos)
self.setearPosicion(jugador2,xiJugador2,yiTodos)
//reiniciar posición jugadores.
})
self.checkFinal(golesJugador2)
}
@@ -142,12 +141,11 @@ object jueguito{
pelota.irseDePantalla()
golesJugador1 += 1
game.say(jugador1, "¡Gol para el Jugador 1! Total: " + golesJugador1)
//reproducir sonidito.
game.sound("gritoGol.mp3").play()
game.schedule(3000, {
pelota.moverse(xiPelota, yiTodos)
self.setearPosicion(jugador1,xiJugador1,yiTodos)
self.setearPosicion(jugador2,xiJugador2,yiTodos)
//reiniciar posición jugadores.
})
self.checkFinal(golesJugador1)
}
@@ -193,8 +191,8 @@ object jueguito{

method close() {
self.removeVisual()
game.addVisual(fondo2)
keyboard.y().onPressDo({game.removeVisual(fondo2) self.menu()})
game.addVisual(menuGameOver)
keyboard.y().onPressDo({game.removeVisual(menuGameOver) self.menu()})
keyboard.n().onPressDo({game.stop()})
}

39 changes: 25 additions & 14 deletions objects.wlk
Original file line number Diff line number Diff line change
@@ -28,29 +28,34 @@ class Jugador {
else if (energia > 0) return 0.2* cantidad
else return 0
}
method restriccionSuperior(cantCeldas) = self.position().y() + self.ajustarPorEnergia(cantCeldas) <= 98
method restriccionInferior(cantCeldas) = self.position().y() - self.ajustarPorEnergia(cantCeldas) >= 1
method restriccionDerecha(cantCeldas) = self.position().x() + self.ajustarPorEnergia(cantCeldas) <= 209
method restriccionIzquierda(cantCeldas) = self.position().x() - self.ajustarPorEnergia(cantCeldas) >= 10

method moverseArriba(cantCeldas) {
if (self.position().y() + self.ajustarPorEnergia(cantCeldas) <= 98) { // no pasa de yBordeSup.
if (self.restriccionSuperior(cantCeldas)) { // no pasa de yBordeSup.
position.goUp(self.ajustarPorEnergia(cantCeldas))
self.perderEnergia(2)
ultimaDireccion = "arriba"
}
}
method moverseAbajo(cantCeldas) {
if (self.position().y() - self.ajustarPorEnergia(cantCeldas) >= 1) { // no pasa de yBordeInf.
if (self.restriccionInferior(cantCeldas)) { // no pasa de yBordeInf.
position.goDown(self.ajustarPorEnergia(cantCeldas))
self.perderEnergia(2)
ultimaDireccion = "abajo"
}
}
method moverseDerecha(cantCeldas) {
if (self.position().x() + self.ajustarPorEnergia(cantCeldas) <= 209) { // no pasa de xBordeDer.
if (self.restriccionDerecha(cantCeldas)) { // no pasa de xBordeDer.
position.goRight(self.ajustarPorEnergia(cantCeldas))
self.perderEnergia(2)
ultimaDireccion = "derecha"
}
}
method moverseIzquierda(cantCeldas) {
if (self.position().x() - self.ajustarPorEnergia(cantCeldas) >= 10) { // no pasa de xBordeIzq.
if (self.restriccionIzquierda(cantCeldas)) { // no pasa de xBordeIzq.
position.goLeft(self.ajustarPorEnergia(cantCeldas))
self.perderEnergia(2)
ultimaDireccion = "izquierda"
@@ -268,20 +273,26 @@ class TarjetaRoja inherits Tarjeta (energia = 100, potencia = 20, image = "redCa
}
// Pelota
class Pelota inherits Item (image = "pelota.png") {
method entraEnArcoIzq(xIzq, yInf, ySup) =
self.position().x() < xIzq and
self.position().y() > yInf and
self.position().y() < ySup
method entraEnArcoIzq(lineaArco, paloInf, paloSup) =
self.position().x() < lineaArco and
self.position().y() > paloInf and
self.position().y() < paloSup

method entraEnArcoDer(lineaArco, paloInf, paloSup) =
self.position().x() > lineaArco and
self.position().y() > paloInf and
self.position().y() < paloSup

method entraEnArcoDer(xDer, yInf, ySup) =
self.position().x() > xDer and
self.position().y() > yInf and
self.position().y() < ySup
method estaAdentro() =
self.position().x() + 5 <= 209 and
self.position().x() - 5 >= 10 and
self.position().y() + 5 <= 98 and
self.position().y() - 5 >= 1
}

object fondo2 {
object menuGameOver {
method position() = game.at(80,35)
method image() = "gamefinal.png"
method image() = "gameOver.png"
}

object menuInicio {
10 changes: 5 additions & 5 deletions pruebas.wtest
Original file line number Diff line number Diff line change
@@ -20,19 +20,19 @@ describe "tests de uso de objetos" {
assert.equals(20, jugador.potencia())
}

test "Jugador agarra gaseosa (energia 30 y potencia 5)" {
test "Jugador agarra gaseosa (energia 40 y potencia 5)" {
const gaseosa = new Gaseosa ()
jugador.perderEnergia(100)
gaseosa.aplicarSobre(jugador)
assert.equals(30, jugador.energia())
assert.equals(40, jugador.energia())
assert.equals(5, jugador.potencia())
}

test "Jugador agarra banana (energia 40 y potencia 10)" {
test "Jugador agarra banana (energia 60 y potencia 10)" {
const banana = new Banana ()
jugador.perderEnergia(100)
banana.aplicarSobre(jugador)
assert.equals(40, jugador.energia())
assert.equals(60, jugador.energia())
assert.equals(10, jugador.potencia())
}

@@ -55,7 +55,7 @@ describe "tests de uso de objetos" {

describe "test de uso de items de movimiento" {

const jugador = new Jugador (image = "", position = game.at(0,0))
const jugador = new Jugador (image = "", position = new MutablePosition(x=0, y=0))

test "Jugador resbala con banana" {
const banana = new BananaPeelDer ()

0 comments on commit f628543

Please sign in to comment.