Git Product home page Git Product logo

bang's People

Contributors

caleeli avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

bang's Issues

Subir las imagenes de las cartas

Subir las imágenes de las cartas a:

public/cards/bang

Se recomienda que las cartas estén en formato JPG de almenos 240px de ancho y no mayor a 15kb de peso cada uno para contar con una buena calidad de imagen y velocidad de transferencia.

El nombre del archivo deberá ser como:

public/cards/bang/45.jpg

donde 45 coincidira con el ID de la carta cargada en la base de datos

Implementar la pantalla Home con blade

Esta pantalla se muestra después de que el usuario de "logea"
Debe cargar la aplicacion vuejs
y cargar el layout de la Mesa en toda la pagina
No debe tener scroll.

image

Implementar el componente VueJS ZoomCard

Este componente deberá mostrar en zoom la imagen de la carta que el usuario esta apuntando con el raton.
Si apunta a una que no puede ver solo vera la imagen del reverso.
(Se recomienda por simplicidad obtener la imagen del elemento donde el mouse se encuentra actualmente)

props: {
player: Object //jugador que esta viendo el componente
}

Crear Migration y Model para la tabla match

Los campos de la tabla son:

  • id
  • name: Nombre de la partida
  • type: Tipo de la partida (normal)
  • status: ACTIVE | CLOSED
  • current_player_id: ID del jugador con el turno actual

API: GET /api/match/{id}

Devuelve una partida (match) por su id:

players son los datos de los jugadores para la partida actual
podría ser la union de dos tablas: player + match_player

{
    "data": {
        "name": "Nombre del match",
        "randomSeed": 12786128736871263, // La semilla para el generador de números aleatorios del juego
        "players": [ {
            "id": 1,
            "name": "Player name",    //Nombre dentro del match
            "character": 110,  //Id de la carta de su personaje
            "role": 115,  //Id de la carta de su rol
            "hand": [45,67,11],  //ids de las cartas de su mano 
            "equipment": [],  //ids de las cartas de su equipamiento 
            "played": []  //ids de las cartas que esta jugando 
        }, ...
        ],
    }
}

Crear Migration y Model para la tabla match_player

Campos:

  • id
  • match_id: ID del match propietario, se debe incluir la llave foranea especifica con CASCADE DELETE
  • character: ID Carta de personaje del jugador
  • role: Rol del jugador
  • position: Posicion en la mesa.
  • hand: Array de las cartas en la mano del jugador
  • equipment: Array de las cartas en la mesa del jugador
  • played: Array de las cartas que actualmente se están jugando

Crear Migration y Model para la tabla card

Campos:

  • id
  • type: Tipos: CHARACTER | ACTION | ROLE
  • suit: ESPADA | CORAZON | TREBOL | DIAMANTE

Queda pendiente revisar si esta tabla necesitará mas atributos para describir correctamente una carta

API: GET /api/match/{id}/history

Devuelve el historial de jugadas

{
    "data": [
        {"player": 1, "action": "move", "params": ["cards", 0, "hand", 3]},
        {"player": 2, "action": "moveShuffleAll", "params": ["played", "cards"]},
        {"player": 1, "action": "changeLives", "params": ["player2", 3]}
    ]
}

API: POST /api/match

Crear una partida:
Debe crear un registro en la tabla match

  • con un name
  • se debe generar un randomSeed que sera utilizado para sincronizar el generador de números aleatorios de todos los usuarios (players, observers).
  • debe crear un registro en la tabla match_player por cada jugador que participara de la partida y devolverla en players.
    • debe repartir los roles respectivos a cada jugador
  • Crear un histórico inicial para la partida
  • Devolver un array con las cartas boca abajo en la mesa (ya mezcladas) cards
  • Devolver un array con las cartas boca arriba en la mesa (inicialmente vacia) played

EXAMPLE:

POST
{
        "name": "Nombre del match",
        "type": "normal", //tipo de partida
        "randomSeed": 12786128736871263, // La semilla para el generador de números aleatorios del juego
        "players": [1,5,7,3,8,9]
}

RESULT:

{
    "data": {
        "name": "Nombre del match",
        "randomSeed": 12786128736871263, // La semilla para el generador de números aleatorios del juego
        "players": [ {
            "id": 1,
            "name": "Player name",    //Nombre dentro del match
            "character": 110,  //Id de la carta de su personaje
            "role": 115,  //Id de la carta de su rol
            "hand": [45,67,11],  //ids de las cartas de su mano 
            "equipment": [],  //ids de las cartas de su equipamiento 
            "played": []  //ids de las cartas que esta jugando 
        }, ...
        ],
        "cards": [],  // Cartas boca abajo en la mesa
        "played": [], // Cartas boca arriba en la mesa
    }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.