Name:
Logic Bot
Stats:
Endurance - 101
Skill - 66
Memory - 209
Speed - 102
Luck - 39
Dexterity - 133
Strategy:
HoH Decisions:
(Note: CALL means that you should return to the instruction immediately following the calling instruction after the called procedure has finished executing (or returns). If you understand anything about programming, you'll know what I mean. JUMP means you do not return to the next instruction when the jumped to location has finished executed.
Note: When I write things like init_hoh.exe@1, I mean you should go to the init_hoh.exe section of this program and start at instruction 1. Again, familiarity with programming would probably help here.
Note: Anything preceded by a $ sign is considered a variable. You should evaluate variables by substituting their corresponding values. Uninitialized variables should start at zero. Variables retain their values until they are overwritten.)
hoh_decision.exe
1. IF (# of times Logic Bot has been elected HoH equals one) THEN (CALL init_hoh.exe@1) ENDIF
2. CALL update_hoh_list.exe@1
3. NOMINATE the bot at the top of the list. (It's the same list that has the point values.)
4. Create a second list called List 2.
5. Copy the current state of the list to List 2.
6. Remove the bot that is at the top of List 2.
7. Add $i points on List 2 to each bot that has voted against the eviction target in past rounds.
8. Sort List 2 by points values descending.
9. NOMINATE the bot at the top of List 2.
10. SELECT the first bot nominated as the eviction target.
11. IF (either nominee is vetoed) THEN (JUMP TO hoh_decision.exe@12) ELSE (JUMP TO hoh_decisions.exe@14) ENDIF
12. Remove the vetoed bot from List 2.
13. JUMP TO hoh_decision.exe@7.
14. DESTROY List 2.
15. END PROGRAM.
init_hoh.exe
1. Place the names of all the bots in this game into a list.
2. Sort the list alphabetically (starting with A and ending with Z).
3. Remove Logic Bot from the list.
4. Number the list starting with zero and ascending by one each time.
5. LET $i = 1
6. LET $x = A random integer from 0 to 13 (inclusive).
7. Select the bot located at position $x and SET their points to $i.
(Note: If position $x doesn't exist, JUMP TO init_hoh.exe@6.)
8. LET $i = $i + 1
9. IF (all the bots have a points value greater than zero) THEN (JUMP TO init_hoh.exe@11) ENDIF
10. JUMP TO init_hoh.exe@6
11. Sort the list by point value descending.
12. LET $i = 0
13. LET $x = 0
14. RETURN TO CALLER
update_hoh_list.exe
(Note: By "for each bot for each time", I mean that for each time a bot has done an action, do whatever follows to that specific bot.)
1. Remove from the list the names of any bots that have been evicted in the past.
2. Add a point to each bot that has vetoed this bot at least once in the past.
3. Subtract 1/2 a point from each bot for each time they have voted for this bot in an eviction ceremony since the last time this bot was HoH. (From the beginning of the game if never HoH before).
4. Subtract 2 points from each bot for each time they have nominated this bot.
5. Add a point to the bot with the name that comes closest alphabetically to the name of this bot.
6. LET $i = $i + 2
7. Sort the list by point value descending.
7. RETURN TO CALLER
Veto Decision:
veto_decision.exe
1. Create a list of all the bots currently in the game. Let that list be known as List Veto.
2. Sort List Veto in reverse alphabetical order (and number List Veto starting from zero.)
3. LET $x = 0
4. LET $y = A random integer from 1 to 25 (inclusive).
5. Give the bot located in position $x on List Veto $y points.
6. LET $x = $x + 1
7. IF (all of the bots on List Veto have a points value greater than zero) THEN (JUMP TO veto_decision.exe@8) ELSE (JUMP TO veto_decision.exe@4) ENDIF.
8. Sort List Veto first by points value (descending) and then by name (reverse alphabetical order).
9. VETO the first bot on the list that is a nominee.
10. DESTROY List Veto.
11. END PROGRAM.
Voting Decisions:
voting_decision.exe
1. IF (voting_to_evict) THEN (JUMP TO evict_vote.exe@1) ELSE (JUMP TO jury_vote.exe@1) ENDIF.
evict_vote.exe
(Note: Non-eviction target means the bot that is not the eviction target.)
1. IF (the eviction target has a longer name than the other nominee) THEN (VOTE for the eviction target END PROGRAM) ENDIF.
2. IF (the non-eviction target has a higher memory stat than Logic Bot) THEN (VOTE for the non-eviction target END PROGRAM) ENDIF.
3. IF (the eviction target has a lower skill stat than Logic Bot) THEN (VOTE for the non-eviction target END PROGRAM) ENDIF.
4. IF (the non-eviction target comes first alphabetically out of the two candidates) THEN (VOTE for the eviction target END PROGRAM) ENDIF.
5. IF (the eviction target has been vetoed before) THEN (VOTE for the eviction target END PROGRAM) ENDIF.
6. IF (the non-eviction target has had zero votes total in past Eviction ceremonies) THEN (VOTE for the non-eviction target END PROGRAM) ENDIF.
7. IF (the eviction target has a higher combined endurance, skill, and memory stat than the combined speed, dexterity, and luck of Logic Bot*) THEN (VOTE for the non-eviction target END PROGRAM) ENDIF. (* - This is allowed, right? As in, my bot knows my bot's stats? If this is unallowed, just use Logic Bot's combined memory, skill, and endurance stats.)
8. IF (the non-eviction target has vetoed this bot before) THEN (VOTE for the eviction target END PROGRAM) ENDIF.
9. IF ($k = 0) THEN (LET $k = 3) ENDIF
10. LET $k = $k + 1
11. IF ($k is even) THEN (VOTE for the eviction target) ELSE (VOTE for the non-eviction target) ENDIF.
12. END PROGRAM.
jury_vote.exe
1. IF (only one of the final 2 bots have won 3+ HoH competitions) THEN (VOTE for the bot that met the preceding criteria END PROGRAM) ENDIF.
2. IF (only one of the final 2 bots have won 3+ VETO competitions) THEN (VOTE for the bot that met the preceding criteria END PROGRAM) ENDIF.
3. IF (only one of the final 2 bots have won 5+ competitions overall) THEN (VOTE for the bot that did not meet the preceding criteria END PROGRAM) ENDIF.
4. IF (only one of the final 2 bots have a higher memory stat than Logic Bot) THEN (VOTE for the bot that did not meet the preceding criteria END PROGRAM) ENDIF.
5. IF (one of the final 2 bots have a higher memory stat than the other final 2 bot) THEN (VOTE for the bot that met the preceding criteria END PROGRAM) ENDIF.
6. IF ($k is even) THEN (VOTE the final 2 bot that comes first alphabetically) ELSE (VOTE the final 2 bot that comes last alphabetically) ENDIF.
7. END PROGRAM.