CSC152 2004F, Class 39: Weekly Project Discussion (Week 10!) Admin: * Late: Becking, Poythress * Missing: Ahlgren, Billups, Conor * C'mon folks! It's hard to do project planning if you're not here! * Attendance does affect your grade. * Non-attendance does effect penalties * Cool talk tomorrow 4:30, "Web Raveler" * Homework: Implement KeyedValueComparator * Women's soccer game in NATIONALS (playing Macalester). 1 p.m. Admission (p-card makes it free). Soccer fields. * Sam will summarize assignments tomorrow. Overview: * Planning ahead * Questions * Yours * Mine * Verbs * Initialization and takedown /Planning Ahead/ * We need to consider what needs to be done when in order to complete the project. * Important Dates: + Tuesday, 16 November: ??? + Tuesday, 23 November: ??? + 25-28 November: Thanksgiving Break + Tuesday, 30 November: Final integration and testing + Friday, 3 December: Practice and Plan Presentations + Monday, 6 December: Presentation (Sam supplies Pizza!) * UI Tasks: + Finish player user interface. WEEK 11 + Initialization code + "Please display the following message" + Integrate with StubWorld, RealWorld, NetworkWorld, etc. WEEK 13 + Finish world-builder user interface. START FOR WEEK 11, FINISH FOR WEEK 12 + Implement a stub world for quick testing. WEEK 11 validateUser(...) { if (Math.random() < 0.5) return true; else return false; } actionPerformed(...) { if (Math.random() < 0.5) displayAMessage() if (Math.random() < 0.1) throwAnException return "DONE!"; } * World Tasks: + Add capability to map names to objects WEEK11 + Implement verbs A FEW FOR WEEK 11, REST FOR WEEK 12 + Implement things (e.g., with dictionary) WEEK 11 + Write 'store world to file' and 'read world from file'. WEEK 12 + Solution: Write "implements Serializable" (read the Serializable interface) * Player Tasks: + Build more kinds of simulated people. WEEK11 and WEEK12 * Network Tasks: + Figure out bidirectionality and different kinds of "responses" WEEK11 + Figure out how to attach to World and client WEEK12 + Implement the important parts of the World interface WEEK11 + Store configuration data in a text file so that you need not recompile each time WEEK11 * General Tasks: + Enter information about the world WEEK13 + Integrate (and learn CVS to ease integration) WEEK13 + Test test test! WEEK13 /Questions for the Group/ * Should we implement a generic "HolderOfStuff" with add, remove, contains, ...? * Use java.util.Vector, it's like an array, but also provides add, remove, and lots of other fun stuff. (Scheduled for discussion next Monday.) * What are our verbs? * eat OBJ = devour, digest, bite, chew, consume * pickup OBJ = get, take, grab, steal, swipe, lift * drop OBJ = release, let go, discard, throw away * smash OBJ = bash, destroy, hit, decimate * sleep = rest, passout, hibernate, snooze, gotobed * drink OBJ = chug, swallow * shout STRING = yell, scream * talk STRING = say, speak * goto NAMEOFLOCATION = enter * examine OBJ = lookat, inspect * wield OBJ = grab * smile at PERSON * frown at PERSON * give OBJECT to PERSON * throw OBJECT * What kinds of "interesting" simulated people should the people group create? * Professors * Security * RKO * Students (behavior based on major?) * How do the AI people know 'it's time to do something'? * Version one: AI people set a "clock" and do something after a certain amount of time has elapsed. * Version two: The world regularly tells AI people 'You should thinkabout doing something' (EASIER) * Observation: AI people, upon being told that they can do something, may not necessarily do something so that we don't have everything happen at once. /Design Notes/ * World should support broadcast(STRING) * World needs to support String[] listPeople(String room) * World needs to support String[] listContents(String room) * World needs to support String describe(String nameofthing) * People should support react() * Observation: When you create a person, it needs to know what room and what world it is in so that it can call appropriate methods. /Other Tasks/ * Come up with other emotes