Generate mines' location into a HashSetGenerate the other field based on the location of minesImplement opening logicRefactor FieldState to reduce code duplicationAdd mechanism to indicate BOOMAdd logic to indicate happy endingAdd timerAdd flags to fieldsRewrite mine moving logic to change only field type, but not the state- Rewrite FieldVisiter as Iterator if possible
Create different methods for create mines and other fields- Convert the static str errors into errorcode + static str