Wir programmieren Teil 4

Dieses ist der vierte Teil, hier geht es zum 3. Teil.

Zuerst wie immer zur Lösung. Dieses mal ist meine Musterlösung ggf. schwieriger zu verstehen, da ich weitere Befehle genutzt habe, und das Programm etwas umgestaltet habe. Dieses wurde langsam notwendig, um den Überblick nicht zu verlieren.

Merke:

  1. Ein kurzes Programm ist besser als ein langes!
    (Kommantare spielen hierbei keine Rolle)
  2. Kommentare helfen das Programm auch nach ein paar Wochen noch zu verstehen.
  3. Zerteile das Programm in sinnvolle Einheiten. Dieses macht die Fehlersuche einfacher.
    (Ich habe z.B. neue Befehle definiert.)

In der Lösung verstecken sich 3 Fehler! Dieses sind ein kleiner leichter Syntaxfehler und 2 Fehler, die die Funktion des Prorammes stören.
Viel erfolg beim finden!

Achja, die Schläger steuert man mit den Tasten a, y, k, m.

// Koordinaten und Geschwindigkeiten des Balles
float x = 0; // float meint Fließkomma, also auch Kommawerte sind erlaubt.
float y = 0; // Dieses ist notwendig für das langsame Beschleunigen.
int z=0; // Zähler, für das Erhöhen der Geschwindigkeit
float vx = 3
float vy = 3; // Zwei Schläger, deren Position und Geschwindigkeit
// wir in 2 Tabellen speichern.
int[] sy=new int[2];
int[] svy={4,4}; boolean[] k=new boolean[526];
// --------------------------------------------------------
// Setup, also Erstellen des Programmfensters
void setup() {
size(300, 200); smooth(); frameRate(30);
}
// --------------------------------------------------------
// Hauptfunktion
void draw() {
background(0); // Anzeige löschen
ball();
schlaeger();
}
// --------------------------------------------------------
// Funktion, in der die Bewegung des Balls stattfindet
void ball() {
fill(0,0,255); stroke(0,0,255);
ellipse(x,y,10,10);
// y-Bewegung
y=y+vy;
if (y>height+5) { y=height+5; vy=-abs(vy); }
if (y < 5 ) { y=5; vy=abs(vy);}
// x-Bewegung
x=x+vx;
if (x > width-5) {
if ( y > sy[1] && y < sy[1]+30 ) {
x=width-5;
vx=-abs(vx); // abs bedeutet Betrag, also nimmt den positiven Zahlenwert
// "-abs()" stellt also sicher, dass die Geschwindigkeit
// negativ ist. der Feste Wert "-3" würde verhindern,
// dass der Ball schneller wird.
} else {x=5; vx=3; vy=3;}
}
if (x < 5 ){
if ( y > sy[0] && y < sy[0]+30 ) { x=5; vx=abs(vx); }
else { x=width-5; vx=-3;vy=3;}
}
// Den Ball beschleunigen
z++;
if (z>90) { // alle 90 Durchgänge, also all 3 Sekunden
vx*=1.1; // wird der Ball um 10% schneller
vy*=1.1; // vy*=1.1 ist die Kurzschreibweise für vy=vy*1.1
z=0;
}
}
// --------------------------------------------------------
// Funktion, die die Steuerung der Schläger übernimmt
// Umlaute dürfen für Befehls- und Variablen-Namen nicht genutzt werden.
void schlaeger () {
// k[??] enthält ja ggf. den Wert "true", aber das ist auch der Wert,
// der bebraucht wird, um den nachfolgenden Block auszufüren.
// k[65]==true ist ungeschickt programmiert gewesen.
if (k[65]) { sy[0]+=-svy[0]; }
if (k[89]) { sy[0]+=+svy[0]; }
if (k[75]) { sy[1]+=-svy[1]; }
if (k[77]) { sy[1]+=+svy[1]; }
// eine "Schleife", die von i=0 so lange wiederholt wird, bis i nicht mehr
// keiner ist als 2. "i++" ist eine verkürzte Schreibweise für "i=i+1".
for (int i=0;i < 2;i++) {
if (sy[i] < 0) { sy[i]=0; }
if (sy[i] > height-50) { sy[i]=height-50; }
}
fill(255,0,0); stroke(255,0,0);
rect(0 ,sy[0],3,30);
fill(0,255,0); stroke(0,255,0);
rect(width-3,sy[1],3,30);
}
// --------------------------------------------------------
// Hilfsfunktionen, hier Tastaturabfragen
void keyPressed() { k[keyCode]=true; }
void keyReleased() { k[keyCode]=false;}

