Just in case nobody notices, I set a record on levels 11-3 & 12-4. For the 1st one, I'm not sure if my strat was really faster because I think it was made before removing the lag & for the 2nd one, didn't realized it was a better strat & almost sub 2 minutes...
The bright side of getting erased the cookies is that you'll have to try all the levels you beat before one more time & sometimes get to see something that might help improving the current path :)
Edited: As a side note, I found out that currently I'm the one that holds more records :)
Samurai G. 22
Gorash 17
Warp 14
xebra 6
Blublu 1
Edit 2: Now I got level 6-1, dunno if Gorash path + my ideas would be faster than the path I chose, but I sub 3 minutes that level :)
Then with many levels it becomes a question of timezone. Those who are awake and playing the game will have an advantage over those who are sleeping or simply not playing the game at that moment. So the one who happens by chance to get to play the level with the new kicking first gets the jackpot. It's like a lottery. It shows minimal skills and tons of luck.
Is that really what you want?
The correct solution to this problem would be to keep the movies unpublished, not to build a lottery to see who gets to play the level first.
However, do we want to keep the movies unpublished?
I have cancelled kicks on purpose (after starting a wrong kick by mistake) even in record submissions. Others have done that too. It's not like it's a completely useless and irrational feature. (Whether it's the best way to handle it is another question, but it's not a completely useless feature.)
Kicking can be a mistake which forces you to restart the level. Swinging a sword in Zelda probably isn't.
Hmh, it still doesn't work... after 122925844 analyzed board positions, it bails out saying that the position it was supposed to handle next wasn't seen yet.
Because the bug persisted over changing the method the board positions are indexed, the cause of it must be either in the radixtree implementation or the filebacked ring buffer...
Edit: I think I found a bug in the ring buffer implementation. It reused deallocated pointers...
Edit 2: Nope, it still doesn't work :-/
Actually that route is 70% Warps and only some minor stuff is mine. I've seen your new one and if you beat the old video with that performance your path must be a lot better ;)
Looks promising...
Alright forget it kicks, should stay the way they are. But I really think it should keep a record for who discovered the current fastest path first. This is the last I will speak of such topic, because I'm just distracting from what looks like a good discussion of coding techniques.
In writing a program to solve this and I have made some progress, but still a long ways to go in order to beat some of the levels bisqbot has beaten. I think I understand how to calculate the time it takes to do something, but there are 2 special cases that arise in which there is no bisqbot result to draw a conclusion from, they are:
1. If you start the level with a push you do not have to pay the 0.05 second push startup?
2. If you finish the level with a kick, then the rounding up for the sliding of the kick is applied only once, not after each square it slides?
My guess is that 1. is true, I just want to make sure. For 2. I think this is true too, but the only movies that end in a kick it kicks for a distance of 2 or 3. So for these cases it is impossible to tell if maybe the way it calculates the time is after each square it slides it rounds, but then at the end it subtracts 1, not likely but again, I just want to make sure.
Also do you have available for download text versions of all the levels? It would save me alot of time when I get to the point that I can solve more levels. I have not looked into seeing if I can somehow rip them from the page, but this is probably more work than typing them up manually. Its fine if this is not available, just hoping maybe it is.
Thanks
1. The timer starts from first walking or pushing event. Grabs, kick preparations and facing changes don't start the timer.
2. The level is finished when the box being kicked arrives its goal. The time used by the kicked box is RoundUp(length * KickedBoxSpeed). That is, rounded only once.
> Also do you have available for download text versions of all the levels?
You can find them from the javascript source code. Search for "var maps". Each level is a 19x16 array of numerical values between 0..7. Bitwise: 0=wall,1=walkable,2=outside, 4=blunder zone.
Thanks for the answers and advice on getting the levels, I was able to get them all into a format I can use without too much hassle.
I was testing my program on some of the easier levels and I noticed an oddity in level 2-2.
In level 2-2 bisqbot pushes a block to the right, then a different block down twice. It doesn't pay the 0.05 second startup when it switches between pushing right and down. When I tried playing the game by hand, it wouldn't let me do the same.
I think this is a bug, but perhaps it is the way it is supposed to be?
Edit: After playing more I can do it by hand, the trick was to just start turning towards the end of the push. Is this a bug or should I update my program to account for it?
Here is the timing:
@frame 72: walk to 142 (facing right)
@frame 78: grab
@frame 80: push
@frame 92: face down (real players can do this facing event while pushing - BisqBot cheats here a bit by doing the facing after pushing, but the net effect is the same)
@frame 92: push
@frame 104: push
@frame 116: ride to the sunset
Edit: Now that you mention it, it's actually strange. I have certainly not _planned_ it like this. There should be a grab in between the pushes to different directions. But incidentally, it just works like this, in both BisqBot and the game.
In the game, the grab event is only generated if Peter has assumed a non-pushing position (which doesn't happen if the player is pushing against a block at the moment a push ends), and in BisqBot, the grab event is only generated if the last move was a kick or some steps were walked.
I'm still here, just have been busy with other stuff, and right now I'm sitting at my parents place where I have no cookie again.
Btw. good to see you announcing you records finally. It's tiresome to have to review every level everyday to see what changed. Also I thought my 5-3 wasn't that bad... I'm eager to see what you changed.
So you saw the response on 5-3 Warp.
I see... I knew there was some stuff left in it, but a mere 2 seconds??
Just you wait...
EDIT: Your 12-3 also isn't safe:
Steps 320 322
Pushes 50 63
Kicks 44 41
Block Moves 94 104
Played by you Warp
I only have to practice execution of it...
2nd EDIT: Executed it, 4,8s worth of errors are left in this one.
Time 2:52.36 2:57.33
Steps 635 654
Pushes 118 120
Kicks 26 25
Block Moves 144 145
Played by Gorash Warp
3.0s worth of error in the execution.
Improvement came solely from the order of the blocks on the left side, Warp's sorting in the goal area was absolutely marvellous, not a single frame to shave off.
Time 5:48.00 5:54.43
Steps 1220 1264
Pushes 303 329
Kicks 36 33
Played by flagitious Blublu
I am a little inexperienced with the mouse, it is very difficult to play that long without errors.
Also I have been working on an optimal solver, so far nothing new. Recently it solved 6-2, but unfortunately it probably gave a non optimal solution because it is slower than the optimal route reported by BisqBot. But it seemed to work correctly for levels 1-1 to 3-1. Level 6-2 took about 6 hours, so if this indeed a bug it is going to be hella hard to debug.
Nice route improvement, but still try to get the execution a little better.
From the Moves/Steps Diff you should easily get that down to a 5:42:xx time.
Btw. I'm sure someone asked it before, but what does the number series your signature generates mean? I reverse engineered it a bit, but not to a point where it makes sense...
In that case my windows screws it up somehow, at my comp the sequence starts with 2014169.
No wonder I couldn't figure it out...
EDIT: Yes, the windows version works. :)
11-3 beat due to minor route changes, saving a total of about 20 steps at the cost of a couple pushes/kicks. Also now all of xebra's records are unbeatable, yet no one else has any unbeatable records. It would be nice to have an unbeatable record, but all the levels left require alot of kicks or a kick-push which I think is practically impossible to do without a 1 frame loss, if not entirely impossible.
Ah, right, I remember. samurai goroh stole this one from me.
I took the liberty of shaving off 2 steps (on top of your 2 error steps) and another 3 pushes.
Feel free to further improve it.
Time 2:00.26 2:02.56
Steps 442 446
Pushes 35 38
Kicks 38 38
Block Moves 73 76
Played by Gorash flagitious
Good block sorting method. I Improved route by 2 more steps and slightly less error, so record is under 2 mins now.
Also I must thank bisqwit for this game, it is really great, and the replay stuff works wonderful with no apparant bugs. But I have noticed very slight bug in game play. If you click at the exact moment of a kick nothing happens. The time period for this to happen is less than 1 frame though and it has only happened to me about 8 times total. At first I thought I was mis clicking or clicking a wall, but more recently I made clicks that I am 100% sure were valid and nothing happen. It is not the end of the world if this is not fixed because it is so rare and can be circumvented by the player by using double clicks. Anyways thanks again.