Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/aslakhellesoy/poker

Cucumber training for Ruby, Java and C# (Cucumber, Cuke4Duke and Cuke4Nuke)
https://github.com/aslakhellesoy/poker

Last synced: about 1 month ago
JSON representation

Cucumber training for Ruby, Java and C# (Cucumber, Cuke4Duke and Cuke4Nuke)

Awesome Lists containing this project

README

        

h1. Poker

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":http://en.wikipedia.org/wiki/Texas_Hold_%27em. Hver hånd rangeres som beskrevet i "List of poker hands":http://en.wikipedia.org/wiki/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.

h2. Oppgave

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":http://spreadsheets.google.com/ccc?key=tKO1nDxmQGghjhyTUce8uIA Google Documentet. Det er en tilpasset versjon av regnearket som beskrives i
"denne artikkelen":http://open.bekk.no/2009/11/03/cumulative-flow-diagrams-with-google-spreadsheets/

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.

h2. Kode

Prosjektet er satt opp for å fungere med "vanlig" Cucumber (Ruby), Cuke4Duke (Java) og Cuke4Duke (C#).

h3. Installer Ruby (ikke nødvendig for Java)

* 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

h3. Ruby

h4. Forberedelser

Fjerne features/step_definitions/cucumber.wire
Fjerne evt annet ikke-ruby.


gem install cucumber rspec

h4. Kjøre Cucumber


rake

h3. Java

h4. Forberedelser

Fjerne evt annet ikke-java.


mvn integration-test -Dcucumber.installGems=true

h4. Kjøre Cucumber


mvn integration-test

h3. C#

h4. Forberedelser

Fjerne features/step_definitions/game_steps.rb
Fjerne evt annet ikke-.net.

Farger: http://github.com/aslakhellesoy/wac


gem install cuke4nuke win32console

h4. Kjøre Cucumber

Bygg løsningen i Visual Studio


cuke4nuke bin\Release\Poker.dll -c features | wac

Se også "Gojko Adzic sin Cuke4Nuke tutorial":http://gojko.net/2010/01/01/bdd-in-net-with-cucumber-cuke4nuke-and-teamcity/

h2. Problemer

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.