House plan design (Head First C#)

I’ve been working through the book Head First C# and this is an exercise from chapter 7, which is about interfaces and abstract classes.

Note that the class design was mandated by the authors, I’m open to suggestions to improve.

I’d like a review on any and all aspects. My code ended up quite a bit different than the book’s solution, because it’s a few years old and I think “holds back” on newer C#/.NET features and syntax.

In a shared code base, I would include that XML documentation, but since this is just local code for learning, I didn’t. Any and all feedback appreciated.


The authors’ published implementation is here on GitHub. The idea is to implement a floor plan that can be explored, with room connections and doors to the outside. It’s done through a WinForms application.

Here is a picture of the plan from the book. Sorry, couldn’t find a screenshot.

floorplan

The app looks like this:

app


Location.cs

using System;  namespace House {     abstract class Location     {         public Location(string name) => Name = name;          public string Name { get; private set; }         public Location[] Exits;          public virtual string Description         {             get             {                 string description = $  "You're standing in the {Name}. You see exits to the following places: \r\n";                 foreach (Location exit in Exits)                 {                     description += $  "— {exit.Name}";                     if (exit != Exits[Exits.Length - 1])                     {                         description += "\r\n";                     }                 }                 return description;             }         }     } } 

Room.cs

using System;  namespace House {     class Room : Location     {         public Room(string name, string decoration)              : base(name)         {             Decoration = decoration;         }          private string Decoration { get; set; }          public override string Description => $  "You see {Decoration}. {base.Description} ";     } } 

Outside.cs

using System;  namespace House {     class Outside : Location     {         public Outside(string name, bool hot)             : base(name)         {             Hot = hot;         }          private bool Hot { get; }          override public string Description => Hot              ? "It's very hot here. " + base.Description              : base.Description;     } } 

IHasInteriorDoor.cs

using System;  namespace House {     interface IHasExteriorDoor     {         string DoorDescription { get; }         Location DoorLocation { get; }     } } 

OutsideWithDoor.cs

using System;  namespace House {     class OutsideWithDoor : Outside, IHasExteriorDoor     {         public OutsideWithDoor(string name, bool hot, string doorDescription)             : base(name, hot)         {             DoorDescription = doorDescription;         }          public string DoorDescription { get; private set; }          public Location DoorLocation { get; set; }          public override string Description => $  "{base.Description}\r\n You see {DoorDescription} to go inside.";     } } 

RoomWithDoor.cs

using System;  namespace House {     class RoomWithDoor : Room, IHasExteriorDoor     {         public RoomWithDoor(string name, string decoration, string doorDescription)             : base(name, decoration)         {             DoorDescription = doorDescription;         }          public string DoorDescription { get; private set; }          public Location DoorLocation { get; set; }     } } 

And here is the WinForms to make it work. Leaving out IDE generated code.

ExploreTheHouseForm.cs

using System; using System.Windows.Forms;  namespace House {     public partial class ExploreTheHouseForm : Form     {         Location currentLocation;          RoomWithDoor livingRoom;         RoomWithDoor kitchen;         Room diningRoom;         OutsideWithDoor frontYard;         OutsideWithDoor backYard;         Outside garden;          public ExploreTheHouseForm()         {             InitializeComponent();             CreateObjects();             MoveToLocation(livingRoom);         }          private void CreateObjects()         {             // Configure the locations             livingRoom = new RoomWithDoor("living room", "an antique carpet", "an oak door with a brass knob");             kitchen = new RoomWithDoor("kitchen", "stainless steel appliances", "a screen door");             diningRoom = new Room("dining room", "a crystal chandelier");             frontYard = new OutsideWithDoor("front yard", false, livingRoom.DoorDescription);             backYard = new OutsideWithDoor("back yard", true, kitchen.DoorDescription);             garden = new Outside("garden", false);              // Configure the exits             livingRoom.Exits = new Location[] { diningRoom };             kitchen.Exits = new Location[] { diningRoom };             diningRoom.Exits = new Location[] { livingRoom, kitchen };             frontYard.Exits = new Location[] { backYard, garden };             backYard.Exits = new Location[] { frontYard, garden };             garden.Exits = new Location[] { frontYard, backYard };              // Configure exterior doors             livingRoom.DoorLocation = frontYard;             frontYard.DoorLocation = livingRoom;             kitchen.DoorLocation = backYard;             backYard.DoorLocation = kitchen;         }          private void MoveToLocation(Location location)         {             currentLocation = location;             ExitsComboBox.Items.Clear();             foreach (Location exit in location.Exits)             {                 ExitsComboBox.Items.Add(exit.Name);             }             ExitsComboBox.SelectedIndex = 0;             DescriptionTextBox.Text = currentLocation.Description;             ShowGoThroughExteriorDoorButton(currentLocation);         }          private void ShowGoThroughExteriorDoorButton(Location location)         {             if (location is IHasExteriorDoor)             {                 GoThroughExteriorDoorButton.Visible = true;                 return;             }             GoThroughExteriorDoorButton.Visible = false;         }          private void GoHereButton_Click(object sender, EventArgs e)         {             MoveToLocation(currentLocation.Exits[ExitsComboBox.SelectedIndex]);         }          private void GoThroughExteriorDoorButton_Click(object sender, EventArgs e)         {             IHasExteriorDoor locationWithExteriorDoor = currentLocation as IHasExteriorDoor;             MoveToLocation(locationWithExteriorDoor.DoorLocation);         }     } } 

Where can I find Matt Mercer’s Critical Role House Rules?

I’d like to use house rules from Critical Role in my own campaigns, and while we may tweak them once we’ve tried them, they seem to work well for Matt and his players, so what they use would be a good starting point. I’ve seen Matt Mercer’s homebrew content (as used on Critical Role) mentioned on several forum threads, but aside from the resurrection rules being referred to as “famous” I’ve not found a lot of detail.

Is there a comprehensive list/details of these rules (or at least of the most notable ones?) If so, where can it be found?

Because I want to start from exactly what they use, I’m looking for something verifiable. That means that rules defined by someone watching the show and working out a best guess on what they are isn’t a good answer, while either a purchasable resource (if it’s included in the Tal’Dorei Campaign Guide, for example) or something otherwise directly from/endorsed by Matt Mercer himself would be a good answer.

So I’m looking for something that is:

  1. Not a breach of copyright
  2. Verifiably what Matt Mercer actually uses/wrote

and unadulterated house concentrates, these tablets are

ketosis. Ketosis is where your individual body begins taking fat rather than vitalityrapid tone: is an accumulation of normal concentrates that eliminate the intemperate bodyweight. It is produced using consolidating common and unadulterated house concentrates, these tablets are fantastic in high quality. This attribute complement is helpful for the common population who have abundance bodyweight reduce. It is created intentionally to boost your action and stay audio for quite a while. It…

and unadulterated house concentrates, these tablets are

Where’s this waterfront with a ferris wheel in Yokohama, in Episode 41 of “Terrace House: Boys & Girls in the City”?

These are screenshots from “Episode 41 of “Terrace House: Boys & Girls in the City” released on Mon Mar 28, 2016″. I can’t spot the scene beneath in this map created by a fan? This Reddit user’s map pinpoints a ferris wheel, but not the scene beneath?

enter image description here

house mix trance mp3 download free

Press the "Download Now" button to download house mix trance mp3 installer.
The whole process will just take a few moments.

[​IMG]

– Title: house mix trance mp3
– Download type: safety (no torrent/no viruses)
– Status file: clean (as of last analysis)
– File size: undefined
– Price: free
– Special requirements: no

house mix trance mp3 download free

[ Politics ] Open Question : Why do Democrats keep picking up House seats post-midterms?

Cisneros defeated Republican Young Kim on Saturday in the last of Orange County’s undecided House races, giving Democrats a clean sweep of the state’s six most fiercely fought congressional contests and marking an epochal shift in a region long synonymous with political conservatism. With Cisneros’ victory, Democrats will constitute the entirety of Orange County’s seven-member congressional delegation, the first time since the 1930s that the birthplace of Richard M. Nixon, home of John Wayne and spiritual center of the Republican Party will have no GOP representative in the House. Orange County goes blue, as Democrats complete historic sweep of its seven congressional seats This gives Democrats 45 of the state’s 53 House seats and mark a new low for the flailing Republican Party, which dominated the state and its politics for much of California’s history. Americans are sickened by the RACIST-HATE-MONGERING, and FEAR-MONGERING of Trump’s Fascist CULT-45 Republicans. I expect 2020 to finish wiping the SCUM like Mitch McConnell, and Lindsey Graham out of American politics!