Coder Social home page Coder Social logo

ted_lasso_2103's Introduction

Ted Lasso

Instructions

  • Fork this Repository
  • Clone your forked repo to your computer.
  • Complete the activity below.
  • Push your solution to your forked repo
  • Submit a pull request from your repository to this repository
  • Put your name in your PR!

Iteration 1

Use TDD to create a Player class that responds to the following interaction pattern:

pry(main)> require './lib/player'
# => true

pry(main)> roy = Player.new({name: "Roy Kent", position: "Center Midfielder", salary: 1_000_000})
# => #<Player:0x00007f98a4ba8dc8...>

pry(main)> roy.name
# => "Roy Kent"

pry(main)> roy.position
# => "Center Midfielder"

pry(main)> roy.salary
# => 1000000

Iteration 2

Use TDD to create a Team class that responds to the following interaction pattern:

  • The team captain is the highest paid player.
pry(main)> require './lib/player'
# => true

pry(main)> require './lib/team'
# => true

pry(main)> roy = Player.new({name: "Roy Kent", position: "Center Midfielder" , salary: 1_000_000})
# => #<Player:0x00007f98a4ba8dc8...>

pry(main)> sam = Player.new({name: "Sam Obisanya", position: "Right-back Defender", salary: 600_000})
# => #<Player:0x00007f8327213de0...>

pry(main)> richmond = Team.new("AFC Richmond", "Ted Lasso", [roy, sam])
# => #<Team:0x00007f83280b3288...>

pry(main)> richmond.name
# => "AFC Richmond"

pry(main)> richmond.coach
# => "Ted Lasso"

pry(main)> richmond.players
# => [#<Player:0x00007f8327213de0...>, #<Player:0x00007f8326ab57d8...>]

pry(main)> richmond.total_salary
# => 1600000

pry(main)> richmond.captain
# => "Roy Kent"

pry(main)> richmond.positions_filled
# => ["Center Midfielder", "Right-back Defender"]

Iteration 3

Use TDD to create a League class that responds to the following interaction pattern.

pry(main)> require './lib/league'
# => true

pry(main)> require './lib/team'
# => true

pry(main)> require './lib/player'
# => true

pry(main)> premier = League.new("Premier League")
# => #<Network:0x00007fe5f83ea3b0...>

pry(main)> premier.name
# => "Premier League"

pry(main)> premier.teams
# => []

pry(main)> roy = Player.new({name: "Roy Kent", position: "Center Midfielder" , salary: 1_000_000})
# => #<Player:0x00007f98a4ba8dc8...>

pry(main)> sam = Player.new({name: "Sam Obisanya", position: "Right-back Defender", salary: 600_000})
# => #<Player:0x00007f8327213de0...>

pry(main)> richmond = Team.new("AFC Richmond", "Ted Lasso", [roy, sam])
# => #<Team:0x00007f83280b3288...>

pry(main)> jamie = Player.new({name: "Jamie Tartt", position: "Striker", salary: 1_500_000})
# => #<Player:0x00007fe5f832bb18...>

pry(main)> fernandinho = Player.new({name: "Fernandinho", position: "Midfielder", salary: 5_200_000})
# => #<Player:0x00007fe5f8172a60...>

pry(main)> manchester = Team.new("Manchester City FC", "Pep Guardiola", [jamie, fernandinho])
# => #<Team:0x00007fe5f88b0a20...>

pry(main)> premier.add_team(richmond)

pry(main)> premier.add_team(manchester)

pry(main)> premier.teams
# => [#<Team:0x00007f83280b3288...>,#<Team:0x00007fe5f88b0a20...>]

pry(main)> premier.captains
# => [#<Player:0x00007f98a4ba8dc8...>,#<Player:0x00007fe5f8172a60...>]

pry(main)> premier.players_by_team
# => {
      #<Team:0x00007f83280b3288...> => ["Roy Kent", "Sam Obisanya"],
      #<Team:0x00007fe5f88b0a20...> => ["Jamie Tartt", "Fernandinho"]
#    }

Iteration 4

Use TDD to update your League class so that it responds to the following interaction pattern.

  • most_expensive_player will return multiple names if there is a tie.
  • players_by_salary_range is inclusive, so a player making 1_000_000 would get included in Over 1M. This method should be a general one and be able to handle any salary.
pry(main)> require './lib/league'
# => true

pry(main)> require './lib/team'
# => true

pry(main)> require './lib/player'
# => true

pry(main)> roy = Player.new({name: "Roy Kent", position: "Center Midfielder" , salary: 1_000_000})
# => #<Player:0x00007f98a4ba8dc8...>

pry(main)> sam = Player.new({name: "Sam Obisanya", position: "Right-back Defender", salary: 600_000})
# => #<Player:0x00007f8327213de0...>

pry(main)> richmond = Team.new("AFC Richmond", "Ted Lasso", [roy, sam])
# => #<Team:0x00007f83280b3288...>

pry(main)> jamie = Player.new({name: "Jamie Tartt", position: "Striker", salary: 1_500_000})
# => #<Player:0x00007fe5f832bb18...>

pry(main)> fernandinho = Player.new({name: "Fernandinho", position: "Midfielder", salary: 5_200_000})
# => #<Player:0x00007fe5f8172a60...>

pry(main)> manchester = Team.new("Manchester City FC", "Pep Guardiola", [jamie, fernandinho])
# => #<Team:0x00007fe5f88b0a20...>

pry(main)> premier.add_team(richmond)

pry(main)> premier.add_team(manchester)


pry(main)> premier.most_expensive_player
# => ["Fernandinho"]

pry(main)> premier.players_by_salary_range
# => {
#      "Over 0M" => ["Sam Obisanya"],
#      "Over 1M" => ["Roy Kent", "Jamie Tartt"],
#      "Over 2M" => [],
#      "Over 3M" => [],
#      "Over 4M" => [],
#      "Over 5M" => ["Fernandinho"],
#    }

```_

ted_lasso_2103's People

Contributors

noahzinter avatar mikedao 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.