Bender - Episode 1 - Puzzle discussion


#21

Send you an email. Thanks!


#22

Hi,

I have also a problems with test LOOP,
I have some difficulties to understand when i have to print “LOOP”.
the explication just says “the code have to print LOOP when Bender can’t reach $”
Is it before Bender enters in a place that creates the loop?
Or i have to move Bender in the place that creates the loop and I print at next step “LOOP”?

Is it possible to add an example of LOOP in explication?


#23

Is it possible to add an example of LOOP in explication?

There is already one at the bottom of the statement.
Here are the links:
http://www.codingame.com/ide/fileservlet?id=636610339952
http://www.codingame.com/ide/fileservlet?id=636629096984


#24

OK, i didn’t see them


#25

Passed 100% by finding loops using the following mindblowing algorithm: If(moves>200){cout<<“LOOP”<<endl;}

Seems truely legit


#26

Bender really should drink the beer. If he does not drink it how he goes in breaker mode. Also I don’t get it how beer stays still on the map. That’s not good science fiction, infinite beer is just wishful thinking, no one can really believe it. It took me several days to solve this just because of this.


#27

I’ve got a small problem : I pass all tests (except the last one since I did not handle loop yet), they’re OK.
But… When I submit my code, two tests fail : the very first one and the “casseur”'s one !
How is it possible to debug it, since I don’t have a clue of what went wrong ?


#28

From my experience, it seems like the validation tests are not square maps. Are you sure you did not invert the lines and columns of the map?
(I fixed this bug in my code and it validates fine now)


#30

Bonjour !
Ceci est un appel à l’aide, :smiley:
En fait simplement le code proposé au départ en PHP ne fonctionne pas :’(

Notice: Use of undefined constant C - assumed 'C' in the answer code
at line 13 

J’ai donc essayé naturellement de remplacer

$row = stream_get_line(STDIN, C, "\n");

Mais cela ne me lit pas correctement le flux (1 ligne sur 2 est renvoyée vide)

Par

 $row = stream_get_line(STDIN, $C, "\n");

Le Probleme étant que $C correspond a priori au nombre de colonnes sans compter les bord extérieurs du niveau.
J’ai donc utilisé :

$row = stream_get_line(STDIN, $C+2, "\n"); 

Pour que ca fonctionne.
Bonne journée (nuit ?)


For english speakers :
In PHP replace original line 13 by :

 $row = stream_get_line(STDIN, $C+2, "\n"); 

To parse the input :wink:

Have a good day (night ?)


#31

En effet, le code généré ne fonctionne pas @FredTreg
Et le fix que tu as fourni parait juste (sauf que le +2 n’est pas nécessaire etant donné que bender est toujours dans une boite fermée)

P.S: Si tu veux parler en français, n’hésite pas :wink: pas la peine de faire la traduction par contre, ça allonge le post, et tout le staff comprends l’anglais et le français, donc choisi juste la langue que tu préfère pour le post, personne ne te blâmera :slight_smile:

EDIT: Mais c’est vrai que tu n’a pas tout copié-collé, donc my bad :wink:


#32

Oui je me doutais que le staff comprend les deux. (Je suis Montpellierain aussi)
Si j’ai mis une petite partie “in english” c’est surtout si un anglophone a le même souci. (Et pour pas allonger j’ai pas tout traduit :blush: )


#33

From the PHP documentation of stream_get_line:

Each line has length of $C characters + the EOL. When you call stream_get_line(STDIN, $C, "\n") for the first time, it will indeed read $C characters but it won’t consume the EOL so the next call will immediately see this EOL and return an empty string.

When you want to be sure to read the whole line, you can use fgets(STDIN) then trim the EOL.


#34

This one was probably the most fun so far =)


#35

Salut salut !
Je suis un peu perdu sur les tests de validation du bender dépressif, de mon coté je ne passe pas "simples mouvements, ni mode casseur, ni boucles multiples ( boucles multiples je ne le passe pas dans les tests IDE donc ok … ) mais mode casseur et mouvements simples, je les passe tous… Qu’y a t-il avec l’étape de validation ?


#36

Utilise la sortie d’erreur standard pour débuguer et regarder ce qui se passe et à quel moment ça coince.
J’ai pu ainsi résoudre la manière de gérer les boucles qui faisait planter le test de la bibine.


#37

Les tests de validation différent des tests de l’ide, il est donc normal que tu puisses avoir des résultats différents pour des tests ayant la même description, même si les tests de l’ide sont censés t’aiguiller vers la résolution de bug.

Sinon, effectivement, comme le dit nicolas_patrois, utilise la sortie d’erreur standard avec différents tests, affiche le labyrithe, les informations concernant chaque étape, et aide toi de la description des tests que tu ne passes pas pour deviner quel labyrinthe créer pour tes tests manuels.

En ultime recours, publie le code sur ideone.com, et envoie moi un mail (comtealexis[at]gmail[dot]com).


#38

Bonjour à tous. Je crois que je suis dans la même situation. Je passe tous les tests en IDE, et la publication ne valide pas les tests “simples mouvements” ni “mode casseur”, qui sont parmi les plus simples. Je vais chercher un peu plus et je reviens ici si je trouve d’où vient le soucis.
A+


#39

I guess I found why some guys passed all the validation test cases except the first simple one. You have to make sure that your code pass the following tricky case

####
#@$#
####

#40

Hi.
Thanks, i think this test make me pass the “simple movement” test. I had a bad choice too in the “Broker” test. So 100% now. Thx for help.


#41

Solved ! See eng_nabilion555 post.