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 dette Google Documentet. Det er en tilpasset versjon av regnearket som beskrives i
denne artikkelen
Bruk IRC til å dele lenken til CFD diagrammet du har opprettet for ditt team:
http://webchat.freenode.net/?channels=reykjavik2010
Lag en enkel “tavle” på bordet eller veggen med 4 kolonner: “Backlog”, “Under utvikling”, “Klar til godkjenning”, “Godkjent”.
Stasjonene “Under utvikling” og “Klar til godkjenning” har hver en WIP-limit på antall par.
Bruk Cucumber til å beskrive forventet oppførsel til spillet. Ved behov kan man også bruke NUnit, JUnit,
RSpec eller Test::Unit (for enhetstester).
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.
Farger: http://github.com/aslakhellesoy/wac
gem install cuke4nuke win32console
Bygg løsningen i Visual Studio
cuke4nuke bin\Release\Poker.dll -c features | wac
Se også Gojko Adzic sin Cuke4Nuke tutorial
Hvis du finner feil i Cucumber, Cuke4Nuke eller Cuke4Duke – vennligst registrer en feil i de respektive trackere:
- https://rspec.lighthouseapp.com/projects/16211-cucumber/overview
- http://github.com/richardlawrence/Cuke4Nuke/issues
- http://github.com/aslakhellesoy/cuke4duke/issues
Generelle spørsmål kan stilles på mailing lista eller IRC. See http://cukes.info for detaljer.