snake/apple.go

52 lines
983 B
Go
Raw Normal View History

package main
import (
"math/rand"
2023-11-12 16:57:52 +01:00
"github.com/gdamore/tcell/v2"
)
2023-11-05 23:51:39 +01:00
// getFoodItem returns an emoji from a string used to represent food
// Takes no arguments, but returns an emoji/rune from a predefined string
2023-11-12 16:57:52 +01:00
// func getFoodItem() rune {
// var foods string = "🐵🐱🐷🐁🐇🐿🦇🐓🐣🐸🦎🍎🍏"
// foodsRune := []rune(foods)
// randomIndex := rand.Intn(len(foodsRune))
// return foodsRune[randomIndex]
// }
2023-11-23 22:36:44 +01:00
// func placeApple(snakex int, snakey int) Apple {
func placeApple(snake *Snake) Apple {
2023-11-12 16:57:52 +01:00
var x, y int
var found bool
for !found {
x = rand.Intn(80)
y = rand.Intn(24)
2023-11-23 22:36:44 +01:00
if x != snake.head.x && y != snake.head.y {
2023-11-12 16:57:52 +01:00
found = true
}
if x == 0 || x == 79 || y == 0 || y == 23 {
found = false
}
2023-11-23 22:36:44 +01:00
if hitsTail(snake, x, y) {
found = false
}
2023-11-12 16:57:52 +01:00
}
apple := Apple{
x: x,
y: y,
}
return apple
}
2023-11-23 22:36:44 +01:00
func drawApple(screen tcell.Screen, style tcell.Style, apple *Apple) {
screen.SetContent(apple.x, apple.y, 'o', nil, style)
}