Kata Minesweeper con CRC

12 views
Skip to first unread message

Alex Gotev

unread,
Feb 16, 2012, 6:27:08 PM2/16/12
to novar...@googlegroups.com
Un piccolo riassunto della serata:
  • Il Kata scelto è Minesweeper (Campo minato)
  • Abbiamo dedicato un pomodoro di tempo alla soluzione CRC del problema e ci siamo riusciti individuando 3 classi: Gioco, Campo e Cella
  • Siccome eravamo dispari, io sono rimasto in gruppo con me stesso xD e abbiamo avuto 3 pomodori di tempo per risolvere il problema
  • Alla fine dei 3 pomodori siamo riusciti a risolvere il problema
 In allegato c'è lo ZIP col progetto Eclipse della mia soluzione.

Alex
Minesweeper.zip

Alex Gotev

unread,
Feb 16, 2012, 7:11:32 PM2/16/12
to novar...@googlegroups.com
Un Kata per la prossima volta potrebbe essere: http://codingdojo.org/cgi-bin/wiki.pl?KataTexasHoldEm
Altre idee o suggerimenti?

Alberto Dal Dosso

unread,
Feb 17, 2012, 9:12:11 AM2/17/12
to novar...@googlegroups.com
Ciao a tutti,

vi giro la soluzione mia e di Matteo.

MineSweeperKata.zip

news75

unread,
Feb 27, 2012, 8:43:49 AM2/27/12
to novar...@googlegroups.com

mmm... a me sembra un po' troppo difficile... io avrei in alternativa
due proposte:

Una è rifare il FizzBuzzKata che ormai dovremmo più o meno conoscere
tutti. In questa maniera dovremmo risuscire in poco ad arrivare al
secondo punto dell'esercizio ovvero cosa succede quando cambiano i
requisiti !?


In alternativa si potrebbe povere il KataBankOCR
http://codingdojo.org/cgi-bin/wiki.pl?KataBankOCR
anche qui il bello è che hai un continuo cambio di riequisiti però temo
che essendo nuovo rischiamo di non arrivare alla seconda storia...


che ne dite !?

ciao ciao

g.

P.S.
Non ho visto molti commenti sull'utilizzo delle CRC cosa ne pensate !?

P.P.S.

@Pier: non mi hai inviato la nostra soluzine !! :). Giovedì hai
bisogno di un passaggio ?! fammi sapere

>
> --
> _____________________
> http://groups.google.com/group/admins-gallug?hl=it
>
> GalLUG - Galliate LUG & Novara XPug
> Circolo ANSPI B.Quagliotti – CF 01103280036
> Viale Quagliotti, 1 - Galliate (NO)
> Tel/Fax: 0321.806832 - in...@gallug.it - www.gallug.it
> _____________________
> Per mandare una mail al gruppo: novar...@googlegroups.com
> Per disiscriverti mail vuota a: novara-xpug
> +unsub...@googlegroups.com


Alberto Dal Dosso

unread,
Feb 28, 2012, 8:04:26 AM2/28/12
to novar...@googlegroups.com
Io voto per il FizzBuzz

> Per disiscriverti mail vuota a: novara-xpug...@googlegroups.com

Alex Gotev

unread,
Feb 28, 2012, 10:18:12 AM2/28/12
to novar...@googlegroups.com
A furia di fare Kata scritti da altri, me ne sono "inventato" uno io...che altro non è che l'implementazione della Briscola.
Di seguito il testo completo. Che ne dite?

Kata Briscola

Un elettronico e un informatico appassionati di Briscola stanno costruendo un piccolo dispositivo embedded che automatizza il loro gioco preferito, senza però togliergli il fascino di giocare con le carte vere. Al dispositivo è collegato un sensore ottico che rileva le
carte che sono state lanciate sul tavolo (secondo l'ordine col quale sono state lanciate).

Il dispositivo si preoccuperà di:
 - assegnare un numero a ciascuno dei due giocatori e di decidere in modo casuale chi dei due deve cominciare
 - mescolare le carte
 - pescare dalla cima del mazzo il seme di briscola, mostrarlo ai giocatori e memorizzarlo
 - pescare le carte che devono essere date a ciascuno dei 2 giocatori
 - decretare il vincitore di ogni mano
 - mostrare in tempo reale il punteggio di entrambi i giocatori dopo ciascuna mano
 - decretare il vincitore della partita.

Assemblato l'hardware, ai due amici non resta che scrivere il programma per far funzionare il dispositivo, sapendo che per ogni carta letta dal sensore ottico vengono restituiti due numeri in sequenza: il tipo di seme e il numero della carta.
   Numeri per i semi: da 1 a 4 (nell'ordine: DENARI, COPPE, SPADE e BASTONI)
   Numeri per le carte: da 1 a 10 in cui 1=Asso, 8=Fante, 9=Cavallo, 10=Re

Il dispositivo ritorna 4 numeri alla fine di ciascuna mano.

Regole per determinare chi vince la mano:
1-)Il seme di Briscola è quello che predomina su tutti i restanti tipi di seme.
2-)Il valore di presa delle carte è secondo la seguente scala decrescente: Asso, 3, Re, Cavallo, Fante, 7, 6, 5, 4 e 2
3-)Se solo una delle due carte ha il seme di Briscola, si aggiudica la mano il giocatore che l'ha lanciata
4-)Se entrambe le carte sono del seme di Briscola, si aggiudica la mano il giocatore che ha lanciato la carta con valore più alto
5-)Se nessuna carta è del seme di Briscola, la prima carta lanciata sul tavolo decreta il seme dominante. Per vincere la mano, il giocatore che lancia per secondo deve mettere una carta dello stesso seme della prima carta, ma con valore più alto. In tutti gli altri casi il secondo giocatore perde la mano.

