Du jobber for en TV stasjon som sender programmet “Kjendispoker”. Kjendiser kommer i studio og spiller poker,
og en annen kjendis er vert. Selv om vertene som regel er pene er de ikke alltid like smarte, og hver runde må
avgjøres rast. Derfor her Kjendispoker behov for en automat som kan avgjøre hvem som vinner hver runde.
Spillerne spiller med ekte kort. Det finnes kameraer i studio som kan se alle spillernes kort, og tanken er at
en operatør skal sitte og skrive inn kortene som hver spiller sitter med på hånden inn i et program. Programmet
skal kunne avgjøre hvilken av spillerne som har den beste hånden ved en “showdown”, og vise både navnet på kombinasjonen
og navnet på vinneren på en skjerm som verten kan se.
Det finnes mange forskjellige varianter av poker, men på Kjendispoker spilles det alltid Texas Hold’em. Hver hånd rangeres som beskrevet i List of poker hands. Siden det spilles Texas Hold’em må operatøren
også kunne skrive inn kortene som ligger på bordet.
Det brukes ikke jokere i spillet.
Lag en liste over all funksjonalitet som skal utvikles og del dette opp i mindre oppgaver slik at oppgavene
kan fordeles i et team. For å vise framdrift i prosjektet skal det hver time plottes inn framdrift i et CFD
diagram. Et CFD diagram kan lages ved å kopiere følgende Google Documentet som er lenket til fra
denne artikkelen
Lag en enkel “tavle” med 4 kolonner: “Backlog”, “Under utvikling”, “Klar til godkjenning”, “Godkjent”.
Stasjonene “Under utvikling” og “Klar til godkjenning” har hver en initiell WIP-limit på 2 og 2.
Bruk Cucumber til å beskrive forventet oppførsel til spillet. Ved behov kan man også bruke NUnit, JUnit,
RSpec eller .NET.
Utvikling skal skje i par, og det skal benyttes “ping pong” programmering. Dvs person 1 skriver et scenario
(evt enhetstest), person 2 gjør den grønn så enkelt som mulig. Person 2 skriver et scenario osv. Når man mener
en oppgave er ferdig må man få godkjenning fra produkteier.
Prosjektet er satt opp for å fungere med “vanlig” Cucumber (Ruby), Cuke4Duke (Java) og Cuke4Duke (C#).
- Mac: (Ruby er allerede installert) – evt http://rvm.beginrescueend.com/
- Windows: http://rubyforge.org/frs/?group_id=167&release_id=41267 (ruby186-27_rc2.exe – European keyboard)
- Linux: apt-get install ruby
Fjerne features/step_definitions/cucumber.wire
Fjerne evt annet ikke-ruby.
gem install cucumber rspec
rake
Fjerne evt annet ikke-java.
mvn integration-test -Dcucumber.installGems=true
mvn integration-test
Fjerne features/step_definitions/game_steps.rb
Fjerne evt annet ikke-.net.
gem install cuke4nuke win32console
Bygg løsningen i Visual Studio
cuke4nuke bin\Release\Poker.dll -c features | wac