首頁 > 後端開發 > Golang > 我的程式碼可以通過3次使用,但我不知道為什麼我不能通過另一個

我的程式碼可以通過3次使用,但我不知道為什麼我不能通過另一個

WBOY
發布: 2024-02-09 11:45:08
轉載
959 人瀏覽過

我的程式碼可以通過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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板