Skip to content

ditramadia/bnmo-cooking-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tubes Alstrukdat 1

About

Tubes 1 of Algorithm and Data Structure (IF2110). A cooking simulator CLI based game made in C.

Contributors (Group D)

  • 13521001 Angger Ilham Amanullah
  • 13521005 Kelvin Rayhan Alkarim
  • 13521010 Muhamad Salman Hakim Alfarisi
  • 13521019 Ditra Rizqa Amadia
  • 13521023 Kenny Benaya Nathan
  • 13521031 Fahrian Afdholi

Game Features

  • Configuration
    • Custom configuration file for splash screen, map, foods, and recipe.
  • Simulator
    • Map visualization based on map configuration
    • Player movement based on input
    • Player inventory
    • Time mechanism
    • Food expiration
  • Buy Foods
    • Buy foods from the shop
    • Delivery mechanism
  • Chop Foods
    • Chop foods from inventory
  • Mix Foods
    • Mix foods from inventory
  • Fry Foods
    • Fry foods from inventory
  • Boil Foods
    • Boil foods from inventory
  • Utility
    • Undo and redo
    • Wait to skip time
    • Foods catalog
    • Show recipe

How to Play

  • Configuration
    • Create your own map by editing /config/map.txt
      #: Empty space
      X: Wall
      S: Player
      T: Telephone
      C: Chopping area
      M: Mixing area
      F: Frying area
      B: Boiling area
    • Create your own lists of foods by editing /config/foods.txt
    • Create your own recipe by editing /config/recipe.txt
  • Commands
    • MOVE NORTH
      Move up.
    • MOVE EAST
      Move right.
    • MOVE SOUTH
      Move down.
    • MOVE WEST
      Move left.
    • WAIT X Y
      Wait X hour and Y minute, used to skip time without doing anything.
    • BUY
      Buy foods from the shop. The delivery time is vary. You can use WAIT X Y to skip delivery time. Only available if player's position is adjacent to telephone T.
    • CHOP
      Chop foods from inventory. Only available if player's position is adjacent to chopping area C.
    • MIX
      Mix foods from inventory. Only available if player's position is adjacent to mixing area M.
    • FRY
      Fry foods from inventory. Only available if player's position is adjacent to frying area F.
    • BOIL
      Boil foods from inventory. Only available if player's position is adjacent to boiling area B.
    • UNDO
      Undo
    • Redo
      Redo
    • EXIT
      Exit game

Project Structure

.
├── config --------------------------------------- Configuration folder
│   ├── config.h
│   ├── konfigResep.txt
│   ├── makanan.txt
│   ├── map.txt
│   └── welcome.txt
├── src ------------------------------------------ Folder containing source files
│   ├── adt -------------------------------------- Data Types
│   │   ├── arrayChar ---------------------------- Array of Character
│   │   │   ├── arrayChar.c
│   │   │   └── arrayChar.h
│   │   ├── boolean ------------------------------ Boolean
│   │   │   └── boolean.h
│   │   ├── charmachine -------------------------- Character Machine
│   │   │   ├── charMachine.c
│   │   │   └── charMachine.h
│   │   ├── charmachinefood ---------------------- Char Machine of Food 
│   │   │   ├── charMachine.c
│   │   │   └── charMachine.h
│   │   ├── charmachineresep --------------------- Char Machine of Recipe
│   │   │   ├── charMachine.c
│   │   │   └── charMachine.h
│   │   ├── delivery ----------------------------- Delivery
│   │   │   ├── delivery.c
│   │   │   └── delivery.c
│   │   ├── food --------------------------------- Character Machine
│   │   │   ├── food.c
│   │   │   └── food.h
│   │   ├── gameState ---------------------------- Game State
│   │   │   ├── gameState.c
│   │   │   └── gameState.h
│   │   ├── inventory --------------------------- Inventory
│   │   │   ├── inventory.c
│   │   │   │── inventory.h
│   │   ├── listdin ------------------------------ Dynamic List
│   │   │   ├── listdin.c
│   │   │   └── listdin.h
│   │   ├── liststatik --------------------------- Static List
│   │   │   ├── liststatik.c
│   │   │   └── liststatik.h
│   │   ├── map ---------------------------------- Map
│   │   │   └── map.c
│   │   ├── matrix ------------------------------- Matrix
│   │   │   ├── matrix.c
│   │   │   └── matrix.h
│   │   ├── matrixChar --------------------------- Matrix of Character
│   │   │   ├── matrixChar.c
│   │   │   └── matrixChar.h
│   │   ├── point -------------------------------- Point
│   │   │   ├── point.c
│   │   │   └── point.h
│   │   ├── queuelinked -------------------------- Queue Linked
│   │   │   ├── queuelinked.c
│   │   │   └── queuelinked.h
│   │   ├── stack -------------------------------- Stack
│   │   │   ├── stack.c
│   │   │   └── stack.h
│   │   ├── stackState --------------------------- Stack of Game State
│   │   │   ├── stackState.c
│   │   │   └── stackState.h
│   │   ├── string ------------------------------- String
│   │   │   ├── string.c
│   │   │   └── string.h
│   │   ├── time --------------------------------- Time
│   │   │   ├── time.c
│   │   │   └── time.h
│   │   ├── tree --------------------------------- Tree
│   │   │   ├── tree.c
│   │   │   └── tree.h
│   │   ├── wordmachine -------------------------- Word Machine
│   │   │   ├── wordmachine.c
│   │   │   └── wordmachine.h
│   │   ├── wordmachinefood ---------------------- Word Machine of Food
│   │   │   ├── wordmachine.c
│   │   │   └── wordmachine.h
│   │   └── wordmachineresep --------------------- Word Machine of Recipe
│   │       ├── wordmachine.c
│   │       └── wordmachine.h
│   └── app -------------------------------------- Applications
│       ├── Inisiasi ----------------------------- Main Menu App
│       │   └── splashScreen.c
│       ├── boil --------------------------------- Boil App
│       │   └── boil.c
│       ├── buy ---------------------------------- Buy App
│       │   └── buy.c
│       ├── catalog ------------------------------ Catalog App
│       │   └── catalog.c
│       ├── chop --------------------------------- Chop App
│       │   └── chop.c
│       ├── fry ---------------------------------- Fry App
│       │   └── fry.c
│       ├── mix ---------------------------------- Mix App
│       │   └── mix.c
│       ├── notifikasi --------------------------- Notifikasi App
│       │   └── notifikasi.c
│       └── simulator ---------------------------- Simulator App
│           └── simulator.c
├── BNMO Cooking Simulator.exe ------------------- Main Program
└── README.md

Local Setup

  1. Clone this repository
  2. Edit configuration file (optional) in /config/*
  3. Run BNMO Cooking Simulator.exe

Technology Used

  • C