|
Funkcja losowa w C |
| Autor |
Wiadomość |
devonport

Posty: 10 Skąd: sky
|
Wysłany: 20 Paź 08 05:16 Funkcja losowa w C
|
|
|
Chcę napisać program który by po dojechaniu robota do przeszkody skręcał losow w lewo bądz w prawo, poprostu był nieprzewidywalny i losowy to szkielet programu w RobotC czyli faktycznie C
| Kod: | for(i=0; ;i++) //petla nieskączona
{
?????? //brakuje funkcji losowej
?????? //brakuje przełącznika
while(SensorValue[sonarSensors] > 25)
{
motor[motorA] = 55; //motor A jedzie do przodu
motor[motorB] = 55; //motor B jedzie do przodu
}
motor[motorA] = 50; //sensor<25 cm wykonuje sie instrukcja skret
motor[motorB] = -50; //sensor<25 cm wykonuje sie instrukcja skret
wait1Msec(600); |
Jak zastosować funkcje losową dla alternatywnej instrukcji?
Mam to zrobione w NXT-G tak:
Pętla for
funkcja losowa random
switch z dwoma altyernatywnymi wyborami
zamkniecie pętli for.
Działa perfekcyjnie
Czekam na wszelkie sugestie |
|
| Ostatnio zmieniony przez devonport 20 Paź 08 06:38, w całości zmieniany 6 razy |
|
|
|
 |
abxyz
Expert programowanie

Pomógł: 18 razy Posty: 166 Otrzymał 28 piw(a) Skąd: zza winkla
|
Wysłany: 20 Paź 08 10:13
|
|
|
Nie mam zielonego pojęcia o RobotC, dopiero dziś się dowiedziałem, że coś takiego wymyślono
Przerobiłem ten listing, tak z nudów, żeby "nabijać posty"
może będzie działać
powodzenia !!!
| Kod: |
for(;;) //pętla nieskończona
{
if(SensorValue[sonarSensors] > 25)
{
motor[motorA] = 55; //motor A jedzie do przodu
motor[motorB] = 55; //motor B jedzie do przodu
}else
{
if(random(100) > 50 )
{
motor[motorA] = 50; //sensor<25 cm wykonuje się instrukcja skręt
motor[motorB] = -50;
wait1Msec(600);
}else
{
motor[motorA] = -50; //sensor<25 cm wykonuje się instrukcja skręt
motor[motorB] = 50;
wait1Msec(600)
}
}
}
|
|
|
_________________ Nie powie ci nawet wiedźma Pleple, czego się dowiesz wprost z Google_ |
| Ostatnio zmieniony przez abxyz 20 Paź 08 10:20, w całości zmieniany 1 raz |
|
|
|
 |
| Wyświetl szczegóły |
 |
devonport

Posty: 10 Skąd: sky
|
Wysłany: 21 Paź 08 05:23
|
|
|
oto cały program w robotC
| Kod: | #pragma config(Sensor, S1, sonarSensors, sensorSONAR)
//*!!Code automatically generated by 'ROBOTC' configuration wizard !!*//
task main()
{
for(;;) //pętla nieskończona
{
if(SensorValue[sonarSensors] > 25)
{
motor[motorA] = 55; //motor A jedzie do przodu
motor[motorB] = 55; //motor B jedzie do przodu
}else
{
if(random(100) > 50 )
{
motor[motorA] = 50; //sensor<25 cm wykonuje się instrukcja skręt
motor[motorB] = -50;
wait1Msec(600);
}else
{
motor[motorA] = -50; //sensor<25 cm wykonuje się instrukcja skręt
motor[motorB] = 50;
wait1Msec(600);
}
}
}}
|
Działa doskonale robocik jezdzi to w lewo to w prawo, a cos innego niż fifty/fifty
też jest ok
Własnie o tą funkcje random mi chodziło ale proste tylko jak się niewie to głowa boli [/list] |
|
|
|
|
 |
|
|