UMBC CS 201, Fall 06
UMBC CMSC 201
Fall '06

CSEE | 201 | 201 F'06 | lectures | news | help

CMSC 201
Programming Project Two

Sudoku

Out: Wednesday 10/04/06

Due: Before Midnight, Wednesday 10/18/06

The design document for this project, design2.txt ,
is due: Before Midnight, Wednesday 10/11/06

The Objective

The objective of this assignment is to give you practice with project and function design. It will also give you an opportunity to work with two-dimensional arrays and passing arrays to functions for manipulation. It will give you more practice with separate compilation and reusing modules.

The Background

This project is based on the puzzles called Sudoku. Those of you who are not familiar with this kind of puzzle can read more about it at Wikipedia's Sudoku page

The puzzle forms a grid that is 9 rows high by 9 columns wide. It is composed of 9 sub-grids. Each of the numbers 1 through 9 will exist once and only once in each row, each column, and each sub-grid of the solution.

There is only one correct solution for each puzzle.

Here is the puzzle found in the data file, puzzle1.dat, as it is to be shown to the player:

0 1 2 3 4 5 6 7 8 |==============================================================| 0 | : 8 : | : : 4 | : 5 : 2 | |--------------------------------------------------------------| 1 | : 6 : | : : | 4 : : | |--------------------------------------------------------------| 2 | 4 : : | : : 5 | : 9 : | |==============================================================| 3 | : 7 : 8 | : 4 : 3 | : : | |--------------------------------------------------------------| 4 | : 9 : 4 | 7 : : 1 | 6 : 8 : | |--------------------------------------------------------------| 5 | : : | 5 : 9 : | 7 : 4 : | |==============================================================| 6 | : 3 : | 4 : : | : : 8 | |--------------------------------------------------------------| 7 | : : 2 | : : | : 6 : | |--------------------------------------------------------------| 8 | 8 : 4 : | 2 : : | : 1 : | |==============================================================|

The Task

Design and code a project that will allow you to work a sudoku puzzle.

The Specifications

More Details

Sample Run

This is the sample run.

Although your output need not be identical to that in the output file, all information (including a greeting and instructions that are not shown in the output) must be present.

Please be aware that this may NOT be a complete test of the program.

Extra Credit

When a user tries to place an illegal value into the puzzle, you must print out ALL of the conflicts that make the value an illegal one for that position. This is worth 5 points of extra credit.

As always, you may also earn extra credit points on any project by having outstanding documentation (exceeding 201 standards), an extremely clever or efficient algorithm, or a well-conceived, general, flexible design. These 1 - 10 points of extra credit are awarded at the discretion of the grader.

Submitting the Program

You are to use separate compilation for this project, so you will be submitting several files.
Your C source code file that contains main() MUST be called proj2.c. You should also have files called util.c & util.h, sudoku.c & sudoku.h. Although you are using my loadPuzzle.o & loadPuzzle.h files, do NOT submit them since I already have them.

To submit your project, type the following at the Unix prompt. Note that the project name starts with uppercase 'P'.

submit cs201 Proj2 proj2.c sudoku.c sudoku.h util.c util.h

To verify that your project was submitted, you can execute the following command at the Unix prompt. It will show all files that you submitted in a format similar to the Unix 'ls' command.

submitls cs201 Proj2


CSEE | 201 | 201 F'06 | lectures | news | help

Thursday, 05-Oct-2006 08:43:36 EDT