"use strict"; let NORTH = 0; let NORTH_EAST = 1; let EAST = 2; let SOUTH_EAST = 3; let SOUTH = 4; let SOUTH_WEST = 5; let WEST = 6; let NORTH_WEST = 7; /*jshint browser: true*/ /*jshint devel: true*/ function Location(name="Nowhere") { this.name = name; this.description = "Not much of anything, really."; this.exits = [null,null,null,null,null,null,null,null]; } function opposite(direction) { return (direction + 4) % 8; } function connectLocations(loc1,loc2,loc1Exit) { if (loc1.exits[loc1Exit] != null) { alert(loc1.name + " is already connected to " + loc1.exits[loc1Exit].name); return; } else if (loc2.exits[opposite(loc1Exit)] != null) { alert(loc2.name + " is already connected to " + loc2.exits[opposite(loc1Exit)].name); return; } else { if (loc1Exit >= 0 && loc1Exit <= 7) { loc1.exits[loc1Exit] = loc2; loc2.exits[opposite(loc1Exit)] = loc1; } } } function createWorld() { let bedroom = new Location("Bedroom"); let bathroom = new Location("Bathroom"); let livingroom = new Location("Living Room"); connectLocations(bedroom,bathroom,EAST); connectLocations(bedroom,livingroom,NORTH); return bedroom; }