Maison > développement back-end > Golang > Mon code fonctionne 3 fois mais je ne sais pas pourquoi je ne peux pas en passer une autre

Mon code fonctionne 3 fois mais je ne sais pas pourquoi je ne peux pas en passer une autre

WBOY
Libérer: 2024-02-09 11:45:08
avant
959 Les gens l'ont consulté

Mon code fonctionne 3 fois mais je ne sais pas pourquoi je ne peux pas en passer une autre

l'éditeur php Youzi est là pour répondre à vos questions sur le nombre de fois que le code est utilisé. D'après votre description, il semble que votre code ne puisse être utilisé que 3 fois, mais ne peut pas être utilisé par d'autres méthodes. Ce problème peut avoir plusieurs causes, telles que des restrictions de licence sur le code ou des problèmes de conception avec le code lui-même. Pour vous aider à résoudre ce problème, nous vous recommandons de vérifier les informations de licence de votre code pour vous assurer que vous disposez de l'autorisation légale de l'utiliser. Dans le même temps, vous pouvez également vérifier attentivement la conception et la mise en œuvre du code pour voir s'il existe des restrictions ou des conditions qui entraînent une limitation du nombre d'utilisations. Si le problème persiste, nous vous recommandons de demander l'aide du développeur du code ou du support technique concerné, qui pourra peut-être vous fournir une solution plus spécifique.

Contenu de la question

La question est : Little Code joue actuellement à Ice Adventure, un jeu de grille avec n lignes et m colonnes. Il y a des obstacles insurmontables sur certaines grilles, et le reste des grilles est constitué de glace lisse.

Les joueurs forment des alliances sur une grille accessible et restent stationnaires. Il suivra ensuite le personnage dans ses déplacements de haut en bas, à gauche et à droite ; lorsqu'il maintiendra le personnage enfoncé pour se déplacer dans une direction, le personnage glissera sur la glace. La nature vous a demandé de monter ici jusqu'à ce qu'il y ait un obstacle dans la grille suivante dans la direction du mouvement du personnage ou qu'il dépasse la limite de la carte. Ensuite, la surface continuera d'attendre le prochain mouvement de frère Xiaoyuan.

Maintenant, étant donné les positions de tous les obstacles sur la carte, la position initiale de la petite cour et la séquence d'actions de la petite cour, veuillez trouver l'emplacement final de la petite cour.

Voici mon 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)

}
Copier après la connexion

J'essaie de comprendre, mais je dois découvrir quel est le problème. Pouvez-vous m'aider à comprendre (je ne connais pas l'utilisation utilisée par le professeur)

Solution de contournement

Si je comprends bien, je pense que votre code a peut-être oublié d'utiliser des variétés. Dans le code, vous écrivez :

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

    }
Copier après la connexion

Je pense que 8 est subjectif const et je pense qu'il devrait être modifié. Voici ma solution, j'espère que cela vous aidera :

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)

}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal