Semester Project: your preparation for the final exam. 

How do we start the project? 

(a) Run the following:

http://silo.cs.indiana.edu:8346/c212/spr2015/tetris.rkt

(b) Practice by writing a simple program using big-bang.

What program? 

(c) Look at some existing implementations:

http://zetcode.com/tutorials/javagamestutorial/

http://zetcode.com/tutorials/javagamestutorial/tetris/

I create the three files Tetris.java, Shape.java and Board.java

I now need to compile and run them.

C:\Users\dgerman\Desktop\one>dir
 Volume in drive C is OSDisk
 Volume Serial Number is 12D1-0980

 Directory of C:\Users\dgerman\Desktop\one

04/20/2015  08:24 AM    <DIR>          .
04/20/2015  08:24 AM    <DIR>          ..
04/20/2015  08:24 AM             8,093 Board.java
04/20/2015  08:22 AM             2,839 Shape.java
04/20/2015  08:21 AM               730 Tetris.java
               3 File(s)         11,662 bytes
               2 Dir(s)  314,520,121,344 bytes free

C:\Users\dgerman\Desktop\one>javac *.java
'javac' is not recognized as an internal or external command, operable program or batch file.

C:\Users\dgerman\Desktop\one>"C:\Program Files\Java\jdk1.8.0_05\bin\javac.exe" *.java

C:\Users\dgerman\Desktop\one>dir
 Volume in drive C is OSDisk
 Volume Serial Number is 12D1-0980

 Directory of C:\Users\dgerman\Desktop\one

04/20/2015  08:28 AM    <DIR>          .
04/20/2015  08:28 AM    <DIR>          ..
04/20/2015  08:28 AM             1,394 Board$TAdapter.class
04/20/2015  08:28 AM             5,331 Board.class
04/20/2015  08:24 AM             8,093 Board.java
04/20/2015  08:28 AM             1,246 Shape$Tetrominoes.class
04/20/2015  08:28 AM             2,435 Shape.class
04/20/2015  08:22 AM             2,839 Shape.java
04/20/2015  08:28 AM             1,017 Tetris.class
04/20/2015  08:21 AM               730 Tetris.java
               8 File(s)         23,085 bytes
               2 Dir(s)  314,520,006,656 bytes free

C:\Users\dgerman\Desktop\one>javac
'javac' is not recognized as an internal or external command, operable program or batch file.

C:\Users\dgerman\Desktop\one>PATH=%PATH%;"C:\Program Files\Java\jdk1.8.0_05\bin"

C:\Users\dgerman\Desktop\one>javac
Usage: javac <options> <source files>
where possible options include:
  -g                         Generate all debugging info
  -g:none                    Generate no debugging info
  -g:{lines,vars,source}     Generate only some debugging info
  -nowarn                    Generate no warnings
  -verbose                   Output messages about what the compiler is doing
  -deprecation               Output source locations where deprecated APIs are used
  -classpath <path>          Specify where to find user class files and annotation processors
  -cp <path>                 Specify where to find user class files and annotation processors
  -sourcepath <path>         Specify where to find input source files
  -bootclasspath <path>      Override location of bootstrap class files
  -extdirs <dirs>            Override location of installed extensions
  -endorseddirs <dirs>       Override location of endorsed standards path
  -proc:{none,only}          Control whether annotation processing and/or compilation is done.
  -processor <class1>[,<class2>,<class3>...] Names of the annotation processorsto run; bypasses default discovery process
  -processorpath <path>      Specify where to find annotation processors
  -parameters                Generate metadata for reflection on method parameters
  -d <directory>             Specify where to place generated class files
  -s <directory>             Specify where to place generated source files
  -h <directory>             Specify where to place generated native header files
  -implicit:{none,class}     Specify whether or not to generate class files for implicitly referenced files
  -encoding <encoding>       Specify character encoding used by source files
  -source <release>          Provide source compatibility with specified release
  -target <release>          Generate class files for specific VM version
  -profile <profile>         Check that API used is available in the specified profile
  -version                   Version information
  -help                      Print a synopsis of standard options
  -Akey[=value]              Options to pass to annotation processors
  -X                         Print a synopsis of nonstandard options
  -J<flag>                   Pass <flag> directly to the runtime system
  -Werror                    Terminate compilation if warnings occur
  @<filename>                Read options and filenames from file


C:\Users\dgerman\Desktop\one>dir
 Volume in drive C is OSDisk
 Volume Serial Number is 12D1-0980

 Directory of C:\Users\dgerman\Desktop\one

04/20/2015  08:28 AM    <DIR>          .
04/20/2015  08:28 AM    <DIR>          ..
04/20/2015  08:28 AM             1,394 Board$TAdapter.class
04/20/2015  08:28 AM             5,331 Board.class
04/20/2015  08:24 AM             8,093 Board.java
04/20/2015  08:28 AM             1,246 Shape$Tetrominoes.class
04/20/2015  08:28 AM             2,435 Shape.class
04/20/2015  08:22 AM             2,839 Shape.java
04/20/2015  08:28 AM             1,017 Tetris.class
04/20/2015  08:21 AM               730 Tetris.java
               8 File(s)         23,085 bytes
               2 Dir(s)  314,519,449,600 bytes free

C:\Users\dgerman\Desktop\one>javac *.java

C:\Users\dgerman\Desktop\one>java Tetris
Error: Could not find or load main class Tetris

C:\Users\dgerman\Desktop\one>javac -d . *.java

C:\Users\dgerman\Desktop\one>dir
 Volume in drive C is OSDisk
 Volume Serial Number is 12D1-0980

 Directory of C:\Users\dgerman\Desktop\one

04/20/2015  08:30 AM    <DIR>          .
04/20/2015  08:30 AM    <DIR>          ..
04/20/2015  08:29 AM             1,394 Board$TAdapter.class
04/20/2015  08:29 AM             5,331 Board.class
04/20/2015  08:24 AM             8,093 Board.java
04/20/2015  08:29 AM             1,246 Shape$Tetrominoes.class
04/20/2015  08:29 AM             2,435 Shape.class
04/20/2015  08:22 AM             2,839 Shape.java
04/20/2015  08:30 AM    <DIR>          tetris
04/20/2015  08:29 AM             1,017 Tetris.class
04/20/2015  08:21 AM               730 Tetris.java
               8 File(s)         23,085 bytes
               3 Dir(s)  314,519,281,664 bytes free

C:\Users\dgerman\Desktop\one>java tetris.Tetris

C:\Users\dgerman\Desktop\one>

(d) Can we look at other games? 

http://zetcode.com/tutorials/javagamestutorial/breakout/

Breakout, not as lucky, especially unclear where pictures are.

http://silo.cs.indiana.edu:8346/c212/spr2014/04212014/

http://silo.cs.indiana.edu:8346/c212/spr2014/04212014/final%20exam/stage%20011%20breakout/

So how do we get started? What do we do first?

Don't forget we have a reference implementation.

Are you going to provide a Big-Bang?

How would you design it (better than in Lab Seven)?

Could you remind yourselves how big-bang was working: 

http://www.cs.indiana.edu/classes/c211-dgerman/sum2014/hwFive.html

Xiaohang, Alex N, Krista, Patrick, Daniel, James A, Rob B, Mingming, 
Robert W, Joe P, Carlie B, Tyler R, Alan R, Abigail F, Vjatcheslav K, 
Kyle L, Shayan K, Isaac F, Jonah W, Jake Parsley, Jarod E, Hongjian, 
Peyton, Akash, Mateus, Tyler D, Likang, Ven L, Lucas K, Yaxin T, 
Sam Maginot, Clint S, Liyuan, Tim M, David L and Yitian "Ehtan" Zhan

Strategy Pattern Based Big Bang Implementation 

--