September 19, 2013: Ding Ding

Discuss the comic here!
Post Reply
User avatar
RedwoodElf
Converses Frequently
Posts: 526

Re: September 19, 2013: Ding Ding

Post by RedwoodElf » Sat Sep 28, 2013 6:17 am

Liesmith wrote:I think the only thing that could make this update better is a minor edit to the final panel: as Minmax stands there, looking badass, his pants should fall to the ground with a *flup*. It's tradition!
Minmax isn't wearing pants...he never has, as we all know!
There are worlds out there where the sky is burning...where the seas sleep and the rivers dream. People made of smoke, and cities made of song. Somewhere there's danger. Somewhere there's injustice. Somewhere else, the tea is getting Cold. C'mon Ace, we've got work to do! - The Doctor (Sylvester McCoy, last line in the old series)
Image
- Image

User avatar
stevedj
Voices Opinions
Posts: 417

Re: September 19, 2013: Ding Ding

Post by stevedj » Sat Sep 28, 2013 7:20 am

Master TMO wrote:I wonder if the hacking the Maze has taken would allow something like this:
Original Code:

Code: Select all

OnAction :: Group(X) Enters Blue Circle :: Message("Win").Play;
OnAction :: Group(X) Enters Red Circle :: Group(X).SendHome; Maze.ResetAll;
Hacked Code:

Code: Select all

OnAction :: Group(X) Enters Blue Circle :: Message("Win").Play;
OnAction :: Group(X) Enters Red Circle :: Group(X).SendHome; /*Maze.ResetAll;*/
By commenting out the Maze Reset, it would allow every surviving person in the Maze to go through and win. If the creators were lazy and didn't put a check in there to make sure it hadn't already been won. Because the Maze Reset is supposed to happen immediately, there wouldn't be anybody there to step through and win again. So perhaps FMK 156 can go through now and win, even though PsiMax has also won.
Just one little wrinkle with your code sample -- what happens if Group Y enters the Blue Circle before Group X has entered the Red Circle? There should be some logic that prevents that. So, I might modify your code suggestion as follows:

Original Code:

Code: Select all

OnAction :: Group(X) Enters Blue Circle :: Message("Win").Play;Circle["Blue"].Disable;Circle["Red"].Enable
OnAction :: Group(X) Enters Red Circle :: Group(X).SendHome; Maze.ResetAll;
Current Hacked Code:

Code: Select all

OnAction :: Group(X) Enters Blue Circle :: Message("Win").Play;Circle["Blue"].Disable;Circle["Red"].Enable
OnAction :: Group(X) Enters Red Circle :: Group(X).SendHome; /*Maze.ResetAll;*/
New Hack they need to make:

Code: Select all

OnAction :: Group(X) Enters Blue Circle :: Message("Win").Play; /* Circle["Blue"].Disable; */Circle["Red"].Enable
OnAction :: Group(X) Enters Red Circle :: Group(X).SendHome; /*Maze.ResetAll;*/
...except, it is too late for that hack, because the Blue Circle would already be deactivated. So now in it's current state, the best hack now would be:

Better new hack:

Code: Select all

OnAction :: Group(X) Enters Blue Circle :: Message("Win").Play;Circle["Blue"].Disable;Circle["Red"].Enable
OnAction :: Group(*) Enters Red Circle :: Group($_).SendHome; /*Maze.ResetAll;*/
So basically, anyone can step into the Blue Circle regardless of where they've been before. (And, not knowing how you'd prefer a back-reference in this pseudo code, I chose a PowerShell use of $_ for that :) )

Meanwhile, all the non-coders here are starting to think '...what's up with all this code crap? ... ' :lol:

User avatar
RocketScientist
Global Moderator
Posts: 5894
Location: Massachusetts

Re: September 19, 2013: Ding Ding

Post by RocketScientist » Sat Sep 28, 2013 3:06 pm

You know, I actually would have expected the blue-circle-entering group to have been given a unique identifier/variable in, uh, maze-code 1.0, so it wouldn't matter if someone else entered the red circle. Or is that not a thing in maze-code?

Also, bearing in mind that I don't actually speak maze-code, and my code-fu is weak, I'm trying to figure out what the purpose is of winning at all, at that point. The blue doesn't reset AFAICT, and the red is just "on," and then whoever uses red goes home, bypassing the need for blue, right? So why reset the blue at all?

(Sorry if that's a dumb question. I just want to know all the things. :lol: )

User avatar
Master TMO
Speaks Quietly
Posts: 142

Re: September 19, 2013: Ding Ding

Post by Master TMO » Mon Sep 30, 2013 6:40 am

Apparently I'm the father of a new coding language. :) Hmm, let's see if I can clean it up a bit.

Code: Select all

OnAction :: Circle["Blue"].EnteredBy(X) :: Message["Win"].Play; Circle["Blue"].Disable; Circle["Red"].EnableFor(X); ;;
OnAction :: Circle["Red"].EnteredBy(X) :: Message["Exit"].Play; Group(X).Return; Maze.Reset; ;;

Objects :: 
Maze ::
  .Reset :: Clock.Stop; Clock.Set(0); Until Groups.Count => MaxSlots :: Group.Add; ;; Groups.Reset; Circle["Red"].Disable; Circle["Blue"].Enable; ;;
  ;;
;;
Well, I don't think I have a future as a code language developer...

But yes, with this method, it would take more than a simple hack to allow the entire Maze to win. Disabling the Maze.Reset call wouldn't reset the Blue Circle, as it makes the most sense for that to be part of the Reset code itself.

User avatar
RocketScientist
Global Moderator
Posts: 5894
Location: Massachusetts

Re: September 19, 2013: Ding Ding

Post by RocketScientist » Mon Sep 30, 2013 1:01 pm

Master TMO wrote:Apparently I'm the father of a new coding language. :)
Congratulations! It's a-maze-ing. :P

User avatar
RedwoodElf
Converses Frequently
Posts: 526

Re: September 19, 2013: Ding Ding

Post by RedwoodElf » Mon Sep 30, 2013 2:39 pm

You forgot something like:

Code: Select all

Newgroup.Failcounter = -1 (After the next step, this will be zero)
For Group = 1..TotalGroups do
Begin
  Group.FailCounter += 1
End
There are worlds out there where the sky is burning...where the seas sleep and the rivers dream. People made of smoke, and cities made of song. Somewhere there's danger. Somewhere there's injustice. Somewhere else, the tea is getting Cold. C'mon Ace, we've got work to do! - The Doctor (Sylvester McCoy, last line in the old series)
Image
- Image

Post Reply