I think it would be more useful for the pressure plate the 'include weight' bit should be 'invert output' instead, that way you can have puzzles where you need to find a weight to open a door. By the way this is awesome and very impressive!
Does it not cover that? The pressure plate without the setting requires a weight which then can activate a wall/door to appear/disappear. Just accommodated with what is initially placed.
And thank you! XD
A new version of this scenario was uploaded on Tue Apr 30 22:17:10 UTC 2013
To prevent bad things from happening (bug error), Portals collapse on themselves (acting as solid blocks) should they point to each other.
Also I am a silly and pressure plate inversion is already implemented just not in the way I expected :P
A new version of this scenario was uploaded on Tue Apr 30 23:29:33 UTC 2013
List of Users is now sorted alphabetically. And added Search feature.
A new version of this scenario was uploaded on Tue Apr 30 23:34:43 UTC 2013
List of Users is now sorted alphabetically. And added Search feature.
+Correction from last upload
Do you think it would be worth it to compress the 700 or so bits you are using to represent the walls? Also are you currently implementing a version number in one of the available ints so you can change the syntax if you please?
Its not exactly just the walls in those 700 some bits. In that it is ordered so that the Game Objects as well can be positioned without storing their positions.
Basically reading the map left to right, top to bottom - each cell takes 3 bits automatically. The first 2 bits for whether there are vertical and horizontal walls there (optimized to not include vertical bit for last column, nor horizontal bit for last row). The 3rd bit is whether there is a GameObject there (if so, followed by bits for that).
Not sure I know what you mean by compress.
Right now I have not touched any of the ints. I have briefly thought of adding a util visible only to me for updating everyone's data for updates, but thought maybe there would be possibility of someone having a copy opened..
Ah that sounds like a good way to do the object positioning. I was envisioning a different scheme, in which some sort of run-length-encoding might have been useful, but your method is a great way to cut memory as well. There might be a way to incorporate some sort of compression to save some space but considering your storage scheme I think it probably would end up not being worth it.
@darkmist255 Thanks!
@Builderboy2005 Have you tried putting something together already? There's a couple characters you have to avoid when generating the final Strings to be saved.
What do you mean exactly? I did create a small puzzle map. And yeah I figured that about the strings, probably why you are only able to get 7 bits out of every character yes?
Yes. Characters 0 - 127 (excluding 13) are persistent through save/load. But you also have to exclude 92 (by itself it seems okay, but fails when followed by anything).
So you have to adjust your final string of bits to never include these. Basically I parsed my string of bits and when found a leading 6 bits that could lead to one of the characters, I include these 6 bits plus a bit that makes it not one of these characters, incrementing index only by 6. Then have to accommodate when loading, looking for the leading 6 bits, ignoring the 7th.
Doesn't happen too often, but will break your reader / saved data.
I rearranged the data so all the horizontal wall bits were together, followed by all the vertical wall bits, followed by the Game Object position place holder bits (that can reference their data which follows at end by ordering). Figure best way to get groups of same bit values together. So it compresses by run-length encoding.
Will be using one of the UserInfo's ints to store syntax version.
Kinda guessed on a suitable length capacity, and included ability to skip over some bits that don't compress nicely. But of course a chaotic map won't compress well. Made sure that if the compression fails to actually shorten the data, then it isn't applied.
Some nice submitted maps. Will probably work on pulling data to include in upload next. Got most of it down already. Just need to try to incorporate some sort of management for Users over their maps. (probably will distinguish maps - from individual sets - by name. i.e. Saving of same map name will overwrite). But now I should study for finals...
Did you try again? I had some difficulty with this when I first uploaded this. Try logging out and back in. The only way that happens is if the following returns false:
UserInfo.isStorageAvailable()
A new version of this scenario was uploaded on Fri May 03 21:56:22 UTC 2013
1. Uploaded with everyone's maps (those of you that had a map prior to today, you can safely make a 2nd map) Still working on ability to load in editor, maps other than one on server. NOTE: Maps of same name from one on server will be overwritten.
2. Added compression.
3. Included source (Warning: not yet tidy)
Also of Note: Loading your previous map then saving - means that you have two versions of it (only one on server is visible - if same map name). And so at this point, to make another map you will be overwriting your changes to your first. Would have to wait until I upload with additional/updated maps again.
A new version of this scenario was uploaded on Sat May 04 01:39:39 UTC 2013
@SPower how to declare a new object using a JButton,
if the java desktop we only
JButton btn = new JButton ("play");
btn.setBounds (50,50,50,50);
frame.add (btn);
but if in Greenfoot how,,,
sorry just learning Greenfoot guidance please
2013/4/30
2013/4/30
2013/4/30
2013/4/30
2013/4/30
2013/4/30
2013/4/30
2013/4/30
2013/4/30
2013/4/30
2013/4/30
2013/4/30
2013/5/1
2013/5/1
2013/5/1
2013/5/1
2013/5/1
2013/5/1
2013/5/1
2013/5/1
2013/5/1
2013/5/1
2013/5/1
2013/5/1
2013/5/1
2013/5/2
2013/5/2
2013/5/2
2013/5/2
2013/5/2
2013/5/2
2013/5/2
2013/5/2
2013/5/3
2013/5/3
2013/5/4
2013/5/6
2013/8/12
2013/8/12
2013/8/12
2013/8/12
2013/8/12
2013/8/12