2017-03-03 2 views
0

Ich arbeite am Finch Roboter und habe Probleme mit einer der Funktionen. my_finch.getObstacleSensors(). my_finch ist der Roboter. Dies ist, was die API sagt;Java Finch Roboter Obscetacle Sensoren

public boolean [] getObstacleSensors() Gibt den Wert der beiden Hindernissensoren als 2 Element boolean-Array. Der linke Sensor ist das 0. Element und der rechte Sensor ist das 1. Element. Returns: Die Werte von linken und rechten Hindernissensoren in einem 2-Element-Array

Was ich versuche, die Werte des rechten und des linken Sensor zu tun ist, abgerufen werden, so dass, wenn die Werte gleich sind dann die Objekt, das erkannt wird, hat sich nicht bewegt, aber wenn sich die Werte geändert haben, hat sich das Objekt bewegt und der Roboter kann weiter folgen.

Ich habe Probleme mit der Wiederherstellung der Daten aus dem booleschen Array. Heres, was ich versuche:

boolean[] Sense; 
System.out.println(Sense[1]); 

Output: False.... 

System.out.println(my_finch.getObstacleSensors()); 

Output: [[email protected] 
[[email protected] 
[[email protected] 
[[email protected] 
[[email protected] 
[[email protected] 
ECT. 

Zuerst war ich nur, um herauszufinden, wie diese Funktion zu nutzen, oder soll ich anderes zu sehen versuchen, etwas, wenn das Objekt bewegt hat oder nicht?

Antwort

1

Ihr Problem ist aufgetreten, weil das Array-Objekt keine toString-Methode hat und deshalb System.out.println(my_finch.getObstacleSensors()); die booleschen Werte nicht gedruckt wird.

versuchen System.out.println(Arrays.toString(my_finch.getObstacleSensors()));

+0

danke das hat funktioniert. Dies läuft in einer Schleife, so dass die Ergebnisse weiterhin ausgedruckt werden. Was ich tun möchte, ist so, dass, wenn [wahr, falsch] zweimal hintereinander auftritt, z. Programm würde aufhören. Wie auch immer ich das machen kann? – Bart123