snake/main.go

53 lines
1.0 KiB
Go

// An amateurs approach to the game of Snake
package main
import (
"fmt"
"log"
)
// main function
func main() {
// Create channles to manage keypresses and the gamestate
keypresses := make(chan int)
gamestate := make(chan int)
// Score tracker
score := Score{
score: 0,
scoreCounter: 1,
reason: 0,
}
// Initialize tcell and clean up when needed.
screen, style, err := initilize()
if err != nil {
log.Fatalln("Initlization error: ", err)
}
//defer quit(screen)
// Spawn the Game Director in its own go routine
// We give it channels to control...
go gameDirector(screen, style, keypresses, gamestate, &score)
// A simple function that captures keyboard presses...
// ...and sends it to the GameDirector.
keyboardProcessor(screen, keypresses, gamestate, &score)
// Quit the screen
quit(screen)
// Print the score
fmt.Println("Score: ", score.score)
switch score.reason {
case 1:
fmt.Println("Reason: You quit")
case 2:
fmt.Println("Reason: You hit a wall")
case 3:
fmt.Println("Reason: You ate your tail")
}
}