Minesweeper terminal clone

damien@lamborghini$ ./termine.py

     1   2   3   4   5   6   7   8
   ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗
a  ║ o │ o │ o │ 2 │ * │ 2 │ o │ o ║
   ╟───┼───┼───┼───┼───┼───┼───┼───╢
b  ║ o │ o │ o │ 2 │ * │ 3 │ 2 │ 1 ║
   ╟───┼───┼───┼───┼───┼───┼───┼───╢
c  ║ o │ o │ o │ 1 │ 3 │ * │ 3 │ * ║
   ╟───┼───┼───┼───┼───┼───┼───┼───╢
d  ║ o │ o │ o │ 1 │ 3 │ * │ 3 │ 1 ║
   ╟───┼───┼───┼───┼───┼───┼───┼───╢
e  ║ o │ o │ o │ 1 │ * │ 3 │ 2 │ 1 ║
   ╟───┼───┼───┼───┼───┼───┼───┼───╢
f  ║ o │ o │ o │ 1 │ 2 │ 3 │ * │ 1 ║
   ╟───┼───┼───┼───┼───┼───┼───┼───╢
g  ║ o │ 1 │ 1 │ 1 │ 1 │ * │ 3 │ 2 ║
   ╟───┼───┼───┼───┼───┼───┼───┼───╢
h  ║ o │ 1 │ * │ 1 │ 1 │ 2 │ * │ 1 ║
   ╚═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╝

         You win! Time: 18.88

Sources