void Scenario::setNew(){ reset(); // ensure the seed is populated before anything else is set seed.populate(history); // set the environment to new seed values environment = new Environment(*getSurface(), *getMedium()); // TODO: move mesh into setSurface method for Sprites spriteSeed = SpriteSeed(seed, environment->getSurfaceMesh()); // set light to new seed values light = getLight(); // set surface first, then set the player to new seed values player.setSurface(environment->getSurfaceMesh()); setPlayer(seed); sprites.clear(); setSprites(); // sound.loadMusic(); // sound.playMusic(); }
double findMedianSortedArrays(int *nums1, int nums1Size, int *nums2, int nums2Size) { int aStart=0; int bStart=0; int aEnd=nums1Size-1; int bEnd=nums2Size-1; int aIndex=0,bIndex=0; while( (aEnd-aStart)>1 || (bEnd-bStart)>1 ) { double aMid=getMedium(nums1,aStart,aEnd); double bMid=getMedium(nums2,bStart,bEnd); printf("aMid:%lf,bLen:%lf\n",aMid,bMid); if(aMid==bMid) { return aMid; } else if(aMid < bMid) { aIndex = getMediumIndex(aStart,aEnd); bIndex = getMediumIndex(bStart,bEnd); if( (aEnd-aStart)>1 ) aStart=aIndex; if( (bEnd-bStart)>1 ) bEnd=bIndex; } else { aIndex = getMediumIndex(aStart,aEnd); bIndex = getMediumIndex(bStart,bEnd); if( (aEnd-aStart)>1 ) aEnd=aIndex; if( (bEnd-bStart)>1 ) bStart=bIndex; } } printf("here\n"); double aMid=(nums1[aStart]+nums1[aEnd])/2.0; double bMid=(nums2[bStart]+nums2[bEnd])/2.0; return (aMid+bMid)/2.0; }