Skip to content

Commit 0732cf2

Browse files
committed
Init + basic start
0 parents  commit 0732cf2

File tree

3 files changed

+75
-0
lines changed

3 files changed

+75
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
bgp-battleships

board.go

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
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+
}

main.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
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+
}

0 commit comments

Comments
 (0)