Assignment title: Information


Assignment 1 and 2 comprise parts of the one project that must be developed using C# and MS Visual Studio. These require you to design and develop software related to the word game called crozzle (see class notes of week 1). In brief: 1. the first assignment focuses on: • loading data from files related to any completed crozzle, • validating/invalidating input data files and crozzle, • computing the score of a crozzle, • displaying that crozzle and its score, • coding to conventions and standards, and • implementing menus, file dialogs and regular expressions; 2. the second assignment focuses on: • loading data from files related to creating a new crozzle such that its score is valid and is the highest possible that you can achieve, • ensuring that this new crozzle is valid, • saving a crozzle to a file, • optimisation techniques, • appropriate scoping of code elements, • method characteristics such as cohesion, coupling, pre and post conditions, • the usage of return statements, • implementing exception handling. Software Requirements Your software solution for assignment 1: 1. requires a GUI interface. 2. requires the following data from the user via a CSV file (see "Names EASY wordlist.csv" as an example): • a file header that is immediately followed by a list of words. The number of words in this list ranges from 10 to 1000. This list does not contain duplicates. This header consists of: • a number representing the actual number of words in the list of words. • crozzle dimensions. One might consider a crozzle as a 2D array of characters. The provided width value ranges from 4 to 400, inclusive. The provided height values will range from 4 to 400, inclusive. • difficulty level: either EASY, MEDIUM, HARD or EXTEME as the only valid difficulty values. Page 1 of 3 3. requires the following data from the user via a TXT file (see "Names EASY crozzle.txt" as an example): • a crozzle which is placed within the first several lines and first several columns of the TXT file. If you open the data file "Names EASY crozzle.txt" using Notepad, you would see a crozzle displayed in the first several rows and columns. 4. requires both input data files to be validated. Aspects of these files which are found to be invalid must be reported to a log file. 5. requires the crozzle to be validated, only if the input data files are valid. Aspects of this crozzle that are invalid must be reported to a log file. 6. requires the valid or invalid crozzle to be displayed. 7. requires the score of a valid crozzle to be computed and displayed, but display 0 for an invalid crozzle. 8. requires constraints to be considered when validating a crozzle and determining a crozzle score (see below). There are constraints for 4 difficulty levels (EASY, MEDIUM, HARD and EXTREME); some constraints are common to all levels