File tree 1 file changed +5
-1
lines changed
1 file changed +5
-1
lines changed Original file line number Diff line number Diff line change @@ -30,7 +30,7 @@ fn main() {
30
30
. chars ( )
31
31
. collect :: < Vec < _ > > ( ) ;
32
32
33
- // create a map (i.e. a graph of rooms and their neighbors)
33
+ // create a map (i.e. a bi-directional graph of rooms and their neighbors)
34
34
let mut rooms: HashMap < ( i32 , i32 ) , HashSet < ( i32 , i32 ) > > = HashMap :: new ( ) ;
35
35
36
36
let mut queue = VecDeque :: new ( ) ;
@@ -53,21 +53,25 @@ fn main() {
53
53
// door between current room and next one
54
54
'N' => {
55
55
rooms. entry ( ( s. x , s. y ) ) . or_default ( ) . insert ( ( s. x , s. y - 1 ) ) ;
56
+ rooms. entry ( ( s. x , s. y - 1 ) ) . or_default ( ) . insert ( ( s. x , s. y ) ) ;
56
57
s. i += 1 ;
57
58
s. y -= 1 ;
58
59
}
59
60
'S' => {
60
61
rooms. entry ( ( s. x , s. y ) ) . or_default ( ) . insert ( ( s. x , s. y + 1 ) ) ;
62
+ rooms. entry ( ( s. x , s. y + 1 ) ) . or_default ( ) . insert ( ( s. x , s. y ) ) ;
61
63
s. i += 1 ;
62
64
s. y += 1 ;
63
65
}
64
66
'W' => {
65
67
rooms. entry ( ( s. x , s. y ) ) . or_default ( ) . insert ( ( s. x - 1 , s. y ) ) ;
68
+ rooms. entry ( ( s. x - 1 , s. y ) ) . or_default ( ) . insert ( ( s. x , s. y ) ) ;
66
69
s. i += 1 ;
67
70
s. x -= 1 ;
68
71
}
69
72
'E' => {
70
73
rooms. entry ( ( s. x , s. y ) ) . or_default ( ) . insert ( ( s. x + 1 , s. y ) ) ;
74
+ rooms. entry ( ( s. x + 1 , s. y ) ) . or_default ( ) . insert ( ( s. x , s. y ) ) ;
71
75
s. i += 1 ;
72
76
s. x += 1 ;
73
77
}
You can’t perform that action at this time.
0 commit comments