File tree Expand file tree Collapse file tree 3 files changed +75
-0
lines changed Expand file tree Collapse file tree 3 files changed +75
-0
lines changed Original file line number Diff line number Diff line change
1
+ bgp-battleships
Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import (
4
+ "fmt"
5
+
6
+ "github.com/mgutz/ansi"
7
+ )
8
+
9
+ type boardState int
10
+
11
+ const square string = "■"
12
+
13
+ const (
14
+ stateEmpty boardState = iota // 0
15
+ stateShip boardState = iota // 1
16
+ stateHit boardState = iota // 2
17
+ stateAttempt boardState = iota // 3
18
+ )
19
+
20
+ type battleShipBoard struct {
21
+ Board [10 ][10 ]boardState
22
+ }
23
+
24
+ func (b * battleShipBoard ) Draw () {
25
+ fmt .Print ("_|A|B|C|D|E|F|G|H|I|J|_\n " )
26
+ for y , stripe := range b .Board {
27
+ fmt .Printf ("%d|" , y )
28
+ for _ , x := range stripe {
29
+ fmt .Printf ("%s|" , x .Draw ())
30
+ }
31
+ fmt .Printf ("%d\n " , y )
32
+ }
33
+ fmt .Print ("_|A|B|C|D|E|F|G|H|I|J|_\n " )
34
+ }
35
+
36
+ var cblack = ansi .ColorCode ("black+h:black" )
37
+ var cship = ansi .ColorCode ("black+h:white" )
38
+ var chit = ansi .ColorCode ("red+h:red" )
39
+ var cattempt = ansi .ColorCode ("yellow:yellow" )
40
+
41
+ func (b boardState ) Draw () string {
42
+ if b == stateEmpty {
43
+ return cblack + square + ansi .DefaultBG + ansi .DefaultFG
44
+ }
45
+ if b == stateShip {
46
+ return cship + square + ansi .DefaultBG + ansi .DefaultFG
47
+ }
48
+ if b == stateHit {
49
+ return chit + square + ansi .DefaultBG + ansi .DefaultFG
50
+ }
51
+ if b == stateAttempt {
52
+ return cattempt + square + ansi .DefaultBG + ansi .DefaultFG
53
+ }
54
+ return ""
55
+ }
Original file line number Diff line number Diff line change
1
+ package main
2
+
3
+ import (
4
+ "flag"
5
+ "log"
6
+ )
7
+
8
+ func main () {
9
+ flag .Parse ()
10
+ log .Printf ("yup" )
11
+
12
+ N := battleShipBoard {}
13
+
14
+ N .Board [1 ][5 ] = stateShip
15
+ N .Board [1 ][2 ] = stateHit
16
+ N .Board [2 ][2 ] = stateAttempt
17
+
18
+ N .Draw ()
19
+ }
You can’t perform that action at this time.
0 commit comments