|
@@ -43,8 +43,8 @@ func gameDirector(screen tcell.Screen, style tcell.Style, keypresses chan int, g
|
|
|
// Destined to die, even before I was born.
|
|
// Destined to die, even before I was born.
|
|
|
defer quit(screen)
|
|
defer quit(screen)
|
|
|
|
|
|
|
|
- //var score int = 0
|
|
|
|
|
- //var scoreCounter int = 1
|
|
|
|
|
|
|
+ var score int = 0
|
|
|
|
|
+ var scoreCounter int = 1
|
|
|
//var field [80][24]int
|
|
//var field [80][24]int
|
|
|
// fill up the field:
|
|
// fill up the field:
|
|
|
// 0: empty
|
|
// 0: empty
|
|
@@ -52,12 +52,19 @@ func gameDirector(screen tcell.Screen, style tcell.Style, keypresses chan int, g
|
|
|
// 2: apple
|
|
// 2: apple
|
|
|
// 3: border
|
|
// 3: border
|
|
|
|
|
|
|
|
|
|
+ // Board size
|
|
|
var screenx = 80
|
|
var screenx = 80
|
|
|
var screeny = 24
|
|
var screeny = 24
|
|
|
|
|
+
|
|
|
|
|
+ // Have snake start at the center of the board
|
|
|
var snakex int = (screenx / 2) - 1
|
|
var snakex int = (screenx / 2) - 1
|
|
|
var snakey int = (screeny / 2) - 1
|
|
var snakey int = (screeny / 2) - 1
|
|
|
|
|
+
|
|
|
|
|
+ // Last direction we went in
|
|
|
var lastpress int = 1
|
|
var lastpress int = 1
|
|
|
|
|
|
|
|
|
|
+ var apple Apple = placeApple(&snakex, &snakey)
|
|
|
|
|
+
|
|
|
for {
|
|
for {
|
|
|
|
|
|
|
|
// Take input or sleep
|
|
// Take input or sleep
|
|
@@ -69,6 +76,12 @@ func gameDirector(screen tcell.Screen, style tcell.Style, keypresses chan int, g
|
|
|
snakeDirection(lastpress, &snakex, &snakey)
|
|
snakeDirection(lastpress, &snakex, &snakey)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ if snakex == apple.x && snakey == apple.y {
|
|
|
|
|
+ apple = placeApple(&snakex, &snakey)
|
|
|
|
|
+ score += scoreCounter
|
|
|
|
|
+ scoreCounter++
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// Call it quits once the snake hits the border.
|
|
// Call it quits once the snake hits the border.
|
|
|
if snakex == 0 || snakex == screenx-1 {
|
|
if snakex == 0 || snakex == screenx-1 {
|
|
|
close(gamestate)
|
|
close(gamestate)
|
|
@@ -85,6 +98,8 @@ func gameDirector(screen tcell.Screen, style tcell.Style, keypresses chan int, g
|
|
|
drawBox(screen, 0, 0, screenx-1, screeny-1, style)
|
|
drawBox(screen, 0, 0, screenx-1, screeny-1, style)
|
|
|
drawCoords(screen, style, &snakex, &snakey)
|
|
drawCoords(screen, style, &snakex, &snakey)
|
|
|
drawSnake(screen, style, snakex, snakey)
|
|
drawSnake(screen, style, snakex, snakey)
|
|
|
|
|
+ drawApple(screen, style, apple.x, apple.y)
|
|
|
|
|
+ drawScore(screen, style, score)
|
|
|
|
|
|
|
|
// Draw the screen
|
|
// Draw the screen
|
|
|
screen.Show()
|
|
screen.Show()
|