- The application is fully playable, minus a button that lets you replay the game. Right now users just have to refresh to replay the game.
- No extensions.
- Our user interface looks baller, if we do say so ourselves.
- We took on the game without any idea of what it would entail and found it much more difficult than we expected.
- DomManager
- We put a great effort into refactoring, because our game class contained most of the logic for rendering the pattern, determining whether the level was over, scoring, moving on to the next level, and rendering the appropriate things on the DOM. We broke out the logic for rendering onto the DOM into a DOM manager to make things much more isolated and easier to debug down the line.
- Calculating Color Values
- This is a pretty long method that takes in many things and then makes variables from those things, which we're not a big fan of. It iterates through each block on the pattern and then checks if the block is either the user color, or one of the computer colors. Ideally this method would be flexible to iterate through any number of colors, thus getting rid of some repetition and making this more flexible. We just couldn't get this figured out in time.
Attach a screenshot or paste the output from your terminal of the result of your test-suite running.
Block
with default attributes
✓ should have an x value
✓ should have a y value
✓ should have a width value
✓ should have a height value
✓ should have a default shape value of false
✓ should have a default null child
✓ should have a default null parent
with given attributes
✓ should have an x value
with some attributes given
✓ should have an x value
can change a blocks color
✓ should have default grey
✓ should be blue if color is changed
knows its coordinates
✓ should return a single coordinates
✓ should return correct coordinates
knows if it contains coordinate
✓ should return true if it contains given coordinate
✓ should return false if not contained
can change the color of its neighbor block
✓ to its own color
Color Filler
has the correct attributes
✓ with a pattern
✓ with a current block
can handle connections
✓ by determining if a block is a connection
✓ by returning all the copies of a block for a given connection
Segment
has default attributes
✓ has a default length of zero
✓ has a default head position of 0,0
✓ has a default orientation of null
can create a new horizontal segment
✓ with one block
✓ with 2 blocks
can create a new vertical segment
✓ with one block
✓ with two blocks
can give all blocks in segment
✓ returns an array of blocks
Pattern
with default attributes
✓ has no segment data
✓ has no segments
takes in information to build segments
✓ and builds the segments
randomly places computer colors on the pattern
✓ changes the color of the selected computer blocks
32 passing (28ms)
- How Many Unit Tests? 24
- Integration Tests: 8
Provide a link to an example, if you have one, of a unit test that covers an 'edge case' or 'unhappy path'
Provide a link to an example, if you have one, of a feature test that covers an 'edge case' or 'unhappy path'
-1603
- Yes, our game is fully playable.
- We did not complete an extension.
- Linked List:
- Our whole structure was a massive linked list. It was complicated to work on but it turned out really well and the code is clean. We are proud of it.
- Code
- What risks did you feel you took on this project?
- The linked list was a risk that we took. Also, just working with JavaScript seems risky.
- How do you feel about those risks?
- We both feel like we learned a lot on this project in both JavaScript and logic. It was a succesful project.
- Code
- Why were you proud of this piece of code?
- Refactoring JavaScript was challenging and this file was a lot longer and now it is more dry.
- Code
- Why do you feel not awesome about the code? What challenges did you face trying to write/refactor it?
- We were not able to get the images to render but would like to continue to work on it.
Attach a screenshot or paste the output from your terminal of the result of your test-suite running.
- How Many Unit Tests? 5 test files, 51 assertions.
- How Many Feature/Integration Tests? 1 or
Provide a link to an example, if you have one, of a unit test that covers an 'edge case' or 'unhappy path'
- We do not really have any sad path testing.
Provide a link to an example, if you have one, of a feature test that covers an 'edge case' or 'unhappy path'
- N/A
Follow instructions in ReadMe to run
- Fully playable, more on the MVP side.
Varying Type of Zombies(Squares) with different behavior.
-
Follow Squares (Purple)
-
Flankers (Yellow)
-
Boomers (Big and Cyan)
Overall gameplay. Although we pivoted to more of a geomatry wars style game, the game turned out quite fun.
Follow and sawrming AI is probably one of the harder features we implemented and we feel it works very very well.
Java! We finished the project fully in Java with zero help from outside game or other libraries. We only used what we had access to via Java 8.
We learned much from this experience, especially the fundamentals of this language. We also had the benefit from having an outside user(Jake) reviewing the game and providing issues we had to fix. That was great real world experience. Through that, we learned a lot of best practices and how to structure our code better.
We like this code because the complexity but also the readability and how broken down the logic is.
This is how we calculate the path for the zombies.
We feel that this method is handling a bit too much. It figures out collision while figuring out where to go. Overall, I feel as if our collision detection is a bit repeated.
As a first time it was hard to grasp a lot of decoupling techniques that is utilized in Java. My first thought is that the repeating of collision detection could be taken out in it own class instead of being figured out in each object.
Attach a screenshot or paste the output from your terminal of the result of your test-suite running.
Unit Test: 12
Provide a link to an example, if you have one, of a unit test that covers an 'edge case' or 'unhappy path'
We had trouble figuring out a way for squares to swarm properly if they dont start on a 45 degree angle, this tests a random angle to make sure the it moves approriately.