Posts for flagitious


1 2
13 14 15
20 21
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
138 = ((((9 - (9 / ((9 + 9) + 9))) * (9 + 9)) - 9) - 9) The smallest positive integer there is no 9 9s for is 195 according to my program. Gorash, your program is impressively short, but I think your error is that you do not allow for fractions, 138 was not found because it needs to do something like 18 * (9 - 1/3) - 18. I made this same mistake too, but in my case I forgot about them completely so I was basically allowing the floor to be done all the time, but then I fixed it to store everything as floats and then at the end see if the final result is an integer. Kind of a messy way to do it, a better way would be to keep track of things as a fraction, but that would be more work =P.
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I just mean the current best time is no longer the fastest of the non optimal known levels. It is possible that optimally it would be faster than all the other levels optimally that aren't optimally known now, but not probable. Ah, that sounded more confusing than it should be, but I don't know how else to word 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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I just realized: this is the same game as sokoban except that instead of your goal being to get blocks to specific spots, it is to get the character to a certain spot(s). Oops not exactly the same since you cannot occupy spaces walls occupy.
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Whoa. Bisqwit, how did you make a bot play that 8 seconds for you? Was it something like patching the emulator to try all possible combinations of inputs from some state, stopping if a goal like x bombs dropped? That seems like it would be difficult, especially the goal recognition.
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Yeah the kick blocker there cost about 50 frames to setup and saves 5 frames each use. It was nice that at least 1 kick blocker could be setup at no cost though. Level 3-5 beat by 5 seconds due to organization of placing blocks in goal so that less trips are needed, plus minor other changes. Level 3-3 beat by 4 seconds by pretty much the same change in strategy. For some reason that glitch 'where when you click right as you kick and you don't walk anywhere' happened to a ton on this level, it was my number 1 cause of aborts, I'm going to try to figure out better why it happens. This level now has the lowest time of any level where the optimal solution is not known. Edit:: 4-2 improved a little, 3-3 no longer fastest non optimal :( Edit2:: 11-1 and 3-2 beat by a couple seconds each, but using very different routes. Edit3:: 4-2 improved more Edit4:: 8-5 beat by almost 1:30, still lots to improve in terms of execution, probable that minor route changes might help too.
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Well I never got to see the 6 frame improvement in 8-1, but I think I can guess what it was. Was it ordering the 4 blocks in the left area so that the new block can be brought in sooner to avoid wasting 2 steps going around it? I improved the level by 18 frames, but in the process I think I made it impossible to do that 6 frame improvement, but hopefully you can find a way to still incorperate it. For 3-5, I am certain of 2 improvements (1 is only 1 frame, the other 1-2 seconds), but the level is somewhat complicated so I'm still searching. 7-2 gave me some headaches first time through. I remember that I would be dumb and not realized a mistake until wasting several minutes, good luck with it, fun to break minute barriers :) Edit:: Ah crap about to fall asleep and I realize how to save 4 steps in 8-1 I think, will get it in morning hopefully. Edit2:: Nope, I could only make it a 2 step improvement, and it cost 5 frames, so savings = 7. (Change was pushing top left block in last to take better advantage of where peter is after putting blocks into finish area. I don't see how, but it might be possible to save 2 more steps taking better advantage of this.
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Well after looking at 4-5 I don't really see any major improvements possible. Some minor things that might save a few seconds are: At the start push block down, and then push right, so you can put that first block down in that group of 4 goals on your way all the way around, not sure, but seems faster. Before going back to the top left around 2:30-2:45 move blocks in the line into the goal, so that when you come all the way around again you can kick up from bottom right. Around 3:00 you go afk or something :) Other than that it looks good, it would take forever to try out all the little things that might or might not save time like I try for other levels. So for now I will bow down to this level. BTW it has the highest bounty of any level. Gorash, I look forward to seeing the improvment in 8-1. Mean while I'll be checking out 3-5, it is pretty short and looks like it has potential time savings.
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I tried pushing that last bottom block up before pushing the other block but it didn't seem to save any steps, maybe I don't understand. I'll try to beat 4-5, but it looks pretty complicated so it will take me a while to analyze. I am still missing 3 levels, in world 10. Also slight improvement made to level 4-1 saving about 18 frames.
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I can't find any further improvements :( Edit:: Gorash, don't know if you had worked on 8-1 because Samurai G. had the record, the other world 8 levels are too long for my time attack taste, but were good puzzles when just playing Time 2:18.03 2:32.96 Steps 479 545 Pushes 131 121 Kicks 19 24
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Ok, I worked on level 8-4, this was one of my favorite levels first time through. Round 1 Fight!
Time 2:28.19	3:03.50
Steps	 547	683
Pushes	110	118
Kicks	  22	18
  flagitious   Gorash
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
new record for 11-4. It was fun going back and forth on 11-3 and we improved the level more than I thought imaginable. Hopefully we can do the same for some other level. This level is improved alot and I don't know if it can be improved more but some parts don't seem clean.
Time	1:56.13	2:00.96
Steps	408	428
Pushes	80	87
Kicks	26	23
   flagitious   warp
BTW bisqwit why did you delete my 10-3, I worked hard on that.
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Small change, but 2 less walks and 1 less kick now. Also I was trying to beat my record on 2-3, thinking maybe a perfect there is possible, I tried hundreds of times and tied 8.16 over 10 times, but no dice. I had a rule that if I ever tied a non perfect record I would keep trying until I beat it, but I think I'm going to have to give up on that one. Also got a good time in 3-1, don't know how, because most of the time I was consistantly way slower than that. Edit:: Sorry Gorash to steal your 10-3 cheaply (I used my program to get the optimal solution) If I find any more optimal solutions with it I won't be cheap again though, well maybe once more if I get a level where there is no BisqBot results yet, but only once more :)
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;}
Experienced Forum User, Published Author, Player (201)
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;}
Experienced Forum User, Published Author, Player (201)
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;}
Experienced Forum User, Published Author, Player (201)
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;}
Experienced Forum User, Published Author, Player (201)
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I think the way the game handles moving platforms is that it does not actually effect speed, instead it just moves you while you are on it. The second you get off, you are the same speed that you were when you got on. So as far as I can tell there is no way to use the platforms to get a boost in speed.
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
I dunno, any game where there is acceleration when you press a direction instead of instant max speed. And where you do not loose speed when in the air or some other equivalent.
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
GWing_02 wrote:
Oh, and flagitious: I'm assuming the backwards-moving platforms no longer have an effect on your speed if you only land on them for a single frame?
That is correct. Has anyone tried to see if in other games speed varies slightly while you are running? It might not be as abusable as doing it through the whole level, but perhaps you could do something like a coast in jump at the end of each level (that is what I did before I knew touching for 1 frame didn't slow you down).
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Cool game, I was sure level 7 was impossible, but then I realized that maybe my browser wasn't playing the game properly. It always moved the thing 2 spots when I pressed the arrow once. I thought that was how the game was supposed to be played lol. Anyways it was very hard like that (try it just any time you press a button press it twice). I'll try it again with a different browser, it should be alot easier now, I was like damn how did people get to level 22.
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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
No, flying is faster than running, and if I understand correctly, doing this trick is the same speed as flying. Actually its still slower than flying, unless you started it from flying, then it would be the same speed. Do you mind sharing the name of the correct rom? Super Mario World (U) [!] Thanks, yes that is 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;}
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Well it looks pretty stupid, but if it is capable of all that foda says I can't wait. On side note, it looks like one advantage of this type of controller is that you can choose which hand to use for which side.
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;}
Post subject: Super Mario World, new trick
Experienced Forum User, Published Author, Player (201)
Joined: 7/6/2004
Posts: 511
Not sure where this should go, so new topic. http://www.wam.umd.edu/~darreon/nnn.smv This movie demonstrates the glitch, but here's some useless jabber: When mario holds a direction his speed is determined by some formula. The simple idea would be to have something like this:
if (holding right) {
    speed = speed + 3
    if (speed > 50) speed = 50
}
else if (on ground) speed = speed * 0.8
This is rather arbitrary, but Super Mario World does not use this formula, instead for the second equation it does something like this: if (speed > 50) speed = speed - 5 Maybe this is done so that if you are moving really fast and you hold to the right you don't instantly lose your speed, who knows. What is important to note is that speed will then fluctuate if you hold right: 50 -> 48 -> 46 -> 49 -> 47 -> 50 Also important to note is that if you're not holding right, your speed is never effected. Therefore getting to max speed and not touching the direction pad is faster than holding right! How much faster? about 3% A few other concerns. This only applies if you are not on the ground, but apparently touching the ground for 1 frame is like not touching it at all. The biggest downfall of all about this is that if you ever press a direction again, it will be like starting running from scratch. So once you start the trick you better finish the level without having to touch the ground for more than 1 frame, or gain so much time before you do have to touch the ground again that it is still faster. JXQ seems to have also discovered part of this trick, that is taking advantage of flying speed while not flying. Its the same thing except instead of running until you are at full speed he flies. This is just as fast as flying but requires the cape to start it of course. Sorry for not revealing this sooner. I wanted to remake the run of Super Mario World and surprise people, but as I started to make the run I kept getting very bad random fadeout time in iggy's castle (15 frames slower). I tried many times (that video is not the original remake I was working on, it was a quickly to get to iggy's castle), but eventually I just gave up. Then I moved and the computer the run was on was in storage. I would be happy if someone were to resume work and make this run. This trick is really pretty minor. But on a game like this where in most cases there isn't much you can do except make sure you're running to the right the whole time it makes a huge difference compared to the fluctuations we are used to. I would bet that there are other games out there that use a similar formula to determine speed and that the same trick could be used on those games. Also note that the formula I gave is probably not the real formula the game uses, but it seems similar in all characteristics.
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;}
Experienced Forum User, Published Author, Player (201)
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;}
Experienced Forum User, Published Author, Player (201)
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;}
1 2
13 14 15
20 21