php小编柚子在这里给您解答关于代码使用次数的问题。根据您的描述,您的代码似乎只能使用3次,但又无法通过其他方法进行使用。这个问题可能有多种原因,例如代码的许可证限制或者代码本身的设计问题。为了帮助您解决这个问题,我们建议您检查代码的许可证信息,确保您有合法的使用权限。同时,您也可以仔细检查代码的设计和实现,看是否有任何限制或条件导致了使用次数的限制。如果问题仍然存在,我们建议您向代码的开发者或相关技术支持寻求帮助,他们可能能够提供更具体的解决方案。
问题内容
问题是: little code最近在玩ice adventure,一款n行m列的网格游戏。部分格子上有一些无法逾越的障碍物,其余格子都是光滑的冰。
玩家在其中,在一个无障碍网格上结盟,并保持静止。然后他会跟随角色上下左右移动;当他按住角色朝一个方向移动时,角色就会在冰面上滑动。自然已经让你在这里往上移动,直到角色移动方向的下一个格子出现障碍物或者超出地图边界,那么地表就会继续等待小院子哥的下一步动作。
现在给定地图上所有障碍物的位置、小院子的初始位置以及小院子的动作顺序,请找出小院子最终停留的位置。
这是我的代码
package main
import "fmt"
func yi(x,y int, s byte, a [][]int) (x1,y1 int){
switch(s){
case 'L':
for{
if y==0 || a[x][y-1]==1{
return x,y
}
y--
}
case 'R':
for{
if y==4 || a[x][y+1]==1{
return x,y
}
y++
}
case 'U':
for{
if x==0 || a[x-1][y]==1{
return x,y
}
x--
}
case 'D':
for{
if x==4 || a[x+1][y]==1{
return x,y
}
x++
}
}
return x1,y1
}
func main() {
var x,y,xc,yc,count int
fmt.Scanf("%d %d",&x,&y)
fmt.Scanf("%d %d",&xc,&yc)
fmt.Scanf("%d",&count)
// s:= make([]int,1,1)
i:=count
// }
arr := make([][]int, x)
for i := 0; i < x; i++ {
arr[i] = make([]int, y)
}
// var arr [6][6]int
for j:=0;j<i;j++{
var xt,yt int
fmt.Scanf("%d %d",&xt,&yt)
arr [xt-1][yt-1]=1
}
// for i:=0;i<x;i++{
// for j:=0;j<y;j++{
// fmt.Print(arr[i][j]," ")
// }
// fmt.Println()
// }
var kong string
fmt.Scanf("%s",&kong)
xf,yf:=xc-1,yc-1
// xf,yf=yi(xf,yf,'R',arr)
// fmt.Println(string(kong[7]))
for i:=0; i<8; i++{
xf,yf=yi(xf,yf,kong[i],arr)
// fmt.Println(xf,yf)
// func yi(x,y int, i int, s string, a *[5][5]int) (x1,y1 int){
}
fmt.Println(xf+1,yf+1)
}
我试图弄清楚,但我需要找出问题出在哪里。你能帮我弄清楚吗(我不知道教授使用的用法)
解决方法
如果我理解正确的话,我想你的代码可能忘记使用品种。在代码中,您写道:
for i:=0; i<8; i++{
xf,yf=yi(xf,yf,kong[i],arr)
// fmt.println(xf,yf)
// func yi(x,y int, i int, s string, a *[5][5]int) (x1,y1 int){
}
我认为8是一个主观的const
,我认为它应该改变。
这是我的解决方案,希望对您有所帮助:
package main
import "fmt"
func yi(x,y int, s byte, a [][]int) (x1,y1 int){
switch(s){
case 'L':
for{
if y==0 || a[x][y-1]==1{
return x,y
}
y--
}
case 'R':
for{
if y==4 || a[x][y+1]==1{
return x,y
}
y++
}
case 'U':
for{
if x==0 || a[x-1][y]==1{
return x,y
}
x--
}
case 'D':
for{
if x==4 || a[x+1][y]==1{
return x,y
}
x++
}
}
return x1,y1
}
func main() {
var x,y,xc,yc,count int
fmt.Scanf("%d %d",&x,&y)
fmt.Scanf("%d %d",&xc,&yc)
fmt.Scanf("%d",&count)
// s:= make([]int,1,1)
i:=count
// }
arr := make([][]int, x)
for i := 0; i < x; i++ {
arr[i] = make([]int, y)
}
// var arr [6][6]int
for j:=0;j<i;j++{
var xt,yt int
fmt.Scanf("%d %d",&xt,&yt)
arr [xt-1][yt-1]=1
}
// for i:=0;i<x;i++{
// for j:=0;j<y;j++{
// fmt.Print(arr[i][j]," ")
// }
// fmt.Println()
// }
var kong string
fmt.Scanf("%s",&kong)
xf,yf:=xc-1,yc-1
// xf,yf=yi(xf,yf,'R',arr)
// fmt.Println(string(kong[7]))
for i:=0; i<count; i++{
xf,yf=yi(xf,yf,kong[i],arr)
// fmt.Println(xf,yf)
// func yi(x,y int, i int, s string, a *[5][5]int) (x1,y1 int){
}
fmt.Println(xf+1,yf+1)
}