This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
Bomb Bloke's profile picture

[MC1.8+] Pipe Mania

Started by Bomb Bloke, 15 May 2016 - 12:47 AM
Bomb Bloke #1
Posted 15 May 2016 - 02:47 AM
pastebin get skcs9x1s pipemania



Requires an Advanced Computer, plus any version of ComputerCraft for MC1.8 or later. Also requires the BLittle API, though it'll attempt to download it automatically if it's missing. Should be fully playable on an external monitor (via the monitor script).

Pretty simple, you click around the playing area to place pipes from the dispenser on the left. Once the timer on the right empties, the "flooz" starts to flow; run it through the pipe for at least the specified distance in order to reach the next level.

50 points are awarded for each pipe the flooz runs through, doubled once the specified distance is reached and / or if the fast-forward button is pressed. 500 points are awarded for each junction crossed twice. 50 points are lost for placing a pipe over an existing one, and 100 are lost for each unused pipe remaining once the flooz spills.

Subsequent levels reduce the time before the flooz starts moving, and every second level increases the pipe distance requirement.

The game can optionally be started in kiosk mode (disabling the ability to quit) if started with the "-k" parameter.

Version History2016/05/06
1.0.0
Initial release.

2016/08/07
1.0.1
Fast forward button highlights when active.
Edited on 06 August 2016 - 01:39 PM
DannySMc #2
Posted 01 June 2016 - 06:34 PM
As I think you lost all your replies in the latest incident let me say that this is really fun to play!! Nice job!
Bomb Bloke #3
Posted 02 June 2016 - 02:52 AM
I did, but no big deal. Thanks though. :)/>
DannySMc #4
Posted 02 June 2016 - 05:10 PM
I did, but no big deal. Thanks though. :)/>

You have no idea, this is like my favourite game on CC haha, I used to play these types of games on my phone. You should make some more like it, more puzzle based :P/>.
DarkEyeDragon #5
Posted 26 June 2016 - 05:20 PM
You sir. Are amazing. I clap for you xD You're legit the most creative and random person on this forum. And probably one of the better coders aswell. Where did you learn how to code (lua)? And any tips you could give for a newbie?
Bomb Bloke #6
Posted 27 June 2016 - 03:50 AM
Aw, you flatter me. ;)/>

ComputerCraft was my introduction to Lua; but I actually learned to code on a BBC Micro (with the monochrome-green display and everything), typing in programs out of library books. Moved from there to QB (which has a great IDE; you can right-click on most any given keyword, and up comes the help system with a page of detail and source for an example program making use of it). Then to Java, which has too many methods and needs automated tools to write its documentation…

So I'm self-taught with no official training, and there's a lot I don't know.

But here's your random tip for the day; try and learn about some older file formats. Programming boils down to your ability to abstract a concept and reflect it in code - writing code that follows the obvious steps towards your goal often isn't the best way to do things (and leads to naive programming). Coming up with something that appears completely disjointed from the problem at hand can often lead to a much better solution (in terms of execution efficiency as well as overall length of code) - but you don't actually have to be "creative" to use any such tricks! It's perfectly valid to learn them from other programmers, and well-written file specifications tend to be text-book guides towards such new ways of thinking. They not only tell you how the bits and bytes are ordered, but why. :)/>

Compression's a great example of abstraction. One of my favourite old guides is this one detailing LZW compression.
DarkEyeDragon #7
Posted 28 June 2016 - 10:31 AM
Aw, you flatter me. ;)/>

ComputerCraft was my introduction to Lua; but I actually learned to code on a BBC Micro (with the monochrome-green display and everything), typing in programs out of library books. Moved from there to QB (which has a great IDE; you can right-click on most any given keyword, and up comes the help system with a page of detail and source for an example program making use of it). Then to Java, which has too many methods and needs automated tools to write its documentation…

So I'm self-taught with no official training, and there's a lot I don't know.

But here's your random tip for the day; try and learn about some older file formats. Programming boils down to your ability to abstract a concept and reflect it in code - writing code that follows the obvious steps towards your goal often isn't the best way to do things (and leads to naive programming). Coming up with something that appears completely disjointed from the problem at hand can often lead to a much better solution (in terms of execution efficiency as well as overall length of code) - but you don't actually have to be "creative" to use any such tricks! It's perfectly valid to learn them from other programmers, and well-written file specifications tend to be text-book guides towards such new ways of thinking. They not only tell you how the bits and bytes are ordered, but why. :)/>

Compression's a great example of abstraction. One of my favourite old guides is this one detailing LZW compression.

Thanks bunch for taking the time to write this! Its very informative and I'll try out some new things. The issue i have right now though is that i don't know what to make. I'm out of idea's to make programs for. I guess I should probably try to make a program for the most stupid things? Anyway, thanks again for being such a great help xD
nitrogenfingers #8
Posted 05 August 2016 - 03:29 AM
I've never been good at pipemania. I don't think I even cracked your default top-10 scores.

Had a lot of fun playing it though. Really nicely done, cheers BombBloke.

One tiny suggestion- I sometimes clicked the >> a few times because I wasn't sure if it was working or not. If you're using a timer event, you could possibly replace the event with a new one when that button is pressed so you can see the effect immediately, or update the UI somehow?
Edited on 05 August 2016 - 01:29 AM
Bomb Bloke #9
Posted 06 August 2016 - 03:51 PM
The trick is to forget about points and just try to make a long run of pipe; if you try to build a masterpiece you'll inevitably find the bit you need near the start of the pipe doesn't turn up fast enough. So rush, and build something ugly instead. ;)/>

I've tweaked the script so that the fast forward button highlights when active. I've opted to leave the timer alone, as a fast button masher could otherwise exploit it to slow the game (though admittedly, they'd need to be very fast indeed…).