Il giocatore che ha vinto la mano si aggiudica le due carte sul tavolo e al successivo turno è il primo a lanciare una carta.

Il programma, alla fine di ciascuna mano deve:
  - memorizzare le carte aggiudicate da ciascun giocatore
  - calcolare i punteggi parziali tenendo conto di tutte le carte aggiudicate da ciascuno dei 2 giocatori e mostrarli
  - restituire il numero del giocatore che ha vinto il turno

Continuare a valutare le diverse mani in una partita finché non finiscono le carte nel mazzo e decretare il vincitore.

Regole per determinare i punteggi parziali e quello finale:
Asso = 11
Tre = 10
Re = 4
Cavallo = 3
Fante = 2
(7,6,5,4,2) = 0

NOTE
Non vale la regola dell'asso pigliatutto.

Alberto Pollastro

unread,
Feb 29, 2012, 3:19:02 AM2/29/12
to novar...@googlegroups.com
Il giorno 28 febbraio 2012 14:04, Alberto Dal Dosso <dald...@gmail.com> ha scritto:
Io voto per il FizzBuzz

+1

Per la pizza invece chi c'è?

Alberto. 

Alberto Pollastro

unread,
Feb 29, 2012, 3:20:46 AM2/29/12
to novar...@googlegroups.com
Il giorno 28 febbraio 2012 16:18, Alex Gotev <alex...@gmail.com> ha scritto:
A furia di fare Kata scritti da altri, me ne sono "inventato" uno io...che altro non è che l'implementazione della Briscola.

Simpatico, però concordo con Giuseppe; meglio concentrarsi sul metodo facendo un kata che conosciamo bene piuttosco che concentrarci sul problema di un kata che non abbiamo mai visto. 

Alberto.

Alex Gotev

unread,
Feb 29, 2012, 3:25:17 AM2/29/12
to novar...@googlegroups.com

Allora +1 anche io per il FizzBuzz

Alex Gotev

unread,
Feb 29, 2012, 3:26:31 AM2/29/12
to novar...@googlegroups.com
Il giorno 29 febbraio 2012 09:19, Alberto Pollastro <alberto....@gmail.com> ha scritto:
 
Per la pizza invece chi c'è?

Io ci sono

Matteo Vaccari

unread,
Feb 29, 2012, 3:28:15 AM2/29/12
to novar...@googlegroups.com


2012/2/28 Alex Gotev <alex...@gmail.com>

A furia di fare Kata scritti da altri, me ne sono "inventato" uno io...che altro non è che l'implementazione della Briscola.
Di seguito il testo completo. Che ne dite?


Bello.  Però è molto grosso, tipo due giorni di sviluppo più che due pomodori :-)  Ti suggerisco di spezzarlo in stadi.  Già capire chi vince fra due carte è un problema interessante.  Prova a pensare al primo test che scriveresti.  Una variante è capire chi ha vinto fra quattro carte (briscola in quattro, molto più divertente di quella a due :-)

Matteo

Matteo Passerini

unread,
Feb 29, 2012, 3:39:20 AM2/29/12
to novar...@googlegroups.com
+1 FizzBuzz!

Passo la pizza

--
Matteo Passerini - Consulenza nel settore delle tecnologie informatiche
Vicolo Monte Santo, 3 - 28066 Galliate (NO) - P.IVA: 02283420038
Cel.: 347 29 24 510 -  eMail: pas...@gmail.com

Alex Gotev

unread,
Feb 29, 2012, 4:29:41 AM2/29/12
to novar...@googlegroups.com
Il giorno 29 febbraio 2012 09:28, Matteo Vaccari <vac...@pobox.com> ha scritto:

Bello.  Però è molto grosso, tipo due giorni di sviluppo più che due pomodori :-)  Ti suggerisco di spezzarlo in stadi.  Già capire chi vince fra due carte è un problema interessante.  Prova a pensare al primo test che scriveresti.  Una variante è capire chi ha vinto fra quattro carte (briscola in quattro, molto più divertente di quella a due :-)

Si è vero me ne sono reso conto dopo che ho finito di scriverlo e che ho iniziato a farlo :-). Il primo test che ho scritto verifica, date in input due carte, quale sia quella vincente. Tiene conto solo del valore di presa e non dei semi. Nel secondo test una carta è del seme di briscola e l'altra no e così via fino ad implementare tutti i casi possibili citati nel testo del Kata.

Quindi lo Stage 1 potrebbe essere: date due carte, stabilire quale sia quella vincente attenendosi alle regole.
Mi hai dato anche un'ottima idea di espansione: una volta finita l'implementazione per due giocatori, fare quella per 4

Alex

Alberto Dal Dosso

unread,
Feb 29, 2012, 6:06:53 AM2/29/12
to novar...@googlegroups.com
per la pizza ci sono anch'io

Matteo Vaccari

unread,
Feb 29, 2012, 8:02:26 AM2/29/12
to novar...@googlegroups.com


2012/2/29 Alex Gotev <alex...@gmail.com>

Il giorno 29 febbraio 2012 09:28, Matteo Vaccari <vac...@pobox.com> ha scritto:


Bello.  Però è molto grosso, tipo due giorni di sviluppo più che due pomodori :-)  Ti suggerisco di spezzarlo in stadi.  Già capire chi vince fra due carte è un problema interessante.  Prova a pensare al primo test che scriveresti.  Una variante è capire chi ha vinto fra quattro carte (briscola in quattro, molto più divertente di quella a due :-)

Si è vero me ne sono reso conto dopo che ho finito di scriverlo e che ho iniziato a farlo :-). Il primo test che ho scritto verifica, date in input due carte, quale sia quella vincente.

Più concreto: quali due carte?

Alex Gotev

unread,
Feb 29, 2012, 8:27:16 AM2/29/12
to novar...@googlegroups.com
Il giorno 29 febbraio 2012 14:02, Matteo Vaccari <vac...@pobox.com> ha scritto:

Più concreto: quali due carte?

8 di Bastoni e 3 di Bastoni e la vincente è il 3 di Bastoni

Fabio Mora

unread,
Feb 29, 2012, 8:55:24 AM2/29/12
to novar...@googlegroups.com
Ciao,

per me ok il FizzBuzz. Arrivo per l'inizio del coding salvo problemi di lavoro, non ho le chiavi domani sera.

Piccolo appunto e pro memoria, che ho già mandato a xp...@gallug.it (chi la legge?!).
Ricordarsi di aggiornare il calendario pubblico (Google Calendar) con gli incontri XPUG, perchè serve:
- Soprattutto a chi si peoccupa dei locali, che in questo modo sa quando ci troviamo, non da lo spazio ad altri e ci può accendere il riscaldamento.
- Questo a farlo sapere a chi segue il calendario (membri GalLUG)
- Le modifiche vengono propagate automaticamente tramite RSS a Facebook e LinkedIn, che ci da un po' di visibilità
E' una piccolezza, ma vi prego di farlo, come avevamo deciso ad inizio anno.
Per questo incontro l'ho fatto io.

grazie,
Fabio

Matteo Vaccari

unread,
Feb 29, 2012, 9:15:02 AM2/29/12
to novar...@googlegroups.com


2012/2/29 Alex Gotev <alex...@gmail.com>

Il giorno 29 febbraio 2012 14:02, Matteo Vaccari <vac...@pobox.com> ha scritto:


Più concreto: quali due carte?

8 di Bastoni e 3 di Bastoni e la vincente è il 3 di Bastoni

Stai già testando un caso particolare.... il fatto che il 3 vale più dell' 8.  perché non 4 di bastoni e 2 di bastoni?

M

Alex Gotev

unread,
Feb 29, 2012, 9:24:26 AM2/29/12
to novar...@googlegroups.com
Il giorno 29 febbraio 2012 15:15, Matteo Vaccari <vac...@pobox.com> ha scritto:
Stai già testando un caso particolare.... il fatto che il 3 vale più dell' 8.  perché non 4 di bastoni e 2 di bastoni?

Giusto, allora quello che proponi tu diventa il primo test e il caso del 3 di bastoni viene dopo.

news75

unread,
Mar 1, 2012, 8:58:10 AM3/1/12
to novar...@googlegroups.com
Il giorno mer, 29/02/2012 alle 09.19 +0100, Alberto Pollastro ha
scritto:


> Per la pizza invece chi c'è?

Io ci sono, 19:30 come al solito.

ciao

g.


Alex Gotev

unread,
Mar 1, 2012, 10:00:34 AM3/1/12
to novar...@googlegroups.com
Ci siamo anche io e Alberto.
Reply all
Reply to author
Forward
0 new messages