13. Pair Programming - ics.uci.eduminhaenl/class/2015/summer/13. Pair... · Pair Programming Pair...
Transcript of 13. Pair Programming - ics.uci.eduminhaenl/class/2015/summer/13. Pair... · Pair Programming Pair...
13.IndividualProject3,DoubleBuffering, PairProgramming
MinhaengLee
IEDUProgrammingActivity,Summer,2015
DoubleBuffering
• Forgamedeveloper
• Blinking,whenwearedrawinganimatedobject.• Reason– Drawingtoscreenisrelativelyslow– Mightbeslowerthanframe-rate-per-second(FPS)
• Thinkwhenwehave100differentobjectsingamescreen
• InsteadofDrawingdirectly,• Drawmemoryimagefirstthencopytheimagetoactual
screen
DoubleBuffering
DoubleBuffering.java
PairProgramming
Pairprogramming(sometimesreferredtoaspeerprogramming)isanagilesoftwaredevelopmenttechniqueinwhichtwoprogrammersworkasapairtogetherononeworkstation.One,thedriver,writescodewhiletheother,theobserver,pointerornavigator,reviewseachlineofcodeasitistypedin.Thetwoprogrammersswitchrolesfrequently.
-wikipedia
PairProgramming
• 20mineachperson(becausewehaveonly120min)
• Ifyou– Haveenoughprogress– or– Hateworkwithother
• Thenyou– Canworkalone
• Otherwise– DoPairprogramming
IndividualProject:Tetris
• Basic– GetBlock(andother)images– Generation2DMap– Keyinput– ThreadbasedTimingControl• Framecontrol
– Game,Score,Nextzone• Advanced– Continuefromprevious– Item– AutoPlay
IndividualGoal:Tetris
• Oct11• Oct18• Oct25– Midcheckpoint
• Nov1• Nov8• Nov15– HTMLpagedrawing,– Final
IndividualProject:SneakGame
• Basic– GetSneakPartsimages– Generate2DMap– Keyinput– ThreadbasedTimeControl• Framecontrol
– Game,Scorezone• Advanced– Continuefromprevious– Item– AutoPlay
IndividualGoal:SneakGame
• Done– Moving,
• Oct11
• Oct18• Oct25– Midcheckpoint
• Nov1• Nov8• Nov15– HTMLpagedrawing,– Final
IndividualProject:MusicPlayer
• Basic– Getrequiredbuttonimages(play,stop…etc.)– CoverFlow(templateprovided)• ExampleGUI–CoverFlowDemo.java
– FileScanning– Fileload/save– PlayListManagement– MusicPlay/Stop
• Advanced– MusicEqualize
IndividualGoal:MusicPlayer
• Oct11– MusicPlayTest– CheckMP3Player.java,WAVPlayer.java
• Oct18• Oct25– Midcheckpoint
• Nov1• Nov8• Nov15– HTMLpagedrawing,– Final
IndividualProject:Calendar
• Basic– Datecontrol– JComponents– LayoutusingMigLayout(ExampleProvided)• ExampleGUI–DashboardDemo.java,SwingDemo.java
– EventAdd/Delete/Edit
• Advanced– Synctotheweb
IndividualGoal:Calendar
• Oct11– Prepare:Datelibrary– Goal:?
• Oct18• Oct25– Midcheckpoint
• Nov1• Nov8• Nov15– HTMLpagedrawing,– Final
IndividualProject:Flashcards
• Basic– Layout– Filemanagement(read/write)
• Advanced– FancyGUI– Onlinedatamanagement
IndividualGoal:FlashCards
• Oct11• Oct18• Oct25– Midcheckpoint
• Nov1• Nov8• Nov15– HTMLpagedrawing,– Final
Homework
• RecordYourProgressduringweek–WhatProblemyouhave–Whathaveyoudone– Noprogress,nothingtolearn• ReadLayoutSource– ExampleGUI–DashboardDemo.java
References
• Swing– http://docs.oracle.com/javase/tutorial/uiswing/
• Mp3Player– http://introcs.cs.princeton.edu/java/faq/mp3/mp3.html
• DoubleBuffering– http://msonic.tistory.com/1– https://docs.oracle.com/javase/tutorial/extra/fullscreen/doublebuf.html