Coder Social home page Coder Social logo

jumpin's Introduction

JumpIn

Jumpin is a single player puzzle game in which the goal is to get all the rabbits into the holes by jumping over obstacles.

Playing the Game

  • open the terminal
  • navigate to the local path where the JumpIn.jar file is stored
  • type the following line into the terminal
java -jar JumpIn.jar

Deliverables

Included in this .zip file are the following

Code:

  • JumpIn.jar: The executable file of the game JumpIn, allowing the user to play one preconfigured puzzle.
  • Source Code: The code behind JumpIn.exe consisting of ten(10) Java Object classes and two(2) Java Interface Class written in Java Version 1.8
  • Design Patterns that were used: MVC & Observer Pattern
  • Libraries: Java.Swing

Documentation:

  • JavaDoc: Included within each .java file is JavaDoc explaining the functionality of each class and method
  • JumpIn.png: The UML diagram used during creation of the game, allowing for planning and visualization of how the objects would interact
  • DesignDecisions.pdf:A pdf explaining the reasoning behind certain decisions made when creating the game such as why certain data structures and data types were used
  • UserManual.pdf: A pdf which goes deeper into the premise of the game as well as explaining how to play the game and includes a legend explaining the meaning of the symbols on the board
  • JumpInSD.png: A png containing the sequence diagram of how the game is played

Known Issues

Milestone 2

  • Code smells with the update(JumpInModel model) method in JumpInView
  • Could not satisfy the requirements for test cases in this iteration

Milestone 3

  • if moving a fox in a certain way after undoing, the fox head gets duplicated. works if only moving a fox one space.
  • the solver() method inside JumpInSolver could not pass the test

Milestone 4

  • the solver() method inside JumpInSolver could not pass the test

Changelog

Milestone 1

  • First version of this project
  • Created object classes for the following: Board, EmptySpace, FoxPart, Hole,JumpIn, Mushroom, Rabbit and Space
  • Created interface class for Moveable Spaces
  • UML Created for JumpIn project
  • User Manual written to explain the game

Milestone 2

  • Created first version of the GUI for JumpIn
  • Implemented MVC to handle events to separate input logic, infrastructure logic, and UI logic
  • Implemented Observer Pattern with the View interface so that the model can update multiple views (which will be used for the final milestone)
  • Updated UML with JumpInView and JumpInController which are classes used for the MVC architecture
  • Refactored JumpInModel so that the input logic is handled with JumpInController and the game (infrastructure) logic is handled in JumpInModel

Milestone 3

  • Moved the logic from the controller to the model by having a takeTurn method which handles the turn in the model instead of the controller
  • We made the canRabbitMove and canFoxMove and moveFoxParts to be public since the solver will need to access those variables
  • Can redo and undo moves that were made earlier during the game by clicking the "undo" and "redo" button
  • Created a class called JumpInSolver which solves the game for JumpIn using DFS
  • Can click the "hint" button and gives hints how to solve the game

Milestone 4

  • Created a LevelEditorView class to represent the View when you start the game and build or load a level
  • Fixed undo and redoing of Fox
  • Fixed Rabbit jumping out of Hole issue
  • Packaged Board and all the Space classes and it's child classes together including the MoveableSpace Interface into JumpInSpaces since they are related classes and the board behaves like an API

Contributors

Group: I hate C

Nick Coutts, Rafid Dewan, Lazar Milojevic, Benjamin Ransom

Written by: Benjamin Ransom Written by: Rafid Dewan (November 4, 2019) Written by: Rafid Dewan & Nick Coutts (November 18, 2019) Written by: Rafid Dewan (December 2, 2019)

jumpin's People

Contributors

rafiddewan avatar nickcoutts99 avatar lazarmilojevic avatar brnjamino avatar lazarmilojevic2 avatar

Watchers

 avatar

jumpin's Issues

[Bug] Filling a hole in game and going back to builder keeps the closed hole if not reset

Steps to reproduce:

  1. Build a level where rabbits can jump into holes
  2. Play the level, put rabbits in holes
  3. Press the Build button
  4. When prompted to reset, click no
  5. Click on any button labeled 'CH'

Reproduction rate: 100%

Potential fix:
Disable reset popup when going from gameview to buildview.

Additional options:
Different popup when going from game to builder, like "Are you sure?" and resets automatically on yes.

[Bug] Selecting a build piece and hitting play assumes moving piece

Description:
Selecting a piece to place in build mode then clicking the Play button takes the user to the game view, but prompts the user to "Choose a space to move to" instead of "Choose a piece to move".

Expected result:
Selected piece is voided and game starts as normal.

Steps to reproduce:

  1. Select any piece in the builder
  2. Click the 'Play' button

Reproduction rate: 100%

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.