this was a puzzle to me, but now i can push *that* rock to the right
(cc @neauoire)

implemented an "array of rocks" and collision detection with them (from one side), as well as limits in the space

next step in this stack-based programming puzzle: to be able to push/pull any rock!

rom size at 1238 bytes now

almost done! this implied a rewrite from scratch, but now every rock can be pushed! (unless there's another one obstructing its path)

i want to add a station for toggling the color of a rock, and this will be ready for some virtual rocks-based computing :tealheart:

darena, a virtual bunch-of-rocks machine running in uxn, now seems to be ready to be operated

@chirrolafupa that's freakin adorable. I can't believe so little information is enough for me to want to meet this little character.

@chirrolafupa Cool! The more people I see playing with uxn the more tempted I am to start playing around with it.

@rostiger i never used stack-based machines before, so i'm enjoying a lot the "puzzle aspect" of it! :)

@chirrolafupa do you think you could kick the rock so it rolls on its own until it hits something?

@neauoire i'm re-writing everything; "easy rolling on their own" for the rocks would be a possibly unintended consequence :P

@neauoire yes, i've been using it! my code started to get very messy when trying to implement both the character-to-rocks and the rocks-to-rocks collision detection - that's why i'm rewriting it!
now each rock has also "speed", so i could eventually let them roam freely

@chirrolafupa this is really cool! spent some time reading the code to see what i could learn from it.

@exquisitecorp thanks! i'm glad! i still find the paradigm somewhat strange – i need to keep in mind (and/or table) a model of the stack to make sense of what i wrote, step by step

@chirrolafupa I'd love to add it to the repo, also, if you plan on keeping the source up, I'd love to link to it from the xxiivv wiki as well! The code is very clear.

It's kind of neat how I can just copy/paste/run it without having to import any assets or anything extra.

@neauoire @chirrolafupa Ah great, it's under CC0 licence already, so we can include it no problem!

I've imported it now! Thank you so much! 😍 git.sr.ht/~rabbits/uxn/commit/

@neauoire awesome! yeah, i plan on keeping it up for as long as the host is up :)

and i agree! i thought of also adding an hexdump of the rom, but i don't know yet how would one easily convert it to a "binary file"

@chirrolafupa Your code is very helpful; I've been trying to figure out how to "pass" variables for days now, and the way you do it is so clear!

@flbr i'm glad! first i was trying to use the stack only, swapping values around within a subroutine, but it got very messy and unreadable. the use of local variables made a lot of sense.

from other (register-based) asm contexts i knew about the idea of assigning specific registers to pass values to a subroutine. in this context i like a lot the idea of just loading the stack with what the subroutine will need, and use it for returning the result(s); no need to keep up with registers state

Sign in to participate in the conversation
Merveilles

Merveilles is a community project aimed at the establishment of new ways of speaking, seeing and organizing information — A culture that seeks augmentation through the arts of engineering and design. A warm welcome to any like-minded people who feel these ideals resonate with them.