add: testing to tictactoe rename: tictactoe add: tictactoe steps refactor: tictactoe const names refactor: tictactoe loop add: tictactoe bad switch example (fallthrough) refactor: tictactoe loop skin remove: tictactoe changable skin refactor: tictactoe all remove: tictactoe unnecessary base dir add: tictactoe slices add: tictactoe slices remove: tictactoe fallthrough rename: tictactoe slices 10 -> 09 update: loops skin tictactoe add: tictactoe randomization add: tictactoe infinite loop and labeled break refactor: tictactoe rand and infinite loop add: tictactoe buggy winning algo add: tictactoe more tests rename: tictactoe wrongPlay to wrongMove add: tictactoe even more tests fix: tictactoe rename: tictactoe waitForInput to wait add: tictactoe os.args gameSpeed remove: tictactoe unnecessary files rename: tictactoe game messages refactor: tictactoe main loop add: types and arrays
92 lines
2.5 KiB
Go
92 lines
2.5 KiB
Go
package main
|
||
|
||
import "github.com/fatih/color"
|
||
|
||
// skin options :-)
|
||
type skin struct {
|
||
empty, mark1, mark2 string
|
||
header, middle, footer, separator string
|
||
|
||
unicode bool
|
||
}
|
||
|
||
var skins = map[string]skin{
|
||
"colorful": colorfulSkin,
|
||
"poseidon": poseidonSkin,
|
||
"statues": statuesSkin,
|
||
"aliens": aliensSkin,
|
||
"snow": snowSkin,
|
||
"monkeys": monkeysSkin,
|
||
}
|
||
|
||
var defaultSkin = skin{
|
||
empty: " ",
|
||
mark1: " X ",
|
||
mark2: " O ",
|
||
|
||
header: "┌───┬───┬───┐",
|
||
middle: "├───┼───┼───┤",
|
||
footer: "└───┴───┴───┘",
|
||
separator: "│",
|
||
}
|
||
|
||
var colorfulSkin = skin{
|
||
empty: " ",
|
||
mark1: color.CyanString(" X "),
|
||
mark2: color.HiMagentaString(" O "),
|
||
header: color.HiBlueString("┌───┬───┬───┐"),
|
||
middle: color.HiBlueString("├───┼───┼───┤"),
|
||
footer: color.HiBlueString("└───┴───┴───┘"),
|
||
separator: color.BlueString("│"),
|
||
}
|
||
|
||
var poseidonSkin = skin{
|
||
empty: "❓ ",
|
||
mark1: "🔱 ",
|
||
mark2: "⚓️ ",
|
||
header: "●————●————●————●",
|
||
middle: "●————●————●————●",
|
||
footer: "●————●————●————●",
|
||
separator: "⎮ ",
|
||
}
|
||
|
||
var statuesSkin = skin{
|
||
empty: "❓ ",
|
||
mark1: "🗿 ",
|
||
mark2: "🗽 ",
|
||
header: "┌────┬────┬────┐",
|
||
middle: "├────┼────┼────┤",
|
||
footer: "└────┴────┴────┘",
|
||
separator: "│ ",
|
||
}
|
||
|
||
var aliensSkin = skin{
|
||
empty: "❓ ",
|
||
mark1: "👽 ",
|
||
mark2: "👾 ",
|
||
header: "┌────┬────┬────┐",
|
||
middle: "├────┼────┼────┤",
|
||
footer: "└────┴────┴────┘",
|
||
separator: "│ ",
|
||
}
|
||
|
||
var snowSkin = skin{
|
||
empty: "❓ ",
|
||
mark1: "⛄ ️ ",
|
||
mark2: "❄️ ",
|
||
header: "╔════╦════╦════╗",
|
||
middle: "╠════╬════╬════╣",
|
||
footer: "╚════╩════╩════╝",
|
||
separator: "║ ",
|
||
}
|
||
|
||
var monkeysSkin = skin{
|
||
empty: "🍌 ",
|
||
mark1: "🙈 ",
|
||
mark2: "🙉 ",
|
||
header: "┌────┬────┬────┐",
|
||
middle: "├────┼────┼────┤",
|
||
footer: "└────┴────┴────┘",
|
||
separator: "│ ",
|
||
}
|