Code Monkey home page Code Monkey logo

helios's Introduction

H * E * L * I * O S

A Game Project, 02/02/18

Andy Grossberg

With Dalia Ramos, Michael Albers, Kimberly Huynh, and Logan Tanous

DESCRIPTION

This is the Team Project for Week Five of Intro to Programming at Epicodus

LOCATION

_You can find the files at https://www.github.com/agro23/Helios

Comms Hacking Module:

RULES:

A large part of this game will revolve around interaction with Objects, primarily terminals and also Non-player Characters. Players will "hack" terminals to solve a puzzle or answer questions or enter a key sequence. If they are correct this function will pass true so the game knows to transition.

When interacting with NPCs, the player will see a picture of the character standing in front of a computer (or some variant) and an open window looking like a terminal of some sort that is expecting input.

The character will input keystrokes in response to prompts on screen

The game will respond to input based on context

Possible terminal prompt types:

Color code bar:

  • A sequence (string?) of 5 color squares and 5 blank squares under them. Underneath that are 4 color blocks (Red, Blue, Green, and Yellow) with numbers under them (1 - 4). SAMPLE INPUT: a sequence of digits SAMPLE OUTPUT: the corresponding color block of the digit pressed appears in each empty block.

Question:

  • A question with three possible answer choices under it. What is the password for Level 10?
    1. Cheesewiz; 2) Banana; 3) QWERTY SAMPLE INPUT: 1 SAMPLE OUTPUT: SCREEN TURNS RED AND FLASHES A WARNING

Alphanumeric Sequence:

  • A 3 x 3 grid of alphanumeric characters SAMPLE INPUT: (A click on a grid char or keyboard input of the character) SAMPLE OUTPUT: SCREEN TURNS GREEN AND FADES INTO NEXT GAME LEVEL

METHODOLOGY

I chose to spread the three terminal types and the NPC holder onto four separate adjacent divs that were set to Display: None; where each was turned on as needed. _If there was time they would have been positionable via X Y coordinates using Absolute positioning.

IMPLEMENTATION SPECS

  • Clear screen to terminal screen

  • Make Terminal object {status, name, building location Number, building location room Number, room location X, room location Y, type, question array, answer array, success, failure}

    • Status (checked first when player enters a room with this terminal) "Unlocked" or "Locked" for a door, "Unsolved" or "Solved" for the other puzzles, "Alarm" if the alarm is triggered, "Deactivated" if it's turned off, and "Destroyed" if it's been damaged.
    • Questions array contains the color sequence, OR a question and possible answers, OR the digit sequence to be written to the keypad
    • Answer array contains the correct color sequence in letters, OR the correct answer, OR the correct digit sequence
    • Success contains the result if you succeed: 'Open' toggles the Status to Unlocked, 'Solved' to toggle a terminal to solved, '[sentence]' is a sequence of text that you get if you answer the questions correctly.
    • Failure contains what happens if you don't answer right: 'Nothing' means nothing happens, 'Alarm-5' means you get 5 tries before the status changes to Alarm, 'Locked' means the status changes to Locked
  • Prompt user for any answer ("What is the answer?")

    • EXAMPLE INPUT: 43
    • EXAMPLE OUTPUT: Correct!
  • Prompt a color sequence question based on the terminal prompt type from the object.

    • EXAMPLE PROMPT: R G B Y B
    • EXAMPLE INPUT: R G B B B
    • EXAMPLE OUTPUT: INCORRECT!
  • Prompt a text question and the answer numbers based on the terminal prompt type from the object.

    • EXAMPLE PROMPT: What is the entry code written in the Programming Office?
        1. Cheesewiz
        1. Banana
        1. QWERTY
    • EXAMPLE INPUT: 1
    • EXAMPLE OUTPUT: CORRECT!
  • Prompt a keypad question based on the terminal prompt type from the object.

    • EXAMPLE PROMPT: 1 2 3 / 4 5 6 / 7 8 9
    • EXAMPLE INPUT: 2345
    • EXAMPLE OUTPUT: INCORRECT!
  • Enable check for correct answers

  • create verifyAnswer method to check the answer

    • usage: myPrompt.verifyAnswer(x) where myPrompt is the terminal object and x is an array of answers.
  • Display question in HTML panel (but still prompt)

  • Display possible answers in HTML panel

  • Alert actual Success or Failure result

  • Check for clicks on keypad for doorcode answer

  • Check for KB input to get answer for question <--

  • Check for clicks on color bar for color question answer

  • Add DIV for Talking to Person

  • Convert Question code to handle it.

  • Create looping mechansim to go through entire conversation tree with person.

  • Capture keyboard input for navigation

  • Work out entry and exit conditions

  • Refactor code

NEEDS UNDONE:

  • We did not yet come up with a completely adequate Game Loop. Each module had to be clear about what event listeners were on or off so as to not trigger other parts that were not visible but still 'running' in their respective div.

SETUP/INSTALLATION REQUIEMENTS

  • Download the files from the repository into appropriately named directories.
  • Open the files with the browser of your choice.

KNOWN BUGS

When looping through NPC responses, the array index of one of the question levels is fence-posting so it gives an answer from the question before it.

SUPPORT AND CONTACT DETAILS

You can contact us via [email protected]

Technologies Used

Uses HTML, CSS, javascript, and jQuery.

License

Distributed under the GPL

Copyright (c) 2018 The Helios Team

helios's People

Contributors

agro23 avatar

Watchers

James Cloos avatar  avatar

Forkers

logmannn

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.