Construido sobre el código del profesor Juan P. Sandoval
Instalación:
- Usar ruby version
2.7
- Correr
bundler install
Para jugar:
- Correr
ruby lib/main.rb
- Los barcos se ponen de forma horizontal (eligiendo la posición más a la izquierda) o vertical (eligiendo la posición más arriba).
- Una vez puestos los barcos se elige la file y la columna del disparo. Si se acierta a un barco, se repite.
- Una vez que un jugador haya hundido todos los barcos del contrincante, el juego termina y este es el ganador.
Para desarrollar:
- El código del juego va en
lib/
- Los test van en
test/
- Para instalar las dependencias:
bundle install
- Para correr el juego:
ruby lib/main.rb
- Para correr los test:
bundle exec rake test
- Para correr el linter (rubocop):
bundle exec rubocop
(óbundle exec lint
) - Para correr el linter y autocorregir errores simples:
bundle exec rubocop -A
Consideraciones Rubocop:
- La regla:
AllCops:
SuggestExtensions: false
No afecta en nada la ejecución del linter, solo es para que no entregue un output con sugerencias de nuevas extensiones.
- Aumentamos la class length de 100 a 160 y el method length de 10 a 20. Ambas medidas nos parecían muy restrictivas, y más que ayudar simplemente hacian el desarrollo más engorroso. Nos pareció una buena medida el aflojar los máximos un poco, para poder tener funciones y clases que tengan la lógica necesaria, sin modularizar cuando no tiene sentido hacerlo.