CHALLENGE rule randomly generates challenges.

This commit is contained in:
Woody Folsom
2012-03-18 16:17:04 -04:00
parent c2465821f3
commit 862ba2aa31
5 changed files with 75 additions and 7 deletions

View File

@@ -7,15 +7,39 @@ VAR LO_PATH = LO_PATH
VAR HI_PATH = HI_PATH
VAR lo_path = FLAT_LO
VAR hi_path = FLAT_HI
VAR pipes = PIPE_JUMP
###
#Coin Dive (Some empty blocks. The user climbs them and runs off; coins line their path as they fall back to the ground.)
#Free power-up. (Sets the player up to get a power-up with little or no challenge.)
#Straight. (A straight stretch of land with maybe one enemy and maybe some coins or blocks.)
#Single Pit (A pit that the user must jump over; rocks on either side.)
#Bowling Alley (A red koopa right before a long line of enemies. Kill them all in a row by throwing the shell.)
#Cannon Line (A stack of 2-3 canons.)
#Maze (A... yknow... maze.)
#Lemming Trap (A little pit with a few enemies that jump down into it.)
#Platform Jump (A bunch of platforms to jump between.)
#Pipe Jump (A bunch of thin pipes to jump between. This can be rendered much easier, because sometimes the space between the pipes is filled.)
###
VAR coin_dive = COIN_DIVE
VAR power_up = POWER_UP
VAR single_pit = SINGLE_PIT
VAR bowling_alley = BOWLING_ALLEY
VAR cannon_line = CANNON_LINE
VAR maze = MAZE
VAR lemming_trap = LEMMING_TRAP
VAR platform_jump = PLATFORM_JUMP
VAR pipe_jump = PIPE_JUMP
VAR CHALLENGE = CHALLENGE
#RULE name -> {probabilities}, (clause) [+,|] (clause)...
RULE S -> LAND_SEGMENT + LAND_SEGMENT
RULE LAND_SEGMENT -> {0.25,0.65,0.10}, (LO_HI + HI_LO) | (LO_PATH) | (LAND_SEGMENT + LAND_SEGMENT)
RULE LO_HI -> LO_PATH + HI_PATH
RULE HI_LO -> HI_PATH + LO_PATH
RULE HI_PATH -> {0.25,0.75}, (HI_PATH + HI_PATH) | (hi_path)
RULE LO_PATH -> {0.10,0.60,0.30}, (LO_PATH + LO_PATH) | (lo_path + pipes + lo_path) | (lo_path)
RULE LO_HI -> LO_PATH + CHALLENGE
RULE HI_LO -> CHALLENGE + LO_PATH
#RULE HI_PATH -> {0.10,0.60,0.30}, (HI_PATH + HI_PATH) | (hi_path + CHALLENGE + hi_path) | (hi_path)
RULE LO_PATH -> {0.10,0.60,0.30}, (LO_PATH + LO_PATH) | (lo_path + CHALLENGE + lo_path) | (lo_path)
RULE CHALLENGE -> {0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10,0.10}, coin_dive | power_up | lo_path | single_pit | bowling_alley | cannon_line | maze | lemming_trap | platform_jump | pipe_jump
#START variable name
START = S