1 2
8 9 10 11
Post subject: Stole 3 records :P
Editor, Player (53)
Joined: 12/25/2004
Posts: 634
Location: Aguascalientes, Mexico
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 :)
I'm the best in the Universe! Remember that!
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
flagitious wrote:
To me it makes more sense to base it more on who can figure out the optimal path first.
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?
As it is now, if you are good at kicking all you have to do to steal a record is beat some level using the worst path in the world then you can look how the record holder does it then you can just copy it exactly but kick slightly better. Then whoever figured out the smart path gets no credit.
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?
Besides I would consider this a fault in the controls, its not intuitive and why would you ever want to cancel a kick?
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.)
Good games have good controls, you do not see Link canceling his sword swing if you move too soon.
Kicking can be a mistake which forces you to restart the level. Swinging a sword in Zelda probably isn't.
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
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.
No experience for
##############
#**@ #     ###
#**  #  @ P@ #
#@*  # ####  #
#**      ##@ #
#**  # #    ##
###### ##  @ #
### @   @@@  #
###    #     #
##############
  Compressed: 38 17 36 39 43 67 95 102 106 107 108
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 :-/
Joined: 4/16/2005
Posts: 251
I think you dropped a "-1" when you carried the algorithm over:
compact += Binom::Choose(MaxCoord-Last, MaxBox-nbox);
should be:
compact += Binom::Choose(MaxCoord-Last-1, MaxBox-nbox);
EDIT: nevermind, I see it now.
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
I didn't drop it accidentally. You should notice that Last is set to Coord+1. a-b-1 equals a-(b+1).
Post subject: Re: Stole 3 records :P
Joined: 4/16/2005
Posts: 251
samurai goroh wrote:
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 :)
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...
Player (200)
Joined: 7/6/2004
Posts: 511
Warp wrote:
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.)
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.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Player (200)
Joined: 7/6/2004
Posts: 511
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
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
flagitious wrote:
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?
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.
Player (200)
Joined: 7/6/2004
Posts: 511
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?
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
flagitious wrote:
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.
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.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Seems like my challenges on 5-3, 11-4 and 12-3 have got no response. Have Gorash and Samurai simply got tired of playing this game already?-)
Post subject: Can't play in weekdays...
Editor, Player (53)
Joined: 12/25/2004
Posts: 634
Location: Aguascalientes, Mexico
Warp wrote:
Seems like my challenges on 5-3, 11-4 and 12-3 have got no response. Have Gorash and Samurai simply got tired of playing this game already?-)
Nope, but I have school... not much time to play in weekdays... BTW Bisqwit, how does the Bounty works & for what?
I'm the best in the Universe! Remember that!
Joined: 4/16/2005
Posts: 251
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.
Post subject: Re: Can't play in weekdays...
Editor, Active player (296)
Joined: 3/8/2004
Posts: 7469
Location: Arzareth
samurai goroh wrote:
BTW Bisqwit, how does the Bounty works & for what?
Read the BisqBot page for details.
Joined: 4/16/2005
Posts: 251
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.
Joined: 4/16/2005
Posts: 251
5-3 is mine again:
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.
Banned User, Former player
Joined: 3/10/2004
Posts: 7698
Location: Finland
Now 5-3 starts to look like something I can be happy with.
Player (200)
Joined: 7/6/2004
Posts: 511
woot first record, on 12-5:
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.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Joined: 4/16/2005
Posts: 251
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...
Player (200)
Joined: 7/6/2004
Posts: 511
Thanks, I will work at improving the execution. Here is an explanation of the sig: http://www.wam.umd.edu/~darreon/mycode/pi/info.html
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Joined: 4/16/2005
Posts: 251
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. :)
Player (200)
Joined: 7/6/2004
Posts: 511
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.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
Joined: 4/16/2005
Posts: 251
flagitious wrote:
11-3 beat due to minor route changes, saving a total of about 20 steps at the cost of a couple pushes/kicks.
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
(3.7 seconds worth of errors... well it's late)
Player (200)
Joined: 7/6/2004
Posts: 511
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.
g,o,p,i=1e4,a[10001];main(x){for(;p?g=g/x*p+a[p]*i+2*!o: 53^(printf("%.4d",o+g/i),p=i,o=g%i);a[p--]=g%x)x=p*2-1;}
1 2
8 9 10 11