diff options
Diffstat (limited to 'minesweeper/cell.py')
| -rw-r--r-- | minesweeper/cell.py | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/minesweeper/cell.py b/minesweeper/cell.py new file mode 100644 index 0000000..8c7481b --- /dev/null +++ b/minesweeper/cell.py | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | from random import randint | ||
| 2 | |||
| 3 | |||
| 4 | class Cell: | ||
| 5 | def __init__(self, chance): | ||
| 6 | self._value = None | ||
| 7 | |||
| 8 | if randint(0, 99) < chance: | ||
| 9 | self.is_mine = True | ||
| 10 | else: | ||
| 11 | self.is_mine = False | ||
| 12 | |||
| 13 | self.covered = True | ||
| 14 | self.cover = '#' | ||
| 15 | |||
| 16 | @property | ||
| 17 | def value(self): | ||
| 18 | return self._value | ||
| 19 | |||
| 20 | @value.setter | ||
| 21 | def value(self, value): | ||
| 22 | if value == 0: | ||
| 23 | self._value = ' ' | ||
| 24 | else: | ||
| 25 | self._value = str(value) | ||
| 26 | |||
| 27 | @property | ||
| 28 | def visible_value(self): | ||
| 29 | if self.covered: | ||
| 30 | return self.cover | ||
| 31 | else: | ||
| 32 | return self.value | ||
| 33 | |||
| 34 | @property | ||
| 35 | def safe(self): | ||
| 36 | if self.cover == 'F': | ||
| 37 | return True | ||
| 38 | else: | ||
| 39 | return False | ||
| 40 | |||
| 41 | def uncover(self): | ||
| 42 | self.covered = False | ||
| 43 | |||
| 44 | def toggle_flag(self): | ||
| 45 | if self.cover == '#': | ||
| 46 | self.cover = 'F' | ||
| 47 | elif self.cover == 'F': | ||
| 48 | self.cover = '#' | ||
| 49 | |||
| 50 | # vim: set ts=8 sw=4 tw=0 et : | ||
