int main(void) { setupADC(); setupStepperMotor(); startTimer(); USART_init(); mouse.velocity = 0; mouse.maxVelocity = 5000; mouse.acceleration = 2000; mouse.deceleration = 10000; enableDrive(1); turnOnTimers(1,1); for(int i = 0; i < 10; i++) { int right = isWallRight(); int front = isWallFront(); int left = isWallLeft(); if(!right) { rotateRight(); } else if(front && !left) { rotateLeft(); } else if(front) { moveBackwardsAndCorrect(); } if(left && right) mouse.IR_CORRECT = 20; moveForwardAndStop(); mouse.IR_CORRECT = 0; } turnOnTimers(0, 0); enableDrive(0); while(1==1) { } }
bool MainWindow::superDfs() { if (stopBot) return 1; widget->botLast += 100.0 / input->n / input->n / input->h / 2; integerCoord = getRealCoord(); w[integerCoord.x][integerCoord.y][integerCoord.h] = true; int sp[6]; for (int i = 0; i < 6; i++) sp[i] = i; for (int i = 1; i < 6; i++) swap(sp[i], sp[rand() % i]); for (int i = 0; i < 6; i++) { if (sp[i] == 0) if (!w[integerCoord.x - 1][integerCoord.y][integerCoord.h] && !isWallLeft(integerCoord)) { integerCoord.x -= 1; standartMove(genFPoint(integerCoord.x + 1.5, integerCoord.y + 0.5, integerCoord.h + 0.5), genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5)); integerCoord.x += 1; } if (sp[i] == 1) if (!w[integerCoord.x][integerCoord.y + 1][integerCoord.h] && !isWallForward(integerCoord)) { integerCoord.y += 1; standartMove(genFPoint(integerCoord.x + 0.5, integerCoord.y - 0.5, integerCoord.h + 0.5), genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5)); integerCoord.y -= 1; } if (sp[i] == 2) if (!w[integerCoord.x][integerCoord.y - 1][integerCoord.h] && !isWallBackward(integerCoord)) { integerCoord.y -= 1; standartMove(genFPoint(integerCoord.x + 0.5, integerCoord.y + 1.5, integerCoord.h + 0.5), genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5)); integerCoord.y += 1; } if (sp[i] == 3) if (!w[integerCoord.x + 1][integerCoord.y][integerCoord.h] && !isWallRight(integerCoord)) { integerCoord.x += 1; standartMove(genFPoint(integerCoord.x - 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5), genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5)); integerCoord.x -= 1; } if (sp[i] == 4) if (!w[integerCoord.x][integerCoord.y][integerCoord.h + 1] && !isWallUp(integerCoord)) { integerCoord.h += 1; standartMove(genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h - 0.5), genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5)); integerCoord.h -= 1; } if (sp[i] == 5) if (!w[integerCoord.x][integerCoord.y][integerCoord.h - 1] && !isWallDown(integerCoord)) { integerCoord.h -= 1; standartMove(genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 1.5), genFPoint(integerCoord.x + 0.5, integerCoord.y + 0.5, integerCoord.h + 0.5)); integerCoord.h += 1; } } return 0; }