More comments
This commit is contained in:
parent
7c02f21b75
commit
6bfbd22108
|
@ -79,11 +79,11 @@ Game⇐{ # The Game function creates a game object
|
|||
|
||||
# w‿d Bounce x | x: map | w‿d: w: current position, d: direction of the laser
|
||||
# Calculates the bounces of a laser beam recursively
|
||||
Bounce←{(w‿d)S x:{
|
||||
Bounce←{(w‿d)S x:{ # Base case:
|
||||
⊑opaque∊˜⊑w⊑x? # When the beam touches an opaque object (not a mirror):
|
||||
(machine=⊑w⊑x)◶⟨x, # we do nothing if it doesn't touch a machine
|
||||
⟨pmachine⟩˙⌾(w⊸⊑)x # and if it does we change it to a powered machine
|
||||
⟩@;
|
||||
⟩@; # and the recursion stops
|
||||
⊑empties∊˜⊑w⊑x ? # When the beam passes through an empty space:
|
||||
# we draw the laser beam and recurse to the next:
|
||||
⟨w+d,d⟩S{ # we choose the type of laser beam to draw
|
||||
|
@ -99,6 +99,7 @@ Game⇐{ # The Game function creates a game object
|
|||
}
|
||||
}
|
||||
|
||||
# We find each laser machine and shoot a beam in its direction
|
||||
# Shoot 𝕩 | 𝕩: map | calculates the bounces for each laser
|
||||
Shoot←{𝕩 {𝕨Bounce´⌽𝕩} ∾⟨<0‿¯1,<0‿1,<¯1‿0,<1‿0⟩(⊣⋈˜¨+)¨ FindIdx⟜(⊑¨𝕩)¨ lasers}
|
||||
|
||||
|
|
Loading…
Reference in New Issue