首页 >后端开发 >Golang >我的代码可以通过3次使用,但我不知道为什么我不能通过另一个

我的代码可以通过3次使用,但我不知道为什么我不能通过另一个

WBOY
WBOY转载
2024-02-09 11:45:08963浏览

我的代码可以通过3次使用,但我不知道为什么我不能通过另一个

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)

}

以上是我的代码可以通过3次使用,但我不知道为什么我不能通过另一个的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:stackoverflow.com。如有侵权,请联系admin@php.cn删除