flashbookrps.docx
- 文档编号:18487050
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:21
- 大小:382.22KB
flashbookrps.docx
《flashbookrps.docx》由会员分享,可在线阅读,更多相关《flashbookrps.docx(21页珍藏版)》请在冰点文库上搜索。
flashbookrps
Chapter2:
Rock-paper-scissors
Concepts,skillsandtools
Inthischapter,youwillcreateacomputerversionofthechildhoodplaygroundgame"rock,paper,scissors"—agameplayedbytwopeopleusinghandgestures.Inthisversion,ahumanplayerplaysagainstthecomputer.Theplayerselectsachoiceusingpicturebuttonsonthescreen.TheprogramyouwillwritemakesthechoiceforthecomputerusingfunctionsbuiltintoFlash(andcommoninmanycomputerlanguages)thatproducerandomresults,thatis,resultsshowingnoparticularpattern.
Buildingthisapplicationwillgiveyouexperiencecreatinggraphicalbuttons,programmingrandomresponsesforthecomputerandtheimplementationoftherulesofagame,andinvokinganimationtodisplaytheresults.
Youwillusethefollowinggeneralprogrammingconcepts,skillsandtoolsforRock,Paper,Scissors:
∙Writingcodetohandleanevent
∙Useofbuilt-infunctionforgeneratingrandomresults(theFlashfunctionMath.Random)
∙Assigningnumericalvaluesfordiscretechoices
∙Logicaltests(theFlashstatementistheifstatement)
TheFlashfeaturesusedtoconstructthisgameinclude:
∙Buttonsymbols
∙Objectactions
∙goToAndPlaystatement
∙labelsforframes
∙frame-by-frameanimation
∙Textfields
Descriptionofthegame
Intheplaygroundgame,eachplayermakesoneofthreechoices:
rock,paperorscissorsusinghandgestures.Therulesofthegameare:
∙Rockbreaksscissors–rockwins
∙Scissorscutspaper–scissorswins
∙Papercoversrock–paperwins
∙Ifbothplayersmakethesamemove,itisatie.
HowthisversionofRock,Paper,Scissorsworks
Theversionyouwillprogrammatchesahumanplayeragainstthecomputer.Theplayermakesamovebyselectingoneofthethreechoices.Theopeningscreenis
Therock,paperandscissorsgraphicsareactuallybuttons.Whentheplayerusesthemouseandclicksononeofthesesymbols,theprogramresponds.Thefollowingscreenshowsapossibleoutcomewhentheplayerselectstherock.Thetextwillguideyoutoprogramtwoformsofdisplaytotheplayer:
textonly,asindicatedhereandtextplusanimatedsequences.Youwillseesomesnapshotsfromananimatedsequenceofascissorscuttingpaperlateron.
KeyDesignIssues
Theroleofthedesignerandprogrammerofagameistoproducetheinterfacetoacceptplayermoves,generatecomputermoves,applytherulesofthegame,anddisplaytheresults.Thekeydesigntasksforrock,paper,scissorsare
∙Designtheuserinterfacetoallowtheplayertoinputachoice.
∙Generateachoiceforthecomputer
∙Determinetheresult
∙Displaytheresults
Solutionstoeachofthesedesignandprogrammingtasksarepresentednext.Usethesesuggestionsasguidelineswhenbuildingyourownversionofrock,paper,scissors.
Task:
Designtheuserinterfacetoallowtheplayertoinputachoice.
Logic:
Theplayermustchoosebetweenthethreeoptions:
rock,paper,orscissorsanddosowithoutknowingthecomputer'smove.Thedesignmustmakethiseasyfortheplayertodoandfortheprogrammingsystemtorecognizethatithastakenplace.
Solution:
Putthreebuttons,thatis,clickableimagesonthescreenrepresentingarock,apieceofpaperandascissors.Theplayermakeshischoicebyclickingononeoftheimages.Flashhasafeatureforprogrammerstospecifywhatistermedanobjectactionthattakesplacewhenaneventsuchasclickingonabuttonoccurs.Anothernameforthisisaneventhandler.Youwillspecifycodetohandleeachofthethreeevents:
theplayerclickingontherock;theplayerclickingonthepaper;andtheplayerclickingonthescissors.
Task:
Generateachoiceforthecomputer.
Logic:
Thecomputer,actingasthesecondplayerinthegame,mustalsomakeachoice.Computersdonotactontheirown.You,theprogrammer,willgeneratethechoice:
rock,paper,orscissors.Tobefair,youmustdothisindependentoftheplayer'schoice.
Solution:
YouwillusetherandomfacilitiesinFlashtogenerateanumberandthenmapthatnumbertooneofthethreechoices.
Task:
Determinetheresult.
Logic:
Oncebothplayermoveandcomputermoveareknown,theprogrammustapplytherulesofthegame.
Solution:
Ineachofthethreeplaceswhereyouspecifythecodetohandlethebuttonrelease,youwilluseswitch,Flash'sversionofthecasestatement,tocheckforthedifferentconditions.Yourlogicwillrefertotheplayer'smoveandthegeneratedcomputermove.
Task:
Displaytheresults.
Logic:
Afteryourcodedeterminesthewinnerandthespecificrulethatapplies,youmustdisplaythisresulttotheplayer.
Solution:
Flashhasfacilitiestogenerateanimation.Youwillcreate3sequencesforthe3distinctwinningconditions:
rockbreaksscissors;scissorscutspaper;andpapercoversrock.YourcodewillinvoketheappropriateanimationbyusingthegoToAndPlaycommand.Inaddition,yourcodewilldisplayinwordswhathappenedusingwhatFlashtermsadynamictextfield.
Preparingtoprogram
Flashhasaspecialsymboltypecalledbutton.SymbolssuchasbuttonscannotbedrawndirectlyontheStage.YoueithercreateasymbolwithbuttonbehaviororacquireonefromtheCommonLibrary.Inthefirstchapter,youcoulduseastandardbuttonfromtheCommonLibrary.However,forthisapplication,youshouldcreateyourownbuttons.
Unlikemoviesymbols,buttonshavejust4framesandtheserelatetothepositionofthemouse,notthepassingoftime.Theframesareup,over,downandhit.Theupframewillindicatethelookofthebuttonwhenthemousecursorisnotoverit.Theoverframereferstojustthat:
thelookofthebuttonwhenthecursorisoverit.Thedownframespecifiesthebuttonwhentheplayerispressingdown.Thegraphicinthehitframespecifieswhatareaistobeconsideredahit.Byspecifyingthem,youcanmakethebuttonchangeinresponsetotheuser'saction.Flashbuttonscanbeanyshapeandyoudonothavetochangethegraphicsforthedifferentframes,thoughmanypeopleitisgoodtoprovidefeedbacktousersforanyactions.Forthisgame,youwilldrawarock,apaper,andascissorsfortheupframes,respectively.Youcandecidewhattodofortheotherframes.
Thedesignofabuttonisdistinctfromprogramminganyeventsrelatingtothebutton.YoudesignthebuttonafterclickingonInsert/NewSymbol.Thisopensupaneweditingwindow.Afterdesigningeachofthe4framesofeachbutton,youwillreturntoeditingthemainmovie.Atthispoint,therearenobuttonsinthemainmovie.Youhavetwomoretaskstoperformforeachbutton.Youmustplaceeachbuttononthestage.Next,whenoneofthesebuttonsisselected,saytherock,youopentheActionspanelandprogramtheactionforrespondingtotheplayerclickingontherock.Forthisapplication,youwillusethereleaseevent.Thetemplateforthisisthefollowing:
on(release){
}
Theeventindicatedby'release'istheplayerreleasing,lettingup,themousebuttonoveryourdrawingoftherock.(SeeRelatedFlashfeaturesbelow).Thecodein-betweenthetwobrackets.
Otherprogrammingsystemshavefacilitiesforimplementingbuttons,thoughtheyvarywidelyinterminologyandexactusage.VisualBasic,forexample,hascommandbuttoncontrolsandseveraleventproceduresalreadyidentifiedforyouthewritethecode.InJavaScript,youcanspecifyonClick=stringindicatingtheactionwithinananchortag.LibrariesexistforJavaandJavaappletsthatsetupinterfacesforyoutowritethecode.Similarly,librariesexistforC++thatprovidefacilitiesforbuttons.
Thenexttaskisgeneratingachoiceforthecomputermove.Oneapproachistocheat!
Thatis,youcanprogramthecomputertowinalwaysorlosealwaysbychoosingamovebasedontheplayer'schoice.Thatisnotwhatisrecommendedhere.Instead,usethebuilt-inFlashfacilityforproducingrandomnumbers.ThisisMath.random,therandommethodoftheMathobject.(Methodisthenameforafunctionassociatedwithanobject.Youwilllearnaboutdefiningyourownobjectsinlaterchapters.)AcalltoMath.randomwillreturnavaluefromzerotolessthanone.Flashusesanalgorithmthatproducesresultswithnoapparentpattern.Mostcomputerlanguageshavesimilarfacilitiesandyoucanacceptthattheresultswillberandom.(Actually,incertaincircumstances,itisimportanttoevaluatetherandomnessoftheresults.Severalyearsago,astatelotterysystemwasfoundtonotproducerandomresults.)
Youneedtoworkalittlemoretogetwhatyouneedforthisgame.TheMath.randomproducesavaluegreaterthanorequaltozeroandlessthanone.Youneedtomakeaselectionfromamong3things.Thesolutionistomultiplythisvalueby3,gettingavaluewecancallvalue3,andthendeterminethebiggestinteger(wholenumber)thatisnotbiggerthanthevalue3.Thiscanbedoneinonelineofcode:
computermove=Math.floor(3*Math.random());
Math.floorisanothermethodassociatedwiththeMathobject.Itdoesexactlywhatweneedhere.Thefloormethodisdefinedasthebiggestwholenumbernotbiggerthanitsargument.Othercomputerlanguageshaveasimilarbuilt-infunction,butitmaybecalledsomethingdifferent.Forexample,inVisualBasic,thenameisInt.Theequalsignsignifiesanassignment;thevalueoftheexpressionontherightoftheequalsignisplacedinthevariablenamedattheleftoftheequalsign.Youreadthislineofcodestartingattheright,frominsidetheparenthesisout.Theresultwillbeeither0,1or2inthevariablecomputermove.Wewillsayarbitrarilythat0correspondstoachoiceofrock,1toachoiceofpaper,and2toachoiceofscissors.Thisworksaslongasweareconsistent.Thisassignmentofnumberstochoicesisusedinthecod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- flashbookrps