Before you write a single line of code, you need to make a writeup of your project. (Think of this as a mini-"Specifications" document.) It should have three parts:
There are two reasons why you're doing this: (1) to help me grade your project and (2) to help you think about what your project should be and exactly what you'll have to do to get it working. Additionally, this writeup will help you make sure your making a program that's the right scope; you don't want to make something that's too large to write in one semester or too small to be a challenge for you.
Because a picture is worth a thousand words, here's an example of what I'm expecting to see:
Project Description ------------------- For my project, I'm going to write a Mahjongg game: The Ancient Chinese Game of Four Winds". Note that this will be the *real* 4-player Mahjongg game, _not_ the solitaire version that you see all the time. Use Case -------- The user starts the program and it automatically shuffles the tiles and builds the wall and the Kong box at the end. The user will play 3 computer players, all of whom will take turns drawing tiles from the wall (or the last discard) and then discarding. Some buttons will be provided if the user wants to "chow", "pung", or "kong" a tile out of turn, within a reasonable amount of time. When the game is over, the program will calculate the scores (including doubles and limit hands), add them to a running total, display the totals thus far and proceed with the next hand. The game will end when one player reaches 1000 points. Feature Breakdown ----------------- - GUI code that displays the game: the wall, the discards, the user's hand - Code that shuffles, builds the wall, and deals - Code for taking turns in the normal course of play - AI for computer players - Code that calculates scores and displays running total Notes ----- You can see this link for a description of how the game is played. I will search images.google.com for some pictures I can use for the tiles.
Note the addition of the "Notes" section at the bottom. This is not required, but if it helps you or helps me, you might want to add it.
Print it up and turn it in to me by the class after the Midterm.
Any of the examles in your textbook would be a good place to start, but a poor place to finish. Example: take the 4-function calculator and turn it into a graphing / scientific calculator.
I encourage you to search the Internet for ideas and examples of how to do things, but don't download a full-fledged application, put your name on it, and expect me to give you credit.
Don't copy code from any of your classmates and try to pass it off as your own. I'm gonna sit down with everybody and look at it so I'll be able to tell if you've cheated.
No. This is an individual effort project. That having been said, I don't mind you helping each other; in fact, I encourage you to do so.
If you're already writing a Java program for another class, I'm perfectly okay with you using it for this class, provided that it meets the criteria listed above.
If you want to use a Java program that you wrote for work I'm sure you'd need to clear that with your employer first.