Exercise: Create a game of Snog, Marry or Avoid in Visual C#

This exercise is provided to allow potential course delegates to choose the correct Wise Owl Microsoft training course, and may not be reproduced in whole or in part in any format without the prior written consent of Wise Owl.

The answer to the exercise will be included and explained if you attend the Wise Owl courses listed below!

Category ==> Visual C Sharp 2010  (65 exercises)
Topic ==> Properties in C#  (3 exercises)
Level ==> Harder than average
Courses ==> WinForms using Visual C#  /  Introduction to Visual C#
Before you can do this exercise, you'll need to download and unzip this file (if you have any problems doing this, click here for help).

You need a minimum screen resolution of about 700 pixels width to see our exercises. This is because they contain diagrams and tables which would not be viewable easily on a mobile phone or small laptop. Please use a larger tablet, notebook or desktop computer, or change your screen resolution settings.

To avoid having to draw the form needed for this exercise, right-click on the name of your project in Solution Explorer then choose Add --> Existing Item... (you can also press SHIFT + ALT + A to do the same thing).

Choose only the files called frmSmaGetNames.cs and frmSnogMarryAvoid in the above folder to import them into your project, then edit Program.cs to make frmSmaGetNames the default form. 

When you run your application, you should now see this:

Default names for Snog Marry Avoid

Some default names have been filled in for you, but you can change these.

 

Before continuing, have a look at the existing code to see what it does (it might be an idea to encase it in a separate code region too):

The first form sets the value of the second form's public variable Persons.  Notice how this has a private equivalent which has the same name, but in lower case (persons, not Persons).  This is a commonly used technique in C#, and is worth getting used to!

 Start to write the code for the second form so that it works!  To begin with:

  • store the array of people in a list (since lists are easier to work with than arrays) and set this list to be the data source of the first list box; and
  • create a list of choices (snog, marry and avoid, basically), and set this list to be the data source of the second list box. 

You may find it useful for the rest of the code to know that you can refresh a list box like this:

// update data source for list (set it to null then back to

// same data source forces VS to recognise it's changed)

lst.DataSource = null;

lst.DataSource = lstItems;

Complete your code, so that it works just as well with 3 people/choices or 30 (in the future you may want to add choices, such as interview, invite for pizza, get autograph from, ...).  Here's what the result should look like:

Choices made so far

The first two choices were easy!

 

The answer contains 2 properties, 2 event-handler routines and 3 other procedures.  See if you can beat this!

This page has 0 threads Add post