blob: c5fd83706674e8855026930fea19def55a24a270 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
module Tonkadur.PlayerInput exposing (..)
-- Elm -------------------------------------------------------------------------
import Dict
import List
-- 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
)
}
|