;ò ;Bc@sdZdZdkZdkZdkZdkZdkZdkTdkl Z l Z l Z l Z l Z lZdklZlZlZdklZdfd„ƒYZdfd „ƒYZd fd „ƒYZd Zd efd„ƒYZdefd„ƒYZdeefd„ƒYZdS(iN(s*(s load_images load_musics trace_errors char2surfsMyErrors get_locale(sCPSpritesCPGroupsCPinit(sMenuItemsImgcBstZdZRS(s! Container to store image objects(s__name__s __module__s__doc__(((s./lib/findsound.pysImg&s sSndcBstZdZRS(s! Container to store sound objects(s__name__s __module__s__doc__(((s./lib/findsound.pysSnd)s sMisccBstZdZRS(s% Container to store all kind of stuff(s__name__s __module__s__doc__(((s./lib/findsound.pysMisc,s sÍIt seems that we cannot use the sound card right now and because this game is all about sound, we just quit. This problem can also be caused by another application which uses the soundcard right now.sButtoncBstZd„ZRS(NcCsti||||ƒdS(N(sMenuItems__init__sselfsimgspossdata(sselfsimgspossdata((s./lib/findsound.pys__init__5s(s__name__s __module__s__init__(((s./lib/findsound.pysButton4ss ImageObjectcBs,tZd„Zd„Zd„Zd„ZRS(NcCsKti|ƒ||_|iiƒ|_||_|i |i dt ƒdS(Ns event_type( sCPSprites__init__sselfsimgsimagesget_rectsrectssndssoundsconnect_callbackscallbacksMOUSEBUTTONDOWN(sselfsimgssnd((s./lib/findsound.pys__init__:s    cCs|ii|ƒdS(N(sselfsrectsmove_ipspos(sselfspos((s./lib/findsound.pys set_positionAscCst|iƒidƒdS(Ni(s load_musicsselfssoundsplay(sself((s./lib/findsound.pysplayDscGs|iƒdSdS(s0If this is called the user hits the right image.i N(sselfs erase_sprite(sselfsargs((s./lib/findsound.pyscallbackGs (s__name__s __module__s__init__s set_positionsplayscallback(((s./lib/findsound.pys ImageObject9s   sGamecBs_tZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z RS( sX Findsound - part of childsplay.py, a suite of educational games for young children. cCs‰||_||_|it_|it_||_||_||_dddf|_t g|_ t |i|iƒt _ |iƒdS(Nslevel1slevel2slevel3(sscreensselfsbackgrsImgsrc_dicsbasepathsbasedirslibdirs gamelevelssNones gameitemssCPinitsMiscsactivess_setup(sselfsscreensbackgrsrc_dicsbasepathslibdir((s./lib/findsound.pys__init__Ps        cCsdS(N((sself((s./lib/findsound.pys__del__]scCsîtii|iddƒ|_tii|iddƒ|_ttii|idddƒdƒ}ttii|idddƒdƒ}|i i |ddfƒ|i i |ddfƒt iiƒd d f}t||dƒ|_d S( s Set all the stuff we needs FindsoundDatasSoundssImagessDatas soundbut.pngisback.jpgii^iN(sosspathsjoinsselfslibdirssounddirsimagedirs load_imagesimgsbacksbackgrsblitsscreenspygamesdisplaysupdatespossButtons soundbutton(sselfsimgsbackspos((s./lib/findsound.pys_setup`s    cCsËtii|i|ƒ} tii|i|dƒ}g} d|_ dddf\}}}x‘ti|ƒD]€}t|dƒ} tiitii|ƒƒ\}}tii| |dƒ} todG|G| GHn| it| | ƒƒqjWto d G| GHntiiƒ o"t|ƒt_t t_!t‚nt"i#| ƒt$t%| ƒ|ƒ\}}||djp |dj7}tod G|G|GHnd }d }g|_ xÊt*d|ƒD]¹}d}x t*d|ƒD]}||7}y#| i-ƒ} | i/||fƒWnt0j oPqÓXtod G|G|GHn| i1ƒ|i i| ƒ|| i2i3ƒ7}qÓW||7}q·Wt"i#|i ƒtodG|i GHn|i i-ƒ|_4|i4i5ƒ|i6i1ƒdS(s<Listen to the sound and find the image to which it belongs. s*.pngiiŒidiis.oggsimg,sndsobjectss rows,colsi(i sobject positions self.objectsN(7sosspathsjoinsselfssounddirslevelsSdirsimagedirsIdirsobjectssstopsy_offsetsx_offsetsmaxcolsglobsfiles load_imagesimgssplitextsbasenamesrootsextssnds_FSDEBUGsappends ImageObjectspygamesmixersget_initsstrsMyErrorsnames NOSOUNDTXTsextrasrandomsshufflesdivmodslensrowsscolssysxsrangesrowscolspopsobjs set_positions IndexErrorsdisplay_spritesimages get_widthsselected_objectsplays soundbutton(sselfslevelsitemsIdirscolssfilesrowsmaxcolsrowssimgssndsSdirsobjectssobjsextsy_offsetsx_offsetsysxsrootscol((s./lib/findsound.pysstartosf $         cCsFy|iiƒ|_Wntj od|_nX|iiƒdS(Niÿÿÿÿ(sselfsobjectsspopsselected_objects IndexErrorsstopsplay(sself((s./lib/findsound.pys picked_objects cCsdSdS(sxMust return the original, not translated, title of this game. It's needed by the high score class of childsplay.s FindsoundN((sself((s./lib/findsound.pys__str__¥scCstdƒSdS(Ns Findsound(s_(sself((s./lib/findsound.pys helptitleªscCs8tdƒtdƒdtdƒdtdƒg}|SdS(NsThe aim of the game:s?Listen to the sound and click on the image to which it belongs.s sDifficulty : 3-5 yearssNumber of levels : 3(s_stext(sselfstext((s./lib/findsound.pyshelp­s0cCsÒtdf\}t_x)|D]!}|itjo |}PqqWy^|i i |ƒ}|o|t_|i ƒn|i i |ƒ}|o|i iƒnWntƒGHtidƒnX|itifSdS(Nii(sNonesitemsMiscsscoreseventsseventstypesMOUSEBUTTONDOWNsselfsselected_objectsupdatesvs picked_objects soundbuttonsplays trace_errorssyssexitsstop(sselfseventsseventsitemsv((s./lib/findsound.pysloop¶s$  ( s__name__s __module__s__doc__s__init__s__del__s_setupsstarts picked_objects__str__s helptitleshelpsloop(((s./lib/findsound.pysGameLs    .    (sRCFILEs_FSDEBUGsosssyssrandomsglobspygamespygame.constantssutilss load_images load_musics trace_errors char2surfsMyErrors get_locales SpriteUtilssCPSpritesCPGroupsCPinitsCPMenusMenuItemsImgsSndsMiscs NOSOUNDTXTsButtons ImageObjectsGame(sImgsrandoms_FSDEBUGs load_musics load_imagesCPGroupsSnds ImageObjectsCPSpritesGames NOSOUNDTXTspygames char2surfsButtonsMyErrorsglobssyssRCFILEsCPinitsMiscs get_locales trace_errorsMenuItemsos((s./lib/findsound.pys?s$ +