|
@@ -151,7 +151,7 @@ type viewport struct {
|
|
|
func getViewPort(x, y, width, height int, gameId int64, bs *board.Board) *viewport {
|
|
func getViewPort(x, y, width, height int, gameId int64, bs *board.Board) *viewport {
|
|
|
x, y, width, height = board.SanitizeViewPort(bs, x, y, width, height)
|
|
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)
|
|
fmt.Println("getViewPort:>", url)
|
|
|
resp, _ := http.Get(url)
|
|
resp, _ := http.Get(url)
|
|
|
board := board.ReadJSON(x, y, resp.Body)
|
|
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"
|
|
direction := "E"
|
|
|
|
|
|
|
|
- igloY := (bs.Finish.Y - viewPort.y)-1
|
|
|
|
|
|
|
+ igloY := bs.Finish.Y - viewPort.y
|
|
|
|
|
+ igloYInRange := true
|
|
|
if bs.Finish.Y < viewPort.y {
|
|
if bs.Finish.Y < viewPort.y {
|
|
|
//iglo ten noorden van viewport
|
|
//iglo ten noorden van viewport
|
|
|
fmt.Println("iglo Y boven")
|
|
fmt.Println("iglo Y boven")
|
|
|
igloY = 0
|
|
igloY = 0
|
|
|
|
|
+ igloYInRange = false
|
|
|
/*for viewPort.Get(viewPort.x+viewPortWidth, igloY) == board.Rock && igloY <= viewPort.y+viewPortHeight {
|
|
/*for viewPort.Get(viewPort.x+viewPortWidth, igloY) == board.Rock && igloY <= viewPort.y+viewPortHeight {
|
|
|
igloY++
|
|
igloY++
|
|
|
}*/
|
|
}*/
|
|
@@ -218,21 +220,24 @@ func move(gameId int64, p *player.Player, players []*player.Player, bs *board.Bo
|
|
|
//iglo ten zuiden van viewport
|
|
//iglo ten zuiden van viewport
|
|
|
fmt.Println("iglo Y onder")
|
|
fmt.Println("iglo Y onder")
|
|
|
igloY = viewPort.Board.Height - 1
|
|
igloY = viewPort.Board.Height - 1
|
|
|
|
|
+ igloYInRange = false
|
|
|
/*for viewPort.Get(viewPort.x+viewPortWidth, igloY) == board.Rock && igloY >= viewPort.y+viewPortHeight {
|
|
/*for viewPort.Get(viewPort.x+viewPortWidth, igloY) == board.Rock && igloY >= viewPort.y+viewPortHeight {
|
|
|
igloY--
|
|
igloY--
|
|
|
}*/
|
|
}*/
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- igloX := viewPort.Board.Width - 1
|
|
|
|
|
-
|
|
|
|
|
|
|
+ igloX := viewPort.Board.Width
|
|
|
|
|
+ igloXInRange := true
|
|
|
if bs.Finish.X < viewPort.x {
|
|
if bs.Finish.X < viewPort.x {
|
|
|
//iglo links
|
|
//iglo links
|
|
|
fmt.Println("iglo X links")
|
|
fmt.Println("iglo X links")
|
|
|
igloX = 0
|
|
igloX = 0
|
|
|
|
|
+ igloXInRange = false
|
|
|
} else if bs.Finish.X > viewPort.x+viewPort.Board.Width {
|
|
} else if bs.Finish.X > viewPort.x+viewPort.Board.Width {
|
|
|
//iglo rechts
|
|
//iglo rechts
|
|
|
fmt.Println("iglo X rechts")
|
|
fmt.Println("iglo X rechts")
|
|
|
igloX = viewPort.Board.Width - 1
|
|
igloX = viewPort.Board.Width - 1
|
|
|
|
|
+ igloXInRange = false
|
|
|
} else if viewPort.x < bs.Finish.X && viewPort.x+viewPort.Board.Width > bs.Finish.X {
|
|
} else if viewPort.x < bs.Finish.X && viewPort.x+viewPort.Board.Width > bs.Finish.X {
|
|
|
// iglo in range
|
|
// iglo in range
|
|
|
igloX = (bs.Finish.X - viewPort.x)
|
|
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)
|
|
fmt.Printf("Virtuele iglo geplaast op x %v y %v\n", igloX, igloY)
|
|
|
|
|
|
|
|
dist := calcDist(igloX, igloY, viewPort)
|
|
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
|
|
smallestDist := math.MaxInt32
|