Heim  >  Artikel  >  Backend-Entwicklung  >  Mein Code funktioniert dreimal, aber ich weiß nicht, warum ich es nicht noch einmal schaffen kann

Mein Code funktioniert dreimal, aber ich weiß nicht, warum ich es nicht noch einmal schaffen kann

WBOY
WBOYnach vorne
2024-02-09 11:45:08915Durchsuche

Mein Code funktioniert dreimal, aber ich weiß nicht, warum ich es nicht noch einmal schaffen kann

php-Editor Youzi ist hier, um Ihre Fragen zur Häufigkeit der Verwendung des Codes zu beantworten. Aus Ihrer Beschreibung geht hervor, dass Ihr Code nur dreimal verwendet werden kann, nicht jedoch mit anderen Methoden. Dieses Problem kann mehrere Ursachen haben, beispielsweise Lizenzbeschränkungen für den Code oder Designprobleme mit dem Code selbst. Um Ihnen bei der Lösung dieses Problems zu helfen, empfehlen wir Ihnen, die Lizenzinformationen für Ihren Code zu überprüfen, um sicherzustellen, dass Sie über die rechtliche Erlaubnis zur Nutzung verfügen. Gleichzeitig können Sie den Entwurf und die Implementierung des Codes sorgfältig prüfen, um festzustellen, ob Einschränkungen oder Bedingungen vorliegen, die zu einer Begrenzung der Anzahl der Verwendungen führen. Wenn das Problem weiterhin besteht, empfehlen wir Ihnen, sich an den Entwickler des Codes oder den entsprechenden technischen Support zu wenden, der möglicherweise eine spezifischere Lösung anbieten kann.

Frageninhalt

Die Frage ist: Little Code spielt derzeit Ice Adventure, ein Rasterspiel mit n Zeilen und m Spalten. Auf einigen Gittern gibt es einige unüberwindbare Hindernisse, und der Rest der Gitter besteht aus Glatteis.

Spieler bilden Allianzen auf einem zugänglichen Raster und bleiben stationär. Er folgt dann der Figur, während sie sich nach oben, unten, links und rechts bewegt. Wenn er die Figur gedrückt hält, um sich in eine Richtung zu bewegen, rutscht die Figur auf dem Eis. Die Natur hat Sie gebeten, sich hier nach oben zu bewegen, bis sich im nächsten Gitter in der Bewegungsrichtung des Charakters ein Hindernis befindet oder es die Grenze der Karte überschreitet. Dann wartet die Oberfläche weiterhin auf den nächsten Zug von Bruder Xiaoyuan.

Anhand der Positionen aller Hindernisse auf der Karte, der Anfangsposition des kleinen Hofes und der Reihenfolge der Aktionen des kleinen Hofes ermitteln Sie bitte den endgültigen Standort des kleinen Hofes.

Das ist mein Code

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)

}

Ich versuche es herauszufinden, aber ich muss herausfinden, wo das Problem liegt. Können Sie mir helfen, es herauszufinden (ich kenne die Verwendung, die der Professor verwendet hat, nicht)

Problemumgehung

Wenn ich das richtig verstehe, denke ich, dass Ihr Code möglicherweise vergessen hat, Varietäten zu verwenden. Im Code schreiben Sie:

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){

    }

Ich denke, 8 ist subjektiv const und ich denke, es sollte geändert werden. Hier ist meine Lösung, ich hoffe, sie hilft:

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)

}

Das obige ist der detaillierte Inhalt vonMein Code funktioniert dreimal, aber ich weiß nicht, warum ich es nicht noch einmal schaffen kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen