Artem - zawodnik sumo (wymaga drobnych poprawek , ale mi go zaliczy³) if (decyzja=='Y' || decyzja=='y') { // NXT::Sensor::SetSonar(&comm, IN_4); //cout<<"SonarValue = "<<NXT::Sensor::GetSonarValue(&comm, IN_4); //NXT::Sensor::SetSonarOff(&comm, IN_4); bool flag = true; bool find = true; bool closed = false; char c; int bright; int dark; int mean; NXT::Motor::SetForward(&comm, OUT_B, 20); NXT::Motor::SetForward(&comm, OUT_C, 20); NXT::Sensor::SetLight(&comm, IN_3, 1); Wait(50); bright = NXT::Sensor::GetValue(&comm, IN_3); while (flag) { Wait(50); if (NXT::Sensor::GetValue(&comm, IN_3) < 50) { NXT::Motor::SetForward(&comm, OUT_B, 0); NXT::Motor::SetForward(&comm, OUT_C, 0); dark = NXT::Sensor::GetValue(&comm, IN_3); mean = (bright + dark)/2; flag = false; } } while (true) { if (NXT::Sensor::GetValue(&comm, IN_3) < mean) { int delay = rand() % 2000 + 100; NXT::Motor::SetForward(&comm, OUT_B, 20); NXT::Motor::SetForward(&comm, OUT_C, 0); Wait (delay); if(closed) { NXT::Motor::SetForward(&comm, OUT_B, 0); NXT::Motor::SetForward(&comm, OUT_C, 0); NXT::Motor::SetForward(&comm, OUT_A, 10); Wait(1000); NXT::Motor::Stop(&comm, OUT_A, 0); closed = false; } } NXT::Sensor::SetSonar(&comm, IN_4); if (!closed && NXT::Sensor::GetSonarValue(&comm, IN_4) < 15) { NXT::Motor::SetForward(&comm, OUT_A, -10); Wait(1000); NXT::Motor::Stop(&comm, OUT_A, 0); closed = true; } NXT::Sensor::SetSonarOff(&comm, IN_4); Wait(100); NXT::Motor::SetForward(&comm, OUT_B, 20); NXT::Motor::SetForward(&comm, OUT_C, 20); if(kbhit()==true) { c=getch(); } if (c == 'k') { NXT::Sensor::SetLight(&comm, IN_3, 0); NXT::Motor::SetForward(&comm, OUT_B, 0); NXT::Motor::SetForward(&comm, OUT_C, 0); NXT::Sensor::SetSonarOff(&comm, IN_4); break; } } if(kbhit()==true) { c=getch(); } if (c == 'k') { NXT::Sensor::SetLight(&comm, IN_3, 0); NXT::Motor::SetForward(&comm, OUT_B, 0); NXT::Motor::SetForward(&comm, OUT_C, 0); NXT::Sensor::SetSonarOff(&comm, IN_4); break; } break; }
monibach