Coder Social home page Coder Social logo

intercept-game-ng's Introduction

NxWorkspaceTemplate

This is a template repository that can be used to jump start development on nx-workspace based projects. Most tooling can be used as-is, this repo only includes extra supporting files for codespaces development, using github-actions, with example deployment pipelines for firebase, GCP App Engine, github pages and digital-ocean app platform.

License

MIT

intercept-game-ng's People

Contributors

bradtaniguchi avatar

Watchers

James Cloos avatar  avatar

intercept-game-ng's Issues

[Feature] Add nodejs game lib

The game lib will hold properties and utilities to handle logic related to the game itself. It will be used to handle re-usable back-end and front-end lib logic and will be shared in any possible libs later.

update
Here are some key properties in regards to general game properties:

  • How many planes are flying at a time?
    • 4, 1 from each of the 4 squadrons
  • How many planes on each side?
    • 6 in total between the 2 squadrons on 1 side.
  • How many cards?
    • Normal plane = 4
    • “Ace” = 6
    • “Double Ace” = 8
  • How to move?
    • 2 dice rolls, 1 for each plane “in flight”.
  • How big is the board?
    • 12x12 (90% sure about this)
    • 10x12
    • The 4 corners are not available, as its where the "hanger" is on the board.

[feat] Create type-check errors

Is your feature request related to a problem? Please describe.
Currently the codebase includes a large amount of type-guard functions. These can be used in the code, and
be used later for possible "game-state" verification. As part of this, we should create errors for
each as a "TypeError" that can be thrown at runtime to help debug any run-time type-errors.

[chore] Remove unused docs

What needs to be done
We wont use everything that is in the docs folder. So we can remove most of it

Additional context
We will use Angular Material, and possibly firebase later. But for now we can remove everything else.

[feat] Add getMoveLocations function

The getMoveLocations function will be used to return the available board-locations that a given plane can move for a given dice-side.

interface

const getMoveLocations = (params: {
  plane: Plane;
  dice: DiceSides;
  inFlightPlanes: Plane[];
}) => {
  boardLocations: BoardLocation[];
  boardLocationStrs: BoardLocationStr[];
};

spec

Key specifics:

  1. A plane must move the entire dice roll, and can't partially move.
  2. A plane cannot move over the same square except the starting square.
  3. A plane cannot move through another plane, regardless of team.

[chore] Add shortId lib

What needs to be done
This lib will be used to generate unique ids on the fly for the game.

[Enhancement] Update getMoveLocations to also return "move-path"

Is your enhancement request related to a problem? Please describe.
It would seem that an "arrow" to help show how a plane would move on the board be helpful to add to the getMoveLocations function.

Describe the solution you'd like
The function should use the pre-existing setup, but expand it to keep track of the locations that the plane would "pass through" to get to a given square.

This may require a change in the ordering and test structure to make more sensible updates to what path is taken, but we'd probably want to get it working first.

Describe alternatives you've considered
This isn't required if the UI display of where a plane can go makes enough sense.

[Feature] Add game-ui lib

Is your feature request related to a problem? Please describe.
This lib will be used with storybook and provide UI components for the game.

Describe the solution you'd like

  • game-board-component - component for the actual display of the game.
  • game-events-list - list/chat-box for game events (do later)
  • game-event-component - element within game-events-list (do later)

Additional context
Add any other context or screenshots about the feature request here.

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.