Campo minato in C + ncurses

Condividi con noi i tuoi progetti e guide personali
Rispondi
nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Campo minato in C + ncurses

Messaggio da nierro » 16 dicembre 2013, 13:10

Ciao a tutti!
Questo è il mio progettino di questo weekend, iniziato e pensato per imparare un po' ncurses.h, dato che non avevo mai usato questa libreria.
Si tratta di campo minato, ecco uno screenshot: http://postimg.org/image/3yujlrf4d/full/ .
L'ho buttato su AUR, perché ho visto che non c'erano altri pacchetti simili: https://aur.archlinux.org/packages/minefield/ .
Fatemi sapere che ne pensate ;) specie se avete critiche/suggerimenti sul codice (che trovate nel tarball scaricabile dal link di aur, niente github).

Avatar utente
danyf90
Arciere
Messaggi: 162
Iscritto il: 8 gennaio 2013, 14:06
Architettura: x86_64 (64bit)

Re: Campo minato in C + ncurses

Messaggio da danyf90 » 16 dicembre 2013, 16:59

ciao,
volevo segnalarti un problema al volo :D quando prendo uno zero e quindi si scoprono tutte le caselle adiacenti se negli angoli c'è uno zero la casella ad angolo non viene scoperta.
Provo a farti un esempio: io scopro lo zero in apro a sinistra ed X è la casella erronamente coperta

Codice: Seleziona tutto

0 0 1 -
0 0 1 -
1 1 X -
- - - -

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: Campo minato in C + ncurses

Messaggio da nierro » 16 dicembre 2013, 18:13

mmh si capito cosa intendi, mi ero già accorto del problema, ma non avevo più avuto tempo per investigarlo.
A breve ci butto un occhio ;)
Grazie della segnalazione!

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: Campo minato in C + ncurses

Messaggio da nierro » 16 dicembre 2013, 18:20

Fixato, mi ero scordato nella funzione che scopre, ben 4 chiamate ricorsive (per l'esattezza quelle relative alle celle adiacenti in diagonale).

nierro
Little John
Messaggi: 1019
Iscritto il: 19 novembre 2009, 17:51
Architettura: x86_64 (64bit)

Re: Campo minato in C + ncurses

Messaggio da nierro » 26 febbraio 2014, 11:18

Comunque negli ultimi giorni ho avuto modo di lavorarci un po' su, e migliorarlo notevolmente.
Migliorato il codice, molto ottimizzato rispetto a prima, e fixato qualche bug che avevo introdotto lavorandoci su.
Ora dopo aver controllato le dimensioni minime del terminale, praticamente il gioco è scalato in base alla grandezza di quest'ultimo, di modo che è possibile giocarci anche non in fullscreen.
Il sorgente come al solito è disponibile nell'archivio compresso scaricabile da aur.

Rispondi