Nullpomino exercise modes

Started by belzebub, November 26, 2011, 06:17:23 AM

Previous topic - Next topic

belzebub

You can download my mod here: http://harddrop.com/forums/index.php?showtopic=4162

I am currently changing the NP code locally to have some practice modes.

This what I have now already:
  • finesse: detection for non-optimal piece placements
  • minimal speed setting making the frame and the pps go red if you are under it or adding a red border to the playing field
  • added indication of ppm (next to the pps)
  • sprint mode with limited set of pieces (like sprinting with all I's or L's), to exercise on some piece placements (I have most problems with some L/J-rotations and vertical I placements)
  • sprint mode where the random generator always generates well known composition of blocks (like LOJ), currently I did those combinations: http://tinyurl.com/d76vkv4
  • a combo mode for I placements e.g. you can do a combo race with a 1 wide gap on the 9th column where the random generator only generates I pieces, you can then change gaps to exercise I placements with optimal finesse
Demonstrations:
finesse: http://www.youtube.com/watch?v=UpFgLeN24Uo
sprint speed minimum limits: http://www.youtube.com/watch?v=tT94WXfgKTU
http://www.youtube.com/watch?v=UwWpOXPCPRw

I am now thinking of the following:
  • creating a practice combo mode for every specific piece (with garbage and holes to fit the piece in)
  • adding more statistics like Caffeine's mKPT
  • adding specific random generators to exercise on some openings
If was wondering if anybody else would be interested in those things (as I'm doing it for my own practising atm). And maybe if anybody has nice ideas :-)

I'm trying to optimize my speed now, I just got sub60 so I'm a beginner. I always suppose all of you already know all the piece compositions and play with perfect finesse and nobody will be interested in practice modes :-)

Videos
Finesse
(the mod now has the full matrix for 2-step finesse as is on the wiki, video has an old matrix, just for demonstration)


Sprint speed feedback with color


Infinite dig practice mode (with connected garbage, multiplayer s(t)imulation, good for warmup)

caffeine

#1
Cool idea. I like the "detection for non-optimal placements." It seems pretty straight forward: for all possible placements, there's a maximum number of inputs needed to get the piece there. If that number is exceeded, it's suboptimal. Playing without shadow and "blind" active piece was very helpful to me for learning 2-step finesse, so you might try that, too.

I've played with minimum TPM trainers before. You can do it on Tessellate, and I've messed with my own scripts in the past.  This method "forces" a hard drop, but I think it'd actually be better if the game just ended if a piece exceeds x number of frames without being placed. This would force the player to be focused at all times. You'd probably want to start at a high setting that you can complete, and then you decrease x one by one only after completing a 40L run to see how low you can go.

Lucho

-adding detection for non-optimal piece placements

That would be great
[div align=\\\"center\\\"][spoiler]
Funky Ruskie[/div][div align=\\\"center\\\"] [/div][/spoiler]

xlro

#3
good ideas, and nice to see you looking into the code more

I especially like:

- adding a minimal speed setting and making the pps go red if you are under it or adding a red border to the playing field
I'd use that by default for playing 40L, just seems like a cool addition, also the idea of ending the game if pps < cut-off for a sepcified window time

- adding detection for non-optimal piece placements
This would be a very intersting stat to calculate, that could actually also have a value attached, like caffeine described. I'd definitely like to know my value and see how I compare to the really good players, might they just be fast or have perfect finesse.
My appraoch would be to calculate the delta for each piece placement, between the minimal number of inputs needed to put the piece there and the number of actual inputs used. Then just make a running average over the deltas, and display it on the side. That would be a real pro-meter tbh.
[div align=\\\"center\\\"]NullpoMino[/div]

vipjun

#4
interesting modes , i would be interested in practicing with it.

maybe an infinite downstack mode where you start 10lines high and for each line you clear a new 1 comes out.

Does optimum placement mean 2step finesse ? or is there more to it than that?

Paradox

#5
I want to take change APM so that it actually means actions per minute ~

also I don't see any mode that calculates attack per minute anyway btw

Also TPM is much better than PPS imo. I want to see nice whole numbers. 210 and 220 are very distinct barriers but no one really pays attention to the difference between 3.5 and 3.6 (Which is the same) because when I see pps i'm mostly concerned with the whole numbers like 3 and 4 pps.  


also  you for making changes belzebub
[!--ImageUrlBegin--][a href=\\\"http://oi46.tinypic.com/2zqx63k.jpg\\\" target=\\\"_new\\\"][!--ImageUrlEBegin--][img width=\\\"400\\\" class=\\\"attach\\\" src=\\\"http://oi46.tinypic.com/2zqx63k.jpg\\\" border=\\\'0\\\' alt=\\\"IPB Image\\\" /][!--ImageUrlEnd--][/a][!--ImageUrlEEnd--]

belzebub

#6
Really nice and interesting reactions!

Ok I added colors, green is good speed, orange is danger zone (too low), red is too low. Example with boundaries 90 ppm and 100ppm: http://www.youtube.com/watch?v=b5BW8Ngk3iU

I implemented the I combo race, but i can't get more then 1.5pps with das to wall, rotate right, harddrop, screwed up video here: I combo race on column 9

Lot of people seem to be interested in "detection for non-optimal placements". I like the idea of Caffeine to calculate the delta's. However I was thinking more of using it as a statistic instead of making it "game over" like. The running average seems a nice statistic to have. I don't really know the difference between al the finesses to answer Vipjun's interesting question. I was thinking of something basic first. Also I did not mean to add AI to it so that eg the algorithm could take into account "if you put the L there, the next J can fit in an easier location". Just a stat to see how efficient you are moving.

One addition maybe is that I would be interested in also having that stat per piece, so you can quite easily detect suboptimal placements per piece. (Like everything is ok, but you screw up your L and J placements).

@Paradox: I added the pieces per minute stat like this, what do you think? http://imgur.com/PdzoR I actually like this really much because I'm currently around 100 and it's some magical boundary to cross for me to get sub60.


Magnanimous

Quote from: belzebubOk I added colors, green is good speed, orange is danger zone (too low), red is too low. Example with boundaries 90 ppm and 100ppm: http://www.youtube.com/watch?v=b5BW8Ngk3iU
Wow, this is great! I would've loved this back when I was training in 40L. One suggestion to make the green/orange/red shift more obvious: maybe change the border of the field (currently red) to match the TPM color? Keeping the TPM in your peripheral vision might be a little harder.
Best 40 Lines: 37:74 (162.18 TPM) on NullpoMino

belzebub


Ok I changed it so the border turns green/yellow/red and made a video of me explaining how it works.

Nullpomino soft and hard limits for sprint

I also added an alarm that can be toggled on and off to make you hurry even more if you drop below the hard limit.

Next I will be looking at is the detection for non-optimal piece placements!

Alexsweden

Wow, I already hate that alarm sound

But that was really good stuff right there!

Paul676

#10
Quote from: Paradox

Also TPM is much better than PPS imo. I want to see nice whole numbers. 210 and 220 are very distinct barriers but no one really pays attention to the difference between 3.5 and 3.6 (Which is the same) because when I see pps i'm mostly concerned with the whole numbers like 3 and 4 pps.  


agreed so much on this. An option to have tpm instead of pps would be amazing.

EDIT: having read the whole thread, this is amazing. Is there a download link for any of this? The edge colour change is also brilliant thinking.
               Tetris Belts!

farter

a speed curve of pps/tpm (which cubestorm already has), and option for "draw the speed of [every 5 tetrominoes on average, every second, every single tetromino, etc...]" would be fine.

belzebub

Quote from: Alexsweden
Wow, I already hate that alarm sound

But that was really good stuff right there!

It's the hurry up sound, can be any sound in fact :-) Thanks!!!

Quote from: Paul676
agreed so much on this. An option to have tpm instead of pps would be amazing.

EDIT: having read the whole thread, this is amazing. Is there a download link for any of this? The edge colour change is also brilliant thinking.

Thanks Paul, I'd love to share my additions with the community, glad there is interest!

Quote from: farter
a speed curve of pps/tpm (which cubestorm already has), and option for "draw the speed of [every 5 tetrominoes on average, every second, every single tetromino, etc...]" would be fine.

Can you elaborate on this a bit more? Looks like you want an api or something? I thought about those curves and diagrams, but I'm thinking it would be maybe a good approach to use the replay file as input for another program to parse them...

XaeL

Quote from: belzebub
It's the hurry up sound, can be any sound in fact :-) Thanks!!!
Thanks Paul, I'd love to share my additions with the community, glad there is interest!
Can you elaborate on this a bit more? Looks like you want an api or something? I thought about those curves and diagrams, but I'm thinking it would be maybe a good approach to use the replay file as input for another program to parse them...
it would be excellent for nullpo to have a companion program that parses replays and draws graphs showing ur stats.



QuoteLike many setups here, it is useful if your opponent doesn't move and you get 4 Ts in a row.

farter

Quote from: belzebub
It's the hurry up sound, can be any sound in fact :-) Thanks!!!
Thanks Paul, I'd love to share my additions with the community, glad there is interest!
Can you elaborate on this a bit more? Looks like you want an api or something? I thought about those curves and diagrams, but I'm thinking it would be maybe a good approach to use the replay file as input for another program to parse them...
i mean a moving curve with some grids like the cpu usage curve of windows "task manager", which shows the real-time speed when playing.

and another idea for dig race/challenge:
garbage lines of checks

|                    |
|                    |
|                    |
|                    |
|                    |
|                    |
|                    |
|                    |
|                    |
|                    |
|[]  []  []  []  []  |
|  []  []  []  []  []|
|[]  []  []  []  []  |
|  []  []  []  []  []|
|[]  []  []  []  []  |
|  []  []  []  []  []|
|[]  []  []  []  []  |
|  []  []  []  []  []|
|[]  []  []  []  []  |
|  []  []  []  []  []|
'^^^^^^^^^^^^^^^^^^^^'


that would be real challenge  
10 lines will be terrible enough