Ein Tipp zum Syntaxfehler: meist werden ";" vergessen und Klammern werden nicht geschlossen.

Beim nächsten Mal bauen wir noch eine Punkteauswertung ein. Bis morgen mit dem Teil 5!

Vielleicht auch interessant:

Termine

  • 20.05.–22.05. P5-Prüfungen
  • 20.05. Unterrichtsfrei
  • 24.05. Instituto Cervantes (Bremen) Dele-AG 07:00-17:00
  • 30.05.–31.05. Unterrichtsfrei
  • 03.06. FK Spanisch 17:00-19:00
  • 04.06. Fachkonferenz Französisch 16:00-17:00
  • 04.06. Fachkonferenz Erdkunde 16:00-17:00
  • 04.06. Fachkonferenz Englisch 17:00-18:00
  • 04.06. Schulvorstand 18. Uhr 18:00-20:00
  • 05.06. Fachkonferenz Kunst 16:00-17:00
  • 06.06. Schwimmen Jg10
  • 06.06. ASA 16. Uhr
  • 06.06. Mitteilung Abi-Ergebnisse
  • 10.06.–11.06. Unterrichtsfrei
  • 12.06. Meldeschluss Divergenzprüfungen
  • 12.06. Beirat Förderverein
  • 12.06. Fachkonferenz Sport 17:00-18:00
  • 14.06. Sommerkonzerte 17. und 19.30 Uhr 17:00-21:30
  • 15.06. Pangea-Wettbewerb 3. Runde
  • 17.06.–21.06. England 7, Fahrt 10
  • 17.06. Vorbesprechung Projekte 5.+6.Std.
  • 17.06. LRSM 9a 08:00-16:00
  • 17.06. Fachkonferenz Werte und Normen 16:00-17:00
  • 18.06. Auslandsinfo Klasse 9
  • 18.06. LRSM 9b 08:00-16:00
  • 19.06. Projekttag 1
  • 19.06. 5d Exkursion Ideen Expo 5d
  • 19.06.–20.06. Exkursion Stage-Theater Hamburg 5b
  • 19.06. Exkursion Ideenexpo Hannover 5d 07:55-17:05
  • 19.06. LRSM 9c 08:00-16:00
  • 19.06. Exkursion Sealife/ Superfly Hannover 5a 08:00-16:30
  • 20.06. Projekttag 2
  • 20.06. Ökogarten IGS Peine 5d 07:55-13:10
  • 20.06. LRSM 9d 08:00-16:00
  • 21.06. Projekttag 3 / Projektvorstellung
  • 24.06.–25.06. Divergenzprüfungen
  • 24.06. ZK1 5-8
  • 25.06.–26.06. Wandertag Forsthaus Katensen 6a
  • 25.06. ZK2 9-11
  • 25.06. Exkursion Wolfsburg -Autostadt- 11e 08:00-17:00
  • 26.06. Sportabzeichen Jg8
  • 26.06. Abi-Proben
  • 28.06. Schulschluss nach der 2. Stunde
  • 28.06. Abiturgottesdienst 08:30-09:30
  • 28.06. Abi-Entlassung 10:00-13:00
  • 01.07. Exkursion Müllsammelaktion 10c 07:55-14:00
  • 02.07. Sportabzeichen Jg7
  • 02.07. Allg. DB 13.30 Uhr
  • 02.07. Exkursion Heidepark Soltau 6a
  • 03.07. Zeugnisse Schulschluss nach der 3. Stunde 00:07-00:07
  • 04.07.–14.08. Sommerferien
  • 04.07. Abi-Ball
  • 21.08. Podiumsdiskussion Amnesty International 17:00-19:00
  • 23.09.–27.09. Kennenlernfahrt Jg. 5
  • 19.12. Adventskonzert Nr. 1 17:00-19:00
  • 19.12. Adventskonzert Nr. 2 19:30-21:30
  • 27.01.–31.01. Ski- und Snowboardfahrt
  • 27.01.–29.01. Musik-Probenfahrt

Programmieren und Basteln

Du interesssierst Dich für Computer, Elektronik und Programmieren?Dann schau doch einfach mal von Dienstag bis Freitag jeweils in der 7. Stunde im Computerraum 1 bzw....
Aufrufe: 7388 - 20.05.2012 mehr

Programmieren und Basteln

Liebe Schülerinnen und Schüler, leider ist eine Stunde pro Woche in der Schulzeit viel zu kurz zum Programmieren und Arduino-Basteln. Kaum hat man das...
Aufrufe: 7405 - 26.03.2012 mehr

Langweilige Präsentationen?

Oben ist nur das Standardbild zu sehen? Dann ist der Browser nicht aktuell genug, verwendet IE 9.0, Firefox, Opera, Chrome, Safari oder besser! Nutzern des IE könnte...
Aufrufe: 6980 - 23.11.2011 mehr

Wir programmieren Teil 9

Dieses ist der Teil 9 der Reihe. Hier geht es zum 8. Teil.Die Lösung für die Aufgabe habe ich als Applet heraufgeladen. Auch der Quellcode ist hier...
Aufrufe: 10350 - 05.08.2011 mehr

Wir programmieren Teil 8

Dieses ist der 8. Teil. Hier geht es zum 7. Teil.Erstmal zur Lösung:int[][] feld=new int[10][10];int[][] z=new int[10][10];int xs=0;int ys=0;//...
Aufrufe: 10314 - 05.08.2011 mehr

Wir programmieren Teil 7

Nachdem wir unser erstes Spiel programmiert haben, widmen wir uns nun weiteren sprachlichen Strukturen.Wir wollen [[Conways Spiel des Lebens]]...
Aufrufe: 10779 - 05.08.2011 mehr

Wir programmieren Teil 6

Dieses ist der 6. Teil der Reihe. Hier findet ihr den 5. Teil.Die Lösung und unser bisheriges Spiel findet ihr auf folgender Seite. Dort ist auch der...
Aufrufe: 10397 - 05.08.2011 mehr

Wir programmieren Teil 5

Dieses ist der 5. Teil der Reihe. Hier geht es zum 4. Teil.Aufgabe war es, die Fehler zu finden. Der 1. Fehler war einfach zu finden, das Programm ließ...
Aufrufe: 13086 - 04.08.2011 mehr

Wir programmieren Teil 3

Dieses ist der 3. Teil der Reihe, hier geht es zum 2. Teil.Zuerst zur Lösung der kleinen Aufgaben:void setup() int x = 0;int y = 0;int vx = 3;int vy =...
Aufrufe: 12907 - 03.08.2011 mehr

Wir programmieren Teil 2

Dieses ist der 2. Teil, hier gehts zum Einstiegsteil.Zuerst mal eine möglich Lösung der kleinen Aufgaben. Die Änderungen sind fett markiert und...
Aufrufe: 13870 - 02.08.2011 mehr

Wir programmieren

In dieser Beitragsreihe könnt Ihr in das Schreiben von Computerprogrammen einsteigen. Wenn ihr Lust habt mehr mit Eurem Computer zu tun als nur zu...
Aufrufe: 11444 - 02.08.2011 mehr

Wochenend-Bastelei es geht weiter

hwNach den doch recht schleppenden Beginn geht es nun doch vorwärts. Auf der Seite http://reactivision.sourceforge.net/ fand sich die benötigte Software und ich wagte...
Aufrufe: 8318 - 20.02.2011 mehr

Wochenend-Bastelei Multitouch-Table

hwManche Projekte dauern doch etwas länger. Nachdem ich mich letztes Wochenende um die Beleuchtung der Acrylglasplatte gekümmert hatte, geht es in dieser Woche um die...
Aufrufe: 9723 - 19.02.2011 mehr

Wochenend-Bastelei gescheitert (noch)

hwTja, so kann es gehen, da nehme ich mir mein nächstes Projekt vor, besorge die Materialien und dann schaffe ich es nicht am Samstag fertig zu werden und ich denke,...
Aufrufe: 10670 - 13.02.2011 mehr

Wochenend-Bastelei

hwLanges Wochenende und ebenso lange Weile? Da kann ich helfen, beim Stöbern nach Projekten für unsere Schule stieß ich auf folgendes YouTube-Video. Das können wir...
Aufrufe: 10399 - 29.01.2011 mehr