Link to Github repo

Not a particularly impressive project in the grand scheme, but I've been messing around with a more challenging version of a game called House Paint that's taken my high school by storm. I have few things planned for the future, but I'm pretty happy with how it's going so far. I wrote it in PT_'s ICE compiler.

The object of the game is simple, but the process of getting there can get hard: fill in every square. (Paint the house!) Every level is procedurally generated and guaranteed to be solvable, but there are some cases where you can "trap" yourself and make the level become impossible, but I'll solve that soon. Any thoughts?
I love that startup menu! Very clever and it fits the game well!
Ooh, very nice. Just played like thirty levels and the game is a lot of fun. Is there a way to restart a level? I tried pressing clear and then hitting continue but it gave me a different level. Maybe you could use a pseudorandom number generator to make the same level each time, or just store the last played level in the appvar. Also, it's kinda inconvenient to exit from the main menu since clear just takes you back to the main menu; maybe you could have it check if you are already on the menu when pressing clear and if so exit the game?
Maybe another goal could be to paint the house in the minimum required amount of moves. You could try calculating that when the level is generated, then display the number somewhere on-screen as a goal for the user to reach. I don't think it should be necessary though, because it might get tedious with the larger levels.
_iPhoenix_ wrote:
I love that startup menu! Very clever and it fits the game well!
Thanks! My parents found it confusing, though, so I think I'll make it more obvious, maybe even turn the title screen into a "tutorial" of sorts.
commandblockguy wrote:
Ooh, very nice. Just played like thirty levels and the game is a lot of fun. Is there a way to restart a level? I tried pressing clear and then hitting continue but it gave me a different level. Maybe you could use a pseudorandom number generator to make the same level each time, or just store the last played level in the appvar. Also, it's kinda inconvenient to exit from the main menu since clear just takes you back to the main menu; maybe you could have it check if you are already on the menu when pressing clear and if so exit the game?
There will be, and yes. I'm trying to make a PRND, but it's turning out to be very difficult. If you have any insight on how to make that in ICE, I'd appreciate it a lot! As far as exiting easier, I'll add that in.
slimeenergy wrote:
Maybe another goal could be to paint the house in the minimum required amount of moves. You could try calculating that when the level is generated, then display the number somewhere on-screen as a goal for the user to reach. I don't think it should be necessary though, because it might get tedious with the larger levels.
Yep, I'm planning on adding different modes, including a progressively more difficult campaign, a timed mode, and limited moves mode.

Now to the meat of this post. A lot of people noted that the game didn't have the same feel as the original because you're constricted to using arrow keys instead of the swiping motion used in the App Store counterpart. So yeah, I'm gonna let you use swiping controls on your calculator keyboard. It sounds weird, but my test software works surprisingly well! It's a little difficult to easily implement into a control loop, so that's why I haven't committed to the repo. To try it yourself, tear off a small piece of paper and put it between your thumb and your keyboard, and try swiping around. It' actually moves pretty deftly, I'd say. The program takes the average X and Y positions of the keys you're pressing every time a keyboard event happens, and then moves in either of the four directions based on the angle of the position change. Look forward to swiping your way through levels in the near future!

Other bug fixes: fixed game not ending until one turn after you finish the level. fixed incorrect memory allocation. fixed game freezing on some strangely generated levels.
If You're randomly generating the level, why not generate it to a buffer then copy it to the working buffer? You could then copy it back to the working buffer upon a level restart. This would avoid needing a pseudo random number generator.
This would also be a lot faster.
Do you know about the copy function in ICE?

Code:

copy(WORKING,GENERATED,LENGTH

Hope this helps Smile
beckadamtheinventor wrote:
If You're randomly generating the level, why not generate it to a buffer then copy it to the working buffer? You could then copy it back to the working buffer upon a level restart. This would avoid needing a pseudo random number generator.
This would also be a lot faster.
Do you know about the copy function in ICE?

Code:

copy(WORKING,GENERATED,LENGTH

Hope this helps Smile
That works, but it does half the job. Ideally, I want the same order of generated levels to occur on all calculators that have this game, which means I do need a generator after all.
This game is very fun. I played it so much I made it to level 100 in one class period. I can't wait to see what the updates are going to contain. Smile Smile Smile
dunlavdy wrote:
This game is very fun. I played it so much I made it to level 100 in one class period. I can't wait to see what the updates are going to contain. Smile Smile Smile
Thank you so much for the support! It’s not often I get such a compliment from a stranger. You’ve inspired me to get back to work and crank out a release.

Progress Update: I’m gonna shelve the “swipe” controls for now, just because it’s kinda weird. I’ll get back to it after I have the actual gameplay nice and completed.
I have seen people playing this game! I don't normally play these games on a smartphone, because I prefer the bit more complicated games, but I will definitely download this one on to my calculator and spread it to other calculators in my class.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement