Beginner Voting System (Difficulty đźź© or 3/10)

There are a lot of voting systems out there and many of them work really well but they aren’t very beginner-friendly. I have developed this voting system to be simple and use the least amount of memory as possible. This system requires all options being voted on to be preset by the map-maker. I have made a recent change that allows the uses to have an unlimited number of options.

Pre-Set

The system only requires 1 counter, 1 property, and 1 screen overlay for each option being voted on. The trigger and Max properties are used to calculate which option gets the most votes.

  • Properties

Max

Option
I recommend that these options are labeled the same as they will be in the overlays but it is not necessary.

Variable
Variable is used to keep track witch option is being checked

players
players is the number of players in the game.

Winner
This is the option that won the vote.

  • Trigger
    Right
    Everything for the trigger takes place in blocks.

    This is the only part of this system that is complex but basically what is happening here is that we are changing the variable property so we can use this one system to check an unlimited amount of options. IMPORTANT: There has to be a space after option without it the system won’t work.

    image

Left
This trigger is used to reactivate the right trigger.

Wires
Left–>Right

  • Pop-Up
    The close(#) channel is used to close the pop-up after. The name is just a placeholder and is what the player will be voting for.
    image
    image


    image

  • Counter
    The counter’s job is pretty simple it just keeps track of how many times something has been voted for.
    image
    image
    image

Counter(far left)
image

Wires

  • Relay
    No changes needed. This is a trick I discovered while working on a different map that allows you to get the exact number of players in a given game. By having the relay relay for each player and then incrementing a counter that counter will increment once for each player(as long as it is set to global)

Wires

Players

Here is where “beginner” ends, this system is very complicated but does a really good job. This part took me a while to develop but it’s finally done. This system automatically creates a voting setup for each player in the game. The system takes 2.5% memory(2562) to set up then 1/50th of a percent for each player after(20). There are four parts to this system the Set-Up, Voting, Calculation, and Properties.

Set-Up

image

  • Life Cycle
    image

Wires
Both same

  • Relay

Left
image

Left: Wires


Right

Right: Wires
Both same

  • Team Switch
    image

  • Wire Repeater
    image

Wires

  • Trigger
    image

Blocks
image
image
image

  • Counters

Up
image

Down
image

  • Properties

players

total players

Voting

image

Wires


  • Wire Repeater
    image

Wires

  • Pop-Up

Blocks
image

Wire Pulse
image


image

vote
image


image

Properties

image

  • Properties

Sort

#
This is the names of each player need one for each player in the game(it’s fine to have too many)


# votes
The number of votes for each player(# corresponds to the previous property)

vote

Calculation

image

  • Triggers

Left

Left: Wires

Right
Trigger this to start the calculations

Right: Blocks


  • Properties

variable
tells the system what set of properties to compare

max
The amount of votes that is being compared

Winner
The player with the most votes

10 Likes

Nice! It isn’t done yet?

5 Likes

I’m working on a version with player names but the Pre-Set is done.

3 Likes

Oh btw its beginner

5 Likes

You could concatenate that block code, but then you would have to teach people concatenation.

4 Likes

I think that you may have to teach me concatenation. I have never heard that term before.

3 Likes

Uh… Okay. So, concatenation is where the computer uses stuff it already knows to do things based off of that. (Horrible definition by the way, ask someone like getrithekd instead) In GKC, you can use this to set a property to any value and broadcast on infinite channels. Zypheir explained it really well here. Scroll down until you see it in the comments.

5 Likes

:+1:

3 Likes

Thanks, once I get some time I’ll play around with that and see if I can update the guide, also do you think that I should work on the player voting. The system is much bigger and I’m afraid I wouldn’t be able to put it into a “beginner” guide.

2 Likes

Sure, if you want to! This is all a pleasure activity!

4 Likes

You could only use concatenation if you use a loop.

2 Likes

Are you sure? I’ve used concatenation plenty of times without a loop.

3 Likes

For that specific case. You can use concatenation to output on a channel, but you can’t use it to check inputs.

4 Likes

Wow, this is wayyyyy easier than mine lol

2 Likes

Well, yours does have perks like showing the number of votes. I don’t think that I could ever get that to show for everyone in my system. I could easily show it to the player though.

1 Like

I’m not sure if this was exactly what you were thinking but I tried to update the guide to use concatenation, either way it works.

1 Like

Basically, you can’t check if a text is in the form of “Speed “ + number.

I’m confused, I don’t use "Speed " anywhere

1 Like

It’s just an example.

1 Like

Ok, honestly I was shocked that this works but apparently, since I’m using get property and making the text with “Option” witch is always there and the variable witch changes each time the whole system actually manages to find the right property. Also I’m planning on making the player voting but I still have a few bugs to iron out.

1 Like