Giter VIP home page Giter VIP logo

red-team's Introduction

Build Status Waffle.io - Columns and their card count

Red-Team

Read Team Repository

How to run

Follow these steps in this order to get things up and running!

  1. Make sure you are in the proper directory (this one) 1a. All of these commands expect you start from the root of the directory 1b. These all need to be running in their own terminal windows
  2. cd Database/Dictionary 2a. ./mvnw spring-boot:run 2b. This can be run concurrently with #3
  3. cd Database/GameDB 2a. ./mvnw spring-boot:run
  4. cd Server\ Backend 4a. npm run start
  5. cd Server\ Frontend 5a. ./gradlew desktop:dist 5b. Move the words.txt files from the core/assets folder at root of the Server Frontend folder to the desktop/build/libs folder 5c. cd desktop/build/libs 5d. java -jar desktop-1.3-beta1.jar -debug -ai
  6. From step 4 of #5 (if you have to, repeat the steps above), java -jar desktop-1.3-beta1.jar -debug -stats

red-team's People

Contributors

cesarbiods avatar cking20 avatar d-0-r avatar dkear avatar donavonking avatar gdave50 avatar henghaopu avatar hkobrien avatar hreitmei avatar james-aric avatar landonpatmore avatar marcellocierro avatar nsicilia avatar randynguyen007 avatar rzsupra17 avatar samwheeler2014 avatar sha224 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

red-team's Issues

Implement newGameCountdown event

This event will:

  • send out timer that is decremented every 1000 milliseconds (1 second)
  • show the user the timer until the next game
  • will be sent out with the gameOver event
  • everything on the frontend needs to be disabled at this point
  • when the timer resets, the client will get a board and dataUpdate events to reset all data and to make a new game

Endgame Data Formalization

There is no set format for the data being sent in a endgame socket event. all it says is
"score": scores of game
"timeout": double
"gameData": array of all data of the scores and such
This must be refined.

Bad words valid words discrepancy

The valid words dictionary and the invalid words dictionary have differences in the number of permutations per word, leading to bad words being able to be played on the game, which would cause Bastian to fall out of his chair. These differences have to be worked out at some point, at least before May 4th.
@cking20 can answer technical questions if I can't answer them.

B1.2 Discuss Schema Implementation

  • Has the schema design been discussed? Possibility of a draft is included.
  • Are the initial tables created for the statistics tracking and/or player information?

when turning Backend into a State Machine

There should be a state/transition in the form of an event being sent and recieved from the server front end. Something such as "updateState" sent, then a "stateUpdated" sent back. this will hopefully help make the board state consistent

Frontend and AI disconnect from backend

After a certain period of time (ranging from 1-2 minutes) the AI frontend and AI entities receive EVENT_DISCONNECT for no discernible reason. This may be due to the heartbeat timeout, which is when the server pings the client periodically to check if the client is still alive. I tried setting the timeout to infinite, which fixed nothing. Only thought is that the client and server connection gets interrupted by something. Possibly need to throw time intensive calculations into a separate thread in order to keep the heartbeat alive?

Travis not running tests

Moved to Jasmine, now tests are not running.

Picks up Jasmine, but won't run test.js. Works on local machines.

Server Crash on Frontend App's close

when the server frontend is shutdown, the server crashes with this error

C:\Users\chris\Desktop\Red-Team\Server Backend\entities\ServerManager.js:60
if (p.socket === socket) {
^

TypeError: Cannot read property 'socket' of null
at ServerManager.findWhichPlayerLeft (C:\Users\chris\Desktop\Red-Team\Server Backend\entities\ServerManager.js:60:15)
at Socket.socket.on (C:\Users\chris\Desktop\Red-Team\Server Backend\entities\ServerManager.js:42:41)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at Socket.emit (C:\Users\chris\Desktop\Red-Team\Server Backend\node_modules\socket.io\lib\socket.js:140:10)
at Socket.onclose (C:\Users\chris\Desktop\Red-Team\Server Backend\node_modules\socket.io\lib\socket.js:452:8)
at Socket.ondisconnect (C:\Users\chris\Desktop\Red-Team\Server Backend\node_modules\socket.io\lib\socket.js:416:8)
at Socket.onpacket (C:\Users\chris\Desktop\Red-Team\Server Backend\node_modules\socket.io\lib\socket.js:338:12)
at C:\Users\chris\Desktop\Red-Team\Server Backend\node_modules\socket.io\lib\client.js:193:16
at _combinedTickCallback (internal/process/next_tick.js:131:7)
[nodemon] app crashed - waiting for file changes before starting...

Board validation

Current Progress:

  • Word placement
  • Cross section placement
  • Duplicate word placement (same word played on top of the same word)
  • First word only allowed to be played through center tile
  • Word attached to played words area

AI sending garbage to server

Towards the later stages of the game, when the AI are trying to think of words to play, they seem to be sending garbage plays to the server. A lot of garbage gets sent. Will need to hunt it down, but saw it when I glanced at the console at a moment.

This could actual be part of the bug in #201 .

Start word position validation

When playing a two letter word as first word on empty board, more often then not frontend receives a INVALID_PLACEMENT error

Remove all banned words from the AI's memory

this needs to happen at some point to avoid having to query the DB twice before sending an AI's word off to be played. Not super critical, just removes some query time and some error checking. Also this will stop the AI from swearing, so there is that.

Dictionary API Tests

Tests need to be built for testing the dictionary. PR #37 should never have had to been created if we had testing for PR #34 to check for case-insensitivity.

Tests will be used with Travis to automate builds and test code.

AI missing plays where whole new word is played next to existing tile

The algorithm as it currently stands only plays new tiles off of existing tiles. this means that if there is a vertical word going up to the row before the top row, it will never play a horizontal word in the top most row
example: CAT will never be played horizontally in the top row
"-,-,-,-,-"
"-,-,-,a,-"
"-,-,-,n,-"

user-route.js needs to be linted

Eslint is saying that this file has 113 errors:

โœ– 113 problems (113 errors, 0 warnings)
  102 errors, 0 warnings potentially fixable with the `--fix` option.

Found using: npm run lint

AI breaks Server when playing words

When the AI connects to the server, the first word is played. On subsequent turns, however, the server breaks with an error of:

toUpperCase is not a function
Uncaught Promise Rejection

Update Names on Disconnect

When anyone leaves the game, the Server Frontend should change the names to either the new person's name or Not Assigned to signify no one is there.

JSON Standardization

Each JSON response needs to have a standardized response across all API calls.

Going to follow the JSON API v1.0 standard.

Each Response must have the following:

  • metadata object: data that is not critical to the response (license, author, api version, etc.)
  • ** data object: data that is critical to the response (actual json response with the requested data)
  • **errors object: data that is critical to a failed response (error code, message, status code)

Bullet points with ** means that these objects cannot coexist in the same response.

Need a get all users in game endpoint

I need to get all the Players in the game in JSON format. I'll need all the variables of Player.js as well as there should be another bool variable added called something like "isAI" to denote if that player is an AI. Also the order in which the Players are sent back matters. The order should be consistent with the way they are represented in the Game-manager or where ever the backend keeps track of the user's array

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.