Eine Woche vor dem Abgabetermin haben wir uns getroffen, um einen Film
zu drehen. In diesem Film präsentieren wir eine Zusammenfassung unserer ganzen
Arbeit. Dazu haben wir noch die letzten Änderungen und Abmachungen für unsere
schriftliche Arbeit vollbracht.
Heute haben wir verschiedene kleine Probleme gelöst. Erstens haben wir einige Bilder löschen müssen, und sie durch Texte ersetzten, da sie zu viel Platzt auf dem NXT brauchten. Wir waren erstaunt, wir gross ein Bild war. Es gibt auf einem NXT 157 KB Platzt, und ein Bild braucht ungefähr 12 KB. Wir haben auch eine kleine Zusammenfassung des gewünschten Auftrags programmiert. Man kann damit sehen, welche Figur und Farbe man gewählt hat. Eine geschätzte Zeit ist auch zu sehen. Wenn man einen Fehler beim Auftrag gemacht hat, kann man immer noch abbrechen und die Wahl von Anfang an beginnen.
Dann haben wir an der Eiffelturm-Herausforderung gearbeitet (siehe Samstag, den 24. November).
Wenn der Drucker einen Lego-Stein holen will und der Druckkopf tiefer als das Lager liegt, muss er zuerst nach oben gehen und dann nach hinten. Falls der Druckkopf aber höher ist als das Lager, so muss er zuerst nach hinten und erst dann hinunter gehen, um die Figur nicht zu zerdrücken.
Wenn man den Lego-Stein genommen hat und ihn an einer Stelle setzen will, muss der Druckkopf mindestens 196° höher sein als die Spitze der Figur. Die 196° bestehen aus 60° um die Noppen der Legos zu überfliegen und 136°, da wir nicht wissen, ob wir einen schon gesetzten Stein überfliegen müssen.
Außerdem haben wir ein Problem mit der Rundung für die Übersicht des Baus gehabt. Wenn man mit der Methode „Math.round“ 4.5 rundet, kommt die Zahl 5 heraus. Wenn man aber 90/20 rundet, kommt 4 heraus!
Das ist das letztes Problem, bevor wir unser Projekt abschließen.
Heute haben wir probiert eine Übersicht des Ablaufes des Baues zu
programmieren. Zuerst haben wir eine Menge Variablen durch die verschiedenen
Klassen (oder Threads) vererben sollen. Jede Variablen enthalte eine der
folgenden Informationen: wie lang braucht man um die Figur zu drucken, wie
viele Lego-Steine brauchen wir um die Figur zu bauen und wie viele Lego-Steinen
schon platziert sind. Diese Variablen waren also „Integer“-Variablen (Datentyp
nur für ganze Zahlen). Mit diesen Variablen können wir die Arbeit, die geleistet
wurde, in Prozent berechnen:
Int Prozent = PlazierteStein * 100 / TotalStein.
Dann wollten wir noch einen Prozentbalken machen, der diesen Ablauf
zeigte. Was also neu zu beachten ist, ist die Grösse dieses Balkens. Die
maximale Grösse (100%) ist gleich wie seine Grösse. Die Berechnung lautet wie
folgendes:
Int Prozentbalken = Prozent /100 * Balkens .
Es hat aber nicht funktioniert! Wir haben lang gesucht warum:
Eine Integer unterstützt nur ganze Zahlen. Am Anfang der Berechnung
„Fortschrittsbalken“ werden aber die Prozente durch 100 geteilt! Es ist also
keine Integer mehr. Um dieses Problem zu lösen muss man die Berechnung einfach
so umstellen.
Int Prozentbalken = Prozent * Grösse des Balkens / 100.