Home
Important Dates Grading Lectures Optional Readings
Exercises Group Assignments Individual Assignments
Exam Schedule
Videos Slides
College of Engineering Aeronautics and Astronautics Agricultural and Biological Engineering Biomedical Engineering Chemical Engineering Civil Engineering Construction Engineering and Management Electrical and Computer Engineering Engineering Education Engineering Professional Education Environmental and Ecological Engineering Industrial Engineering Materials Engineering Mechanical Engineering Nuclear Engineering
EPICS (Engineering Projects In Community Service) First-Year Engineering Program First-Year Engineering Honors Program Global Engineering Program Minority Engineering Program Professional Practice (Co-Op) Program Women in Engineering Program
College Administration Schools Programs All Groups All People ECN Webmail
Purdue Home

ECE 462 Group Assignment

Stage 4: Tetris Competition

Deadline: 11:59PM 2009/12/05

 If your GPA3 is not fully functional, you have to fix it first.

Qualification (2 points)

Each team must meet a minimum requirement to enter the competition. To qualify, your program must eliminate 200 lines using sequence #5 in GPA3. Your program must be qualified by a server running the tetris-qualifier mode. For every 50 lines your program eliminates, your team will receive 0.5 point. You will receive 2 point if your program can eliminate 200 lines or more; if your program cannot eliminate at least 50 pieces, you will receive zero.  Please remember that if your program cannot eliminate 200 or more lines, your team will not enter the competition.

Competitions will be split into two parts: group elimination and tournament.  The group elimination will be held on 2009/12/06 in MSEE 190 conducted by the instructor and TA.  The tournament will be held on 2009/12/07 and 2009/12/09 in ARMS 1109.

Bonus  (4 points)

 You will receive 1 additional point by eliminating 50 more lines in this sequence. You can earn up to 4 points (200 lines).

Competition (3.5 point)

Stage 1: Group Elimination (0.5 point)

There are 46 students in this class, divided into 15 teams. The teams are divided into four groups.

  • Within each group, every team competes against every other team.
  • After all matches in a group, the two teams with the most wins will enter the next stage.  Both teams will get 0.5 point.
  • If there is a tie, the total number of eliminated lines will be counted to determine the teams qualified for the tournament.

Stage 2: Tournament (3 point)

  • Eight teams are selected into the tournament.  1st in Group 1 will be matched against 2nd in Group 2; 1st in Group 2 against 2nd in Group 1.  The same for Group 3 and 4.
  • Your team receives 0.5 point by entering the semifinal, another 1 point by entering the final, and another 1.5 point by being the champion. You can receive up to three points by winning the competition.

Best Awards (3 point)

To enter these competitions, your team must self-nominate by posting the URL to a demonstration video on Blackboard (discussion section TBA) by 2009/12/05.

The Best Looking Award (1 point)

  • The video must be at least 3 minutes long.  You should demonstrate mostly the design of your game interface.
  • Everyone in the class can give 2 votes.  You can votes to two different teams, or both votes to the same team.  You are allowed to give one vote to your own team but you cannot give both votes to your own team.
  • The winner and the runner-up will receive 1 point and 0.5 point, respectively.

The Best Documentation Award (1 point)

  • To enter this competition, post the URL of your documentation by 2009/12/05.
  • It is recommended that the documentation is in PDF or clickable text format and covers the following aspects:
    • Object-oriented architecture of your program
    • Techniques used in programming
    • User's manual
    • UML diagram
    Hint: Some useful tools can help you build professional nice-looking documentations efficiently, like Doxygen, NaturalDocs, Javadoc.
  • Everyone in the class can give 2 votes.  You can votes to two different teams, or both votes to the same team.  You are allowed to give one vote to your own team but you cannot give both votes to your own team.
  • The winner and the runner-up will receive 1 point and 0.5 point, respectively.

The Most Creative Award (1 point)

  • To enter this competition, your team must self-nominate by posting a thread introducing a creative feature in your program on Blackboard (discussion section TBA) by 2009/12/05.
  • A creative feature is some functionality or concept that is not required in the four stages of GPA.  You must have the introduced feature implemented in your program.
  • It is strongly encouraged that you post your program (source code preferred), screenshots and/or videos to let others experience the creative feature.
  • Everyone in the class can give 2 votes.  You can votes to two different teams, or both votes to the same team.  You are allowed to give one vote to your own team but you cannot give both votes to your own team.
  • The winner and the runner-up will receive 1 point and 0.5 point, respectively.

Voter (0.2 point)

If you cast votes, you will receive 0.2 point.

Technical Information

For the qualifier mode, the server will not enforce a minimum interval among two consecutive commands (you can send commands as fast as they are generated).  The enforced "FALL" actions will be sent at least every 200 milliseconds.

For the competition, the server will enforce minimum duration among two consecutive commands to be 20 milliseconds so that the games can be seen. Without this rule, a good player may end a competition too soon.  The server will also enforce a maximum duration among two consecutive "FALL"s to be 200 milliseconds to prevent the matches from taking too long.  This value used to be 500 milliseconds in GPA Stage 3.

Sequences used in competition are randomly generated on the scene.  The two competitors are given the same sequence.  However, they may use the pieces at different speed and hence the next pieces at any time may be different.  The probability distributions of the pieces in different competition stages are given in the table below:

Competition Stage

4-block 5-block 6-block 7-block
group elimination 85% 6% 5% 4%
quarterfinals 85% 6% 5% 4%
 semifinals 82% 7% 6% 5%
 final 78% 9% 7% 6%

Pieces in the final will be generated dynamically based on the performance of the two competitors, hence not predictable. The percentages may be adjusted.  If most groups can eliminate many lines, the difficulty will be raised so that the competitions will not last too long.

Additional Bonus (0.2 point)

  • Please comment whether this project is appropriate for ECE 462.  Please explain what characteristics make this project appropriate (or inappropriate) for the course. Please suggest a few computer games that are appropriate for future ECE 462 and explain why these games are appropriate.  Send your comment and suggestions to the instructor.

FAQ (Frequently Asked Questions)

Q: Should I use a good and slow algorithm or a faster and inferior algorithm?

A: It is a tradeoff. Remember that your opponent may drop a piece to the bottom and the next piece will appear immediately. If your algorithm is too slow, your opponent may have eliminated many lines (and sent them to your side) before your algorithm can even determine the position of the first piece. As a result, you are likely to lose.

Permission to Use Your Code

Do you allow the instructor to use your code for research and education purposes?    The instructor may use your code for teaching, research, and publication. This is a non-exclusive permission to the instructor. The instructor does not "own" your code and you can still use your code, for example, to build a commercial product.  If you do not give the instructor this permission, please conctact the instructor before December 15, 2009.