Giter VIP home page Giter VIP logo

oregontrail's People

Contributors

brian-chalfant avatar kchevali avatar

Watchers

 avatar

oregontrail's Issues

Learn About The Trail

Description

This is one of the menu items before the start of the game. It provides game information, controls and tips.

Tutorial Pages

Page 1

Try taking a journey by covered wagon across 2000 miles of plains, rivers, and mountains. Try! On the plains, will you slosh your oxen through mud and water-filled ruts or will you plod through dust six inches deep?

Page 2

How will you cross the rivers? If you have money, you might take a ferry (if there is a ferry). Or, you can ford the river and hope you and your wagon aren't swallowed alive!

Page 3

What about supplies? Well, if you're low on food you can hunt. You might get a buffalo... you might. And there are bear in the mountains.

Page 4

At the Dalles, you can try navigating the Columbia River, but if running the rapids with a makeshift raft makes you queasy, better take the Barlow Road.

Page 5

If for some reason you don't survive -- your wagon burns or thieves steal your oxen, or you run out of provisions, or you die of cholera -- don't give up! Try again... and again... until your name is up with others on The Oregon Top Ten.

Page 6 - Control-S Key

You may turn the sound on or off during the program by pressing Control-S.

Page 7 - Esc key

You may want to quit in the middle of the program. If so, press the Escape (Esc) key twice whenever the computer is waiting for a response.

Page 8

The software team responsible for creation of this product includes
...

Rapids Mini-game

Description

At the Dalles, you have the option to navigate the Columbia River with the rapids mini-game. The wagon is placed on a raft and the player may move the raft left and right to avoid rocks and the river's edge. Pass 3 signs to reach the trail and complete the game.

Automatically Generate Enums

Description

Create a build script in python to generate the enum files from a json file.

Other

Convert ShopItem class to an enum.

End Game Point System

Description

The player earns a score if they successfully reach the end of the trail.

Point System Per Entity

  • People in good health: 500 pts
  • Wagon: 50 pts
  • Oxen: 4 pts
  • Spare wagon parts: 2 pts
  • Clothing: 2 pts
  • Ammo (50 bullets): 1 pt
  • Food (25lb): 1 pt
  • Money ($5): 1pt

Save Game

Description

The game state should be serializable and saved to file. If the player chooses to the quit the game then they should be prompted to save the game. If a game is saved and the player wants to start a game then the player should be prompted if they would like to continue their last save. A game save will overwrite a pre-existing saved game file. Completing the game successfully or not will delete any saved games.

River Crossing

Description

Implement the river crossing event. The success of the crossing is based on the factors and the option that the player chooses. A failed cross can lead to the death of the family members and loss of supplies.

Factors

  • Weather
  • River width
  • River depth

Menu

  1. Attempt to ford the river (High risk option)
  2. Caulk the wagon and float it across (Med risk option)
  3. Take a ferry across - NOT always available (Least risk option)
  4. Wait to see if conditions improve (Wait and change factors)
  5. Get more information

Handle Money as an Integer

Description

Money is currently represented as a floating point number. This is a minor issue that involves precision. Some fractions cannot be precisely represented as a float, so in general it is better to use integers. I am including more information in this link.

Solution

Use an integer to represent the number of cents and use some division / reminder to display the dollar and cents.

Example

$20.48 can be represented as 2048 cents. The dollar amount can be calculated by 2048 / 100 = 20 (integer division) and the remaining cent value can be calculated by 2048 % 100 = 48.

Bug Fixes

  • The calculation for the food price is incorrect. The food price formula should be: food_amount * 0.2 instead of found_amount + 0.2.

Shop Purchasing Bugs

Description

  • The player cannot continue the game if they go over budget. The game enters an infinite loop.
  • The player can enter negative values to earn infinite money.

Solution

  • The game should prevent the player from going over budget when they purchase an item they can't afford.
  • The game can also have a clear items option, where all of the pending purchases can be cleared.
  • Add some more user validation for the input.

In Game Menus

Description

Implement the different menus in game to allow the player to check their status and make decisions. This does not include the menu to start the game.

Common Menu

These are the starting items of all the menus below.

  1. Continue on trail
  2. Check supplies
  3. Look at map
  4. Change pace
  5. Change food rations
  6. Stop to rest
  7. Attempt to trade

Town / Fort Menu

These are the remaining items of the menu when the player is in town or in a fort.
8. Talk to people
9. Buy supplies

Trail Menu (Size up the situation option)

This is the remaining item in the menu when the player is on the trail.
8. Hunt for food

Other Landmark Menu

This is the remaining item in the menu when the player is at a landmark not shown above (rivers, chimney rock... etc.).
8. Talk to people

Weather

Description

Use real world geographic data to simulate the weather conditions in the game.

Tasks

  • Find US weather data per state / month
  • Write a script to group / filter the data by state and month to a csv.
  • Use the data to determine the temperature and weather conditions

Notes

  • Each milestone should be mapped to a state.
  • The date should be tracked throughout the journey.

Create Menu

Description

The start of the game should have a menu.

Starting Menu

  1. Travel the trail
  2. Learn about the trail
  3. See the Oregon Top Ten
  4. Turn sound off
  5. Choose Management Options
  6. End

Management Options

Submenu for Choose Management Options

  1. See the current Top Ten list
  2. See the original Top Ten list
  3. Erase the current Top Ten list
  4. Erase the tombstone messages
  5. Erase saved games
  6. Turn joystick on
  7. Calibrate joystick
  8. Return to the main menu

Limit Player Inventory

Description

Each item has a maximum number of items that they can have / purchase at a time.

Limits

  • Oxen: 20
  • Food: 2000
  • Clothing: (No limit)
  • Ammunition: (No limit)
  • Spare parts: 9 (3 each)

Separate Game Values from the Source Code

Description

All of the game values (occupation salaries, shop prices, number of oxen per yoke, random probabilities...etc) should not be hardcoded. Move the values to a json file.

Remove Code Duplication

Description

There are some sections of code that are duplicated and can be wrapped in a method / loop.

Tasks

  • Multiple Scanner/BufferedReader objects are created
  • Shop purchases
  • Create family members

Health

Add entity health to the player, family members and the oxen. The distance that the oxen can travel per day is determined by their health. The entity dies once their health is equal to or less than zero.

Assuming that the player can up to 6 oxen and each oxen has 100 max health, I created this table to estimate how far the player can travel based on the summed health of all the oxen.

Oxen Total Health Low Pace Med Pace Fast Pace
100 3 6 9
200 7 14 21
300 9 18 27
400 10 20 30
500 11 22 33
600 12 24 36

With the table, I created a best fit line that estimates these points:

distance = 5 * ln(oxen_health) - 19

Command Line Client

Description

Integrate the game into the server - client model. The server should contain the core logic of the game and the client should display the game state in the command line without a GUI. The mini-games are either not available or modified to be supported in the command line.

The Trail Event System

Description

Each day on the trail random events may occur based on the state of the characters and weather

Game Events

Storms

  • Blizzard
  • Heavy fog

Disease

  • Typhoid
  • Dysentery
  • Measles
  • Fever
  • Broken leg
  • Chloera
  • Character death
  • Character exhaustion
  • Snakebite
  • Oxen injured

Supply Event

  • Wild fruit
  • Thief steals supplies
  • Oxen death
  • Broken wagon part
  • Oxen wanders off

Other Environment

  • Bad water
  • Very little water
  • Inadequate grass
  • Gravesite visit

Bad Trail

  • Wrong trail
  • Impassable trail
  • Character is lost
  • Rough trail

Game Music

The game has an 8 bit version song of Yankee Doodle.

Daily Game Loop

Daily Game Loop

Goals

  • Each Day the game should travel a specified range of miles based on a pace setting
  • Each Day the game should display the date/month
  • Each Day the game should display the weather commensurate with the month.
  • Each Day the game should display how many total miles the player has traveled
  • Each Day the game should display the name and how many miles left until the next Destination
  • Each Day the game should deduct a range of food supplies based on food rationing setting

Each Day the user should have options:

  • Continue on the Trail
  • Check Supplies
  • Change Pace
  • Change Food Rations
  • Stop to Rest

Landmark Linked List

Landmarked Linked List
Goals

  • List of Landmark Objects (Not necessarily a Linked List Object)
  • Each Landmark object must have an Identifier and the Identifier of next Node(s)
  • Each Landmark object must know what the distance is to the next node(s).
  • Each Landmark should have unique sayings from either Locals or Traveling Companions

Clear the Screen After Input

Description

It is difficult to read a long block of text in the command line. At least for now, add 20-50 new lines to clear the screen after the user enters their input.

Hunting Mini-game

Description

One of the options during a trail is to go hunting. The objective of the game is to use ammo to obtain food. Different animals appear on the screen and the player may navigate the scene and aim at 8 different directions (horizontal, vertical and diagonal) to hit an animal with each shot. Each animal is worth different pounds of food. Each shot consumes one bullet. There is a 100 pound limit that may collected at the end of the game.

Create an Echo Back Server

Description

Create a simple client that accepts user input and sends it to the server. The server receives the client's message and sends it back.

The Oregon Top Ten

Description

Implement a high score system to track the score of the previous games if the player successfully completes the trail. The high score should have default scores for the player to strive for, which should be stored in a JSON file. The player high score values should also be stored in a file for persistence. Each record contains the name, score, and rating.

Original Top Ten list

  • Stephen Meek - 7650 pts (Trail guide)
  • Celinda Hines - 5694 pts (Adventurer)
  • Andrew Sublette - 4138 pts (Adventurer)
  • David Hastings - 2945 pts (Greenhorn)
  • Kevin Kriebel - 2152 pts (Greenhorn)
  • Ezra Meeker - 2052 pts (Greenhorn)
  • William Vaughn - 1401 pts (Greenhorn)
  • Kevin Kriebel - 1135 pts (Greenhorn)
  • Mary Bartlett - 937 pts (Greenhorn)
  • Elijah White - 250 (Greenhorn)

GUI Client

Description

Create a GUI client that renders the server output in a window. This client can play all of the mini games.

Notes

The maximum amount of the game logic should be off loaded to the server. However, some of the mini-game logic may be on the client side if and only if there is a performance issue that requires it.

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.