Giter VIP home page Giter VIP logo

codingdojotheevnt's Introduction

Kata - Coding Dojo

Objectives

The focus is to practice writing the best code we can possibly write and challenge ourselves. It is important to mention that the goal is not to finish the exercise as soon as posible, but to learn during the process via the discussion with our partner.

Requirements

Each developer must come with their favourite IDE ready to start practicing TDD, ideally with an empty class or function and its associated test prepared to be launched.

Rules

  • Developers should work in pairs.
  • As a rule, Test-Driven Development is mandatory. If you are unaware of this procedure, please try to pair with someone who does.
  • We will run a small retrospective at the end of the session where we will discuss what difficulties we found, what we have done and what we have learnt.
  • Developers would thank their pairs when the session is over.

What you should NOT expect from this dojo session

  • It's neither a master class nor a workshop, but you will learn new approaches to face problems from different perspectives.
  • It's not a place to learn new languages. At least, one of the pair should be comfortable with the chosen programming language.
  • It's not a place to learn how to set up an environment.

How to start

  1. Find a pair.
  2. Decide which programming language you are going to use and in which laptop you will code.
  3. Read carefully the problem described below and if you have any doubt, please refer to the facilitator.

Kata Potter

Before you start:

  • Do one task at a time. The trick is to learn to work incrementally.

Kata Potter

Thanks to Emmanuel Gaillot, who designed this Kata.

Once upon a time there was a series of 5 books about a very English hero called Harry. (At least when this Kata was invented, there were only 5. Since then they have multiplied) Children all over the world thought he was fantastic, and, of course, so did the publisher. So in a gesture of immense generosity to mankind, (and to increase sales) they set up the following pricing model to take advantage of Harry’s magical powers.

One copy of any of the five books costs 8 EUR. If, however, you buy two different books from the series, you get a 5% discount on those two books. If you buy 3 different books, you get a 10% discount. With 4 different books, you get a 20% discount. If you go the whole hog, and buy all 5, you get a huge 25% discount.

Note that if you buy, say, four books, of which 3 are different titles, you get a 10% discount on the 3 that form part of a set, but the fourth book still costs 8 EUR. Potter mania is sweeping the country and parents of teenagers everywhere are queueing up with shopping baskets overflow- ing with Potter books. Your mission is to write a piece of code to calculate the price of any conceivable shopping basket, giving as big a discount as possible.

Example:

How much does this basket of books cost?

  • 2 copies of the first book
  • 2 copies of the second book
  • 2 copies of the third book
  • 1 copy of the fourth book
  • 1 copy of the fifth book

Answer: 51.20 EUR

Keep calm and refactor on green! Have fun!

codingdojotheevnt's People

Contributors

eferro avatar guardiola31337 avatar mrodm avatar pedroduran avatar

Watchers

 avatar  avatar

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.