瀏覽代碼

Rename files for later

Sacha Ligthert 2 年之前
父節點
當前提交
8e10c82b67
共有 1 個文件被更改,包括 16 次插入18 次删除
  1. 16 18
      game.go

+ 16 - 18
snake.go → game.go

@@ -1,28 +1,24 @@
 package main
 
 import (
+	"fmt"
 	"log"
+	"strconv"
 
 	"github.com/gdamore/tcell/v2"
 )
 
-func drawText(s tcell.Screen, x1, y1, x2, y2 int, style tcell.Style, text string) {
-	row := y1
-	col := x1
-	for _, r := range []rune(text) {
-		s.SetContent(col, row, r, nil, style)
-		col++
-		if col >= x2 {
-			row++
-			col = x1
-		}
-		if row > y2 {
-			break
-		}
+func updateScore(screen tcell.Screen, style tcell.Style, score int) {
+	var x, y int
+	_, y = screen.Size()
+	x = 5
+	for _, r := range []rune("[ Score: " + strconv.FormatInt(int64(score), 10) + " ]") {
+		screen.SetContent(x, y-1, r, nil, style)
+		x++
 	}
 }
 
-func drawBox(s tcell.Screen, x1, y1, x2, y2 int, style tcell.Style, text string) {
+func drawBox(s tcell.Screen, x1, y1, x2, y2 int, style tcell.Style) {
 	if y2 < y1 {
 		y1, y2 = y2, y1
 	}
@@ -55,7 +51,8 @@ func drawBox(s tcell.Screen, x1, y1, x2, y2 int, style tcell.Style, text string)
 		s.SetContent(x2, y2, '╝', nil, style)
 	}
 
-	drawText(s, x1+1, y1+1, x2-1, y2-1, style, text)
+	//drawText(s, x1+1, y1+1, x2-1, y2-1, style, text)
+	updateScore(s, style, 10)
 }
 
 func main() {
@@ -77,7 +74,7 @@ func main() {
 
 	screen.Clear()
 
-	drawBox(screen, 0, 0, x-1, y-1, defaultStyle, "There should be worms here!")
+	drawBox(screen, 0, 0, x-1, y-1, defaultStyle)
 
 	quit := func() {
 		// You have to catch panics in a defer, clean up, and
@@ -97,13 +94,14 @@ func main() {
 		switch ev := ev.(type) {
 		case *tcell.EventResize:
 			x, y := screen.Size()
-			drawBox(screen, 0, 0, x-1, y-1, defaultStyle, "There should be worms here!")
+			drawBox(screen, 0, 0, x-1, y-1, defaultStyle)
+			fmt.Println("size=ok:", checkSize(screen))
 			screen.Sync()
 		case *tcell.EventKey:
 			//fmt.Println("Key: ",ev.Rune())
 			if ev.Key() == tcell.KeyEscape || ev.Key() == tcell.KeyCtrlC {
 				return
-			} else if ev.Rune() == 'q' {
+			} else if ev.Rune() == 'q' || ev.Rune() == 'Q' {
 				return
 			} else if ev.Key() == tcell.KeyCtrlL {
 				screen.Sync()