summaryrefslogtreecommitdiff |
diff options
author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2021-12-26 13:46:47 +0100 |
---|---|---|
committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2021-12-26 13:46:47 +0100 |
commit | f55133c2e24ee782416a32619aa1a3b07811915f (patch) | |
tree | 011c425ed8b0b469c6964ffce31a97f60c93d1f3 /src/shared/tonkadur/Tonkadur/PlayerInput.elm | |
parent | 6777c3edc9414e3a59f94f940756f8666e017a6e (diff) |
...
Diffstat (limited to 'src/shared/tonkadur/Tonkadur/PlayerInput.elm')
-rw-r--r-- | src/shared/tonkadur/Tonkadur/PlayerInput.elm | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/shared/tonkadur/Tonkadur/PlayerInput.elm b/src/shared/tonkadur/Tonkadur/PlayerInput.elm new file mode 100644 index 0000000..0cd75aa --- /dev/null +++ b/src/shared/tonkadur/Tonkadur/PlayerInput.elm @@ -0,0 +1,85 @@ +module Tonkadur.PlayerInput exposing (..) + +-- Elm ------------------------------------------------------------------------- +import List +import Dict + +-- Tonkadur -------------------------------------------------------------------- +import Tonkadur.Types + +-------------------------------------------------------------------------------- +-- TYPES ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- LOCAL ----------------------------------------------------------------------- +-------------------------------------------------------------------------------- + +-------------------------------------------------------------------------------- +-- EXPORTED -------------------------------------------------------------------- +-------------------------------------------------------------------------------- +select_choice : Int -> Tonkadur.Types.State -> Tonkadur.Types.State +select_choice index state = {state | last_choice_index = index} + +input_string : String -> Tonkadur.Types.State -> Tonkadur.Types.State +input_string string state = + {state | + memory = + (Tonkadur.Types.apply_at_address + (Tonkadur.Types.value_to_address state.memorized_target) + (\last_address dict -> + (Dict.insert last_address (StringValue string) dict) + ) + state.memory + ) + } + +input_int : Int -> Tonkadur.Types.State -> Tonkadur.Types.State +input_int int state = + {state | + memory = + (Tonkadur.Types.apply_at_address + (Tonkadur.Types.value_to_address state.memorized_target) + (\last_address dict -> + (Dict.insert last_address (IntValue int) dict) + ) + state.memory + ) + } + +input_command : ( + (List.List String) -> + Tonkadur.Types.State -> + Tonkadur.Types.State + ) +input_command commands state = + {state | + memory = + (Tonkadur.Types.apply_at_address + (Tonkadur.Types.value_to_address state.memorized_target) + (\last_address dict -> + (Dict.insert + last_address + (ListValue + (Dict.fromList + (List.indexedMap + (\index value -> + ( + ( + case (String.fromInt index) of + (Just i) -> i + Nothing -> "invalid_index" + ), + value + ) + ) + commands + ) + ) + ) + dict + ) + ) + state.memory + ) + } |