Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

studio_game_2021

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

studio_game_2021

  • 1.0.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source
Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

![Product Name Screen Shot][Screenshot of gameplay and test list]

This game is a project built following the Pragmatic Studio Ruby Course. I absolutely adored going through this course, because it was unlike other courses in that the main focus wasn't syntax, but how to build a principle-driven, object-oriented program that contains many of the skills we'd need to build real-world projects. The instructors purposefully created exercises to let us build a program using the skills they demonstrated by building a different program. This wasn't a copy and paste kind of course. This game was actually my second run-through, where I test-drove everything from the start based on the objectives only.

Skills I valued developing further with this project:

  • Test-driven development (50+ tests).
  • Using inheritance to model "is-a" relationships. For example, a clumsy player is a kind of player.
  • Using mixins (modules) to reuse behaviours that are common between classes, but should not be modeled with an inheritance relationship. A good tip was to look for 'able' behaviors in a class to extract, like 'playable', 'printable', 'taxable' etc.
  • Using a file block which lets you add in class usage examples that are only run when you run the class file specifically.
  • Overriding default methods (like sort, and renaming things so that they keep a specific format)

Things I struggled with:

  • Testing behaviour that uses blocks. I had a lightbulb moment when I realised I should test the behaviour performed inside the block on a single item. Testing the output of an entire block is like testing Ruby syntax works. Alternatively, test the before and after state of something that changes as a result of using a block. Cooool.
  • Puts. It felt wrong to use puts to show the output in the console. I'd like to learn how to seperate the view logic for a command-line project later.

Things I did to make it my own:

  • Wrote a lot more tests for my second run-through.
  • Noticed and extracted further 'able' behaviours into modules (like printing stats, formatting output and handling csv files).

Built With

Getting Started

To get a local copy up and running follow these steps:

Prerequisites

This is an example of how to list things you need to use the software and how to install them.

  • gem
npm install npm@latest -g

Installation

  1. Install the gem
gem install studio_game_2021

Usage

To play a game from the command-line, open a new command project and run the command-line script like so:

studio_game

Or, if you'd like to use the game as a library, here's an example of how to use it in irb. You can also check the bottom of each class or module file for further usage instructions

>> require 'studio_game/game'
=> true

>> game = StudioGame::Game.new("Knuckleheads")
=> #<StudioGame::Game:0x007fdea10252d8 @title="Knuckleheads", @players=[]>

>> player = StudioGame::Player.new("Moe", 90)
=> I'm Moe with health = 90, points = 0, and score = 90.

>> game.add_player(player)
=> [I'm Moe with health = 90, points = 0, and score = 90.]

>> game.play(1)

Roadmap

I plan to customize this game further now that I have a solid foundation to explore from. It'll be fun to let the players interact with each other more, like swapping treasures, and maybe add some kind of board game with it's own features. That's my next focus.

Contributing

Feel free to fork this project and play around with it. Open to feedback-related pr requests.

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Becca - @becca9941 - becca@essentialistdev.com

Project Link: https://gitlab.com/EssentialistDev/studio-game

Acknowledgements

FAQs

Package last updated on 05 May 2021

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc