Ronald Peterson před 10 roky
rodič
revize
df65a66c43
1 změnil soubory, kde provedl 34 přidání a 25 odebrání
  1. 34 25
      battlecamp-go-bot/main.go

+ 34 - 25
battlecamp-go-bot/main.go

@@ -151,7 +151,7 @@ type viewport struct {
 func getViewPort(x, y, width, height int, gameId int64, bs *board.Board) *viewport {
 	x, y, width, height = board.SanitizeViewPort(bs, x, y, width, height)
 
-	url := "http://localhost:8080/games/board/" + strconv.FormatInt(gameId, 10) + "?x=" + strconv.Itoa(x) + "&y=" + strconv.Itoa(y) + "&rows=" + strconv.Itoa(height) + "&cols=" + strconv.Itoa(width)
+	url := "http://localhost:8080/games/" + strconv.FormatInt(gameId, 10) + "/board?x=" + strconv.Itoa(x) + "&y=" + strconv.Itoa(y) + "&rows=" + strconv.Itoa(height) + "&cols=" + strconv.Itoa(width)
 	fmt.Println("getViewPort:>", url)
 	resp, _ := http.Get(url)
 	board := board.ReadJSON(x, y, resp.Body)
@@ -206,11 +206,13 @@ func move(gameId int64, p *player.Player, players []*player.Player, bs *board.Bo
 
 	direction := "E"
 
-	igloY := (bs.Finish.Y - viewPort.y)-1
+	igloY := bs.Finish.Y - viewPort.y
+	igloYInRange := true
 	if bs.Finish.Y < viewPort.y {
 		//iglo ten noorden van viewport
 		fmt.Println("iglo Y boven")
 		igloY = 0
+		igloYInRange = false
 		/*for  viewPort.Get(viewPort.x+viewPortWidth, igloY) == board.Rock && igloY <= viewPort.y+viewPortHeight {
 			igloY++
 		}*/
@@ -218,21 +220,24 @@ func move(gameId int64, p *player.Player, players []*player.Player, bs *board.Bo
 		//iglo ten zuiden van viewport
 		fmt.Println("iglo Y onder")
 		igloY = viewPort.Board.Height - 1
+		igloYInRange = false
 		/*for  viewPort.Get(viewPort.x+viewPortWidth, igloY) == board.Rock  && igloY >= viewPort.y+viewPortHeight {
 			igloY--
 		}*/
 	}
 
-	igloX := viewPort.Board.Width - 1
-	
+	igloX := viewPort.Board.Width
+	igloXInRange := true
 	if bs.Finish.X < viewPort.x {
 		//iglo links
 		fmt.Println("iglo X links")
 		igloX = 0
+		igloXInRange = false
 	} else if bs.Finish.X > viewPort.x+viewPort.Board.Width {
 		//iglo rechts
 		fmt.Println("iglo X rechts")
 		igloX = viewPort.Board.Width - 1
+		igloXInRange = false
 	} else if viewPort.x < bs.Finish.X && viewPort.x+viewPort.Board.Width > bs.Finish.X {
 		// iglo in range
 		igloX = (bs.Finish.X - viewPort.x)
@@ -241,29 +246,33 @@ func move(gameId int64, p *player.Player, players []*player.Player, bs *board.Bo
 	fmt.Printf("Virtuele iglo geplaast op x %v y %v\n", igloX, igloY)
 
 	dist := calcDist(igloX, igloY, viewPort)
-	for igloX > 100 && dist[toIndex(p.Pos.X-viewPort.x, p.Pos.Y-viewPort.y, viewPort.Board.Width)] == 0 {
-		igloX--
-		fmt.Printf("replaced iglo to %v x %v\n", igloX, igloY)
-		dist = calcDist(igloX, igloY, viewPort)
-
-/*
-		for i := 0; i < viewPort.Board.Height; i++ {
-			for j := 0; j < viewPort.Board.Width; j++ {
-				if j == p.Pos.X-viewPort.x && i == p.Pos.Y-viewPort.y {
-					fmt.Printf("X")
-				}
-				if j == igloX && i == igloY {
-					fmt.Printf("I")
-				}
-				if dist[(i*viewPort.Board.Width)+j] < 10 {
-					fmt.Printf("0")
+	if !igloXInRange || !igloYInRange {
+		for igloX > 100 && dist[toIndex(p.Pos.X-viewPort.x, p.Pos.Y-viewPort.y, viewPort.Board.Width)] == 0 {
+			igloX--
+			fmt.Printf("replaced iglo to %v x %v\n", igloX, igloY)
+			dist = calcDist(igloX, igloY, viewPort)
+
+			/*
+				for i := 0; i < viewPort.Board.Height; i++ {
+					for j := 0; j < viewPort.Board.Width; j++ {
+						if j == p.Pos.X-viewPort.x && i == p.Pos.Y-viewPort.y {
+							fmt.Printf("X")
+						}
+						if j == igloX && i == igloY {
+							fmt.Printf("I")
+						}
+						if dist[(i*viewPort.Board.Width)+j] < 10 {
+							fmt.Printf("0")
+						}
+						fmt.Printf("%v ", dist[(i*viewPort.Board.Width)+j])
+					}
+					fmt.Printf("\n")
 				}
-				fmt.Printf("%v ", dist[(i*viewPort.Board.Width)+j])
-			}
-			fmt.Printf("\n")
+
+				time.Sleep(1 * time.Second)*/
 		}
-		
-		time.Sleep(1 * time.Second)*/
+	} else {
+		fmt.Println("Iglo in range lets go!!")
 	}
 
 	smallestDist := math.MaxInt32