;ò ;Bc@s8dZdZdkZdkZdkZdkZdkZdkTdkl Z l Z l Z l Z l Z lZlZlZlZdklZlZlZdklZdklZdfd„ƒYZd fd „ƒYZd fd „ƒYZd Zdefd„ƒYZdefd„ƒYZdeefd„ƒYZ dS(iN(s*( s load_images load_musics trace_errors char2surfsMyErrors get_localestxt2surfstxtfmtsChildsplayGoodies(sCPSpritesCPGroupsCPinit(sMenuItem(sDATADIRsImgcBstZdZRS(s! Container to store image objects(s__name__s __module__s__doc__(((s./lib/findsound2.pysImg's sSndcBstZdZRS(s! Container to store sound objects(s__name__s __module__s__doc__(((s./lib/findsound2.pysSnd*s sMisccBstZdZRS(s% Container to store all kind of stuff(s__name__s __module__s__doc__(((s./lib/findsound2.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/findsound2.pys__init__6s(s__name__s __module__s__init__(((s./lib/findsound2.pysButton5ss ImageObjectcBs,tZd„Zd„Zd„Zd„ZRS(NcCsKti|ƒ||_|iiƒ|_||_|i |i dt ƒdS(Ns event_type( sCPSprites__init__sselfsimgsimagesget_rectsrectssndssoundsconnect_callbackscallbacksMOUSEBUTTONDOWN(sselfsimgssnd((s./lib/findsound2.pys__init__;s    cCs|ii|ƒdS(N(sselfsrectsmove_ipspos(sselfspos((s./lib/findsound2.pys set_positionBscCst|iƒidƒdS(Ni(s load_musicsselfssoundsplay(sself((s./lib/findsound2.pysplayEscGs|iƒdSdS(s0If this is called the user hits the right image.i N(sselfs erase_sprite(sselfsargs((s./lib/findsound2.pyscallbackHs (s__name__s __module__s__init__s set_positionsplayscallback(((s./lib/findsound2.pys ImageObject:s   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_||_||_||_dddfdddfdddff|_t g|_ t |i|iƒt _ |iƒdS( Ni0i:i iAi[iiaiz(sscreensselfsbackgrsImgsrc_dicsbasepathsbasedirslibdirs gamelevelssNones gameitemssCPinitsMiscsactivess_setup(sselfsscreensbackgrsrc_dicsbasepathslibdir((s./lib/findsound2.pys__init__Qs       - cCsdS(N((sself((s./lib/findsound2.pys__del__^scCs/to"dGtiitdtiƒGHntiitdtiƒ|_tii |iƒ otiitddƒ|_nt tii|i dddƒdƒ}t tii|i dddƒd ƒ}|ii|d d fƒ|ii|d d fƒtiiƒd d f}t||dƒ|_d S( s Set all the stuff we needs Looking for sAlphabetSoundssensFindsound2DatasDatas soundbut.pngisback.jpgii^iN(s_FSDEBUGsosspathsjoinsDATADIRsChildsplayGoodiesslanguagesselfssounddirsexistss load_imageslibdirsimgsbacksbackgrsblitsscreenspygamesdisplaysupdatespossButtons soundbutton(sselfsimgsbackspos((s./lib/findsound2.pys_setupas"    cCsÏg} d|_|i}|\} }}ddf\}}x¨t | |ƒD]—}t |ƒ} | djo d} nt| ddddfƒ} tii|| iƒdƒ} todG| iƒG| GHn| it| | ƒƒqIWto d G| GHntiiƒ o"t|ƒt_tt_ t‚nt!i"| ƒt#t$| ƒ|ƒ\}}||djp |dj7}tod G|G|GHnd|d jd}d }g|_xÊt d|ƒD]¹}d}x t d|ƒD]}||7}y#| i+ƒ}|i-||fƒWnt.j oPq×Xtod G|G|GHn|i/ƒ|ii|ƒ||i0i1ƒ7}q×W||7}q»Wt!i"|iƒtod G|iGHn|ii+ƒ|_2|i2i3ƒ|i4i/ƒdS(s<Listen to the sound and find the image to which it belongs. iiXi(s0s10iÿs.oggschar,sndsobjectss rows,colsi sobject positions self.objectsN(5sobjectssselfsstopssounddirssnddirslevelsstartsendsmaxcolsy_offsetsx_offsetsrangescarschrscs char2surfsimgsosspathsjoinslowerssnds_FSDEBUGsappends ImageObjectspygamesmixersget_initsstrsMyErrorsnames NOSOUNDTXTsextrasrandomsshufflesdivmodslensrowsscolssysxsrowscolspopsobjs set_positions IndexErrorsdisplay_spritesimages get_widthsselected_objectsplays soundbutton(sselfslevelsitemscolssrowssnddirsmaxcolsrowssendsimgsstartssndsobjectsscsobjscarsy_offsetsx_offsetsysxscol((s./lib/findsound2.pysstartssj             cCsFy|iiƒ|_Wntj od|_nX|iiƒdS(Niÿÿÿÿ(sselfsobjectsspopsselected_objects IndexErrorsstopsplay(sself((s./lib/findsound2.pys picked_object¢s 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/findsound2.pys__str__ªscCstdƒSdS(Ns Findsound(s_(sself((s./lib/findsound2.pys helptitle¯scCs8tdƒtdƒdtdƒdtdƒg}|SdS(NsThe aim of the game:sCListen to the sound and click on the character to which it belongs.s sDifficulty : 4-7 yearssNumber of levels : 2(s_stext(sselfstext((s./lib/findsound2.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/findsound2.pysloop»s$  ( s__name__s __module__s__doc__s__init__s__del__s_setupsstarts picked_objects__str__s helptitleshelpsloop(((s./lib/findsound2.pysGameMs    /    (!sRCFILEs_FSDEBUGsosssyssrandomsglobspygamespygame.constantssutilss load_images load_musics trace_errors char2surfsMyErrors get_localestxt2surfstxtfmtsChildsplayGoodiess SpriteUtilssCPSpritesCPGroupsCPinitsCPMenusMenuItems CPConstantssDATADIRsImgsSndsMiscs NOSOUNDTXTsButtons ImageObjectsGame(sImgstxtfmtsrandomstxt2surfs_FSDEBUGs load_musics load_imagesCPGroupsSnds ImageObjectsCPSpritesGames NOSOUNDTXTspygames char2surfsButtonsMyErrorsglobssyssDATADIRsRCFILEsCPinitsChildsplayGoodiessMiscs get_locales trace_errorsMenuItemsos((s./lib/findsound2.pys?s$ =