Courses‎ > ‎AP Computer Science‎ > ‎Konstantinovich‎ > ‎notes‎ > ‎

2017-12-13

posted Dec 13, 2017, 9:32 AM by Konstantinovich Samuel   [ updated Dec 13, 2017, 1:34 PM ]
Final Exam: Monday, Jan 22nd

Final Project Guidelines:
Pair Projects.
1. Choose a partner in the same period.
2. Have a project proposal by Tues Dec 19th.
3. Make a final project repo, add the other person as a Collaborator. 
4. Each of you should test EACH computer you use to commit, and make sure they show your git username when you commit. 
5. You must have a hard copy of a prototype by Wed Jan 3rd.
6. Your code must have instructions in the README.md file. It must include compile, run, and usage instructions. 
7. Your code must have a development log in the README.md file. This includes the larger plans and progress you made including milestones and bugs. 

Deadlines:
Jan 15th - Your Demo commit. This should be a working version of your final project, that you will improve upon over the next week. 
Jan 22nd - Your Final commit.

Presentations:
Jan 15-19 You will present the version you committed on the 15th (by 8am, you MUST make a demo branch to make it easy to pull. ) . I will clone everyone's demo branch.


Types of projects:
Games are not prohibited, but I strongly urge you to attempt something else for the 1st semester. 
Games are much harder because they are larger in scope, and require a lot of polish.

Terminal is not a bad thing!

Text based Games:
Checkers
Chess
Tetris
Text Adventure
Rogue-like game

Useful:
Image editor
Image filters
Calculator (evaluate expressions)
Data Processing (take a CSV and allow the user to make requests to calculate various things)
    -MTA files
    -Wifi Hotspots by location
    -Cross reference 2 data sets.

GUI:
DANGER DANGER - Show me a working prototype* of the GUI within 2 days of the project or abandon GUI.
*(buttons and stuff that do things, shapes and colors that move around) 





import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ButtonsWork extends JFrame implements ActionListener{
    private Container pane;
    private JButton b,b2;
    private JCheckBox c;
    private JTextField t;

    public void actionPerformed(ActionEvent e){
        String s = e.getActionCommand();
        System.out.println(s);
        if(s.equals("ByteMe")){
            //button code here
            if( c.isSelected() ){
                t.setText(t.getText().toUpperCase());
            }else{
                t.setText("What do you want?");
            }
        }
        if(s.equals("Clear")){
            //button code here
            t.setText("");
        }

    }

    public ButtonsWork() {
        this.setTitle("My first GUI");
        this.setSize(500,80);
        this.setLocation(100,100);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);

        pane = this.getContentPane();
        pane.setLayout(new FlowLayout());
        b = new JButton("ByteMe");
        b2 = new JButton("Clear");
        c = new JCheckBox("OverClocked");
        t = new JTextField(15);

        b.addActionListener(this);
        b2.addActionListener(this);
        t.addActionListener(this);
        c.addActionListener(this);

        pane.add(t);
        pane.add(c);
        pane.add(b);
        pane.add(b2);

    }

    public static void main(String[] args) {
        ButtonsWork g = new ButtonsWork();
        g.setVisible(true);
    }
}



Comments