void Shinkansen::colorDetection()

in str/apps/src/Shinkansen.cpp [125:158]


void Shinkansen::colorDetection(){
	colorid_t circleColor, blockColor;
	int8_t count = 0;
	while(1){
		circleColor = colorSensor.getColorNumber();
		if(circleColor == COLOR_BLUE || circleColor == COLOR_GREEN || circleColor == COLOR_YELLOW || circleColor == COLOR_RED){
			ev3_speaker_play_tone (NOTE_FS6, 100);
			basicWalker.backStraight(50);
			lifter.changeDefault(60);
			blockColor = colorSensor.getColorNumber();
			while(blockColor != COLOR_BLUE && blockColor != COLOR_GREEN && blockColor != COLOR_YELLOW && blockColor != COLOR_RED){
				if(count > 10)break;
				basicWalker.goStraight(10, 10);
        		blockColor = colorSensor.getColorNumber();
				count++;
        	}
			lifter.changeDefault(-60);
			if(circleColor == blockColor){
				basicWalker.goStraight(10, 50);
				ev3_speaker_play_tone (NOTE_FS6, 100);
			}else{
				basicWalker.goStraight(10, 230 - 10 * count);
				basicWalker.backStraight(100);
        // 古いバージョン
				// basicWalker.backStraight(10, 100);
				ev3_speaker_play_tone (NOTE_FS6, 200);
				
			}
			lifter.liftDown();
    		lifter.changeDefault(0);
			break;
		}
	}
}