|
Registriert seit: 6. Dez 2009 1 Beiträge |
#1
Hallo miteinander,
ich weiß nicht ob ich es hier richtig gepostet habe, wenn nicht dann verschiebt bitte den Thread. Also: Wir haben im Informatikunterricht über die letzten Monate ein Billardprogramm in verschiedenen Stufen geschriebem. Bisher habe ich das auch relativ gut hingegriegt. Nur bei der 6. Stufe habe ich ein paar Probleme. Es wäre super wenn ihr mir helft diese kleinen Porbleme zu lösen. 1.Stufe : Auf dem Billardtisch erscheint ein Tisch und darauf eine Kugel(ohne Bewegung). Ende mit Mausklick. 2.Stufe : Die Kugel soll sich bewegen. 3.Stufe : Die Kugel soll an der Bande abprallen. 4.Stufe : Es sollen mehrere Kugeln in unterschiedlicher Farbe, aus versch. Ausgangspositionen über den Tisch rollen. 5.Stufe : Es sollen zwei Kugeln über den Tisch rollen und an der Bande abprallen! Aber die Tischgröße soll auch verändert werden können! 6.Stufe : Die Kugeln sollen durch Reibung bedingt langsamer gemacht werden Stufe 6 AWP
Delphi-Quellcode:
Klasse Tisch
program pStufe4;
uses mSum, mKugel, mTisch, mReibungskugel in 'mReibungskugel.pas'; var mBildschirm : Bildschirm; mMaus : Maus; Tisch1 : tisch; Kugel1 : Kugel; Kugel2 : Kugel; meinTisch :tisch; begin mBildschirm := Bildschirm.init; mMaus := Maus.init; Tisch1:=tisch.init(300,150,600,400) ; Kugel1:=kugel.init(tisch1.giblinks + 10,tisch1.giboben + 10,6,weiss,0.1,60) ; kugel1.merkeTisch(Tisch1) ; kugel2:=kugel.init(tisch1.giblinks + 50,tisch1.giboben + 50,6,weiss,0.5,60) ; kugel2.merkeTisch(Tisch1) ; Tisch1.zeigeDich; Kugel1.zeigeDich; Kugel2.zeigeDich; Repeat Kugel1.bewegedich; Kugel2.bewegedich; Until mMaus.istgedrueckt; Tisch1.versteckeDich; Kugel1.versteckeDich; Kugel2.versteckeDich; Tisch1.gibFrei; Kugel1.gibFrei; Kugel2.gibFrei; mMaus.gibFrei; mBildschirm.gibFrei; end.
Delphi-Quellcode:
Klasse Kugel
unit mTisch;
interface USES mSum; type tisch=class private zlaenge,zbreite,zx,zy : zahl; hstift : Buntstift; Public constructor init(px,py,plaenge,pbreite : zahl); procedure zeigeDich; procedure versteckeDich; function gibrechts : zahl; function giblinks : zahl; function giboben : zahl; function gibunten : zahl; destructor gibFrei; end; implementation constructor tisch.init(px,py,plaenge,pbreite : zahl); begin hstift := buntstift.init; zlaenge := plaenge; zbreite := pbreite; zx := px; zy := py; hstift.bewegebis(zx,zy); end; procedure tisch.zeigeDich; begin hstift.setzefarbe(grau); hstift.setzefuellmuster(1); hstift.zeichneRechteck(zlaenge,zbreite); end; procedure tisch.versteckeDich; begin hstift.setzefarbe(gruen); hstift.zeichnerechteck(zlaenge, zbreite); end; function tisch.gibrechts; begin result := zx+zlaenge; end; function tisch.giblinks; begin result := zx; end; function tisch.giboben; begin result := zy; end; function tisch.gibunten; begin result := zy + zbreite; end; Destructor tisch.gibFrei; begin self.versteckeDich; hStift.gibFrei; end; end.
Delphi-Quellcode:
unit mKugel;
interface uses msum,mTisch; Type Kugel = class private zradius,zfarbe: GanzeZahl; zgeschwindigkeit,zrichtung,zx,zy: Zahl; hstift:buntstift; ktisch:tisch; public constructor init(px, py:zahl ; pradius, pfarbe:ganzezahl;pgeschwindigkeit,prichtung:zahl); procedure zeigedich; procedure versteckedich; procedure bewegedich; procedure setzerichtung(prichtung : zahl); procedure merkeTisch(pTisch:tisch); function gibx : zahl; function giby : zahl; function gibrichtung : zahl; destructor gibFrei; end; implementation constructor Kugel.init(px, py:zahl ; pradius, pfarbe:ganzezahl; pgeschwindigkeit,prichtung:zahl); begin hstift := buntstift.init; zradius := pradius; zx := px; zy := py; zfarbe := pfarbe; zgeschwindigkeit := pgeschwindigkeit; zrichtung := prichtung; hstift.bewegebis(zx,zy); hstift.dreheUm(zrichtung); end; procedure Kugel.zeigeDich; begin hstift.setzeFarbe (zfarbe); hstift.setzefuellmuster(1); hstift.zeichneKreis(zradius); end; procedure Kugel.versteckeDich ; begin hstift.setzefarbe(gelb); hstift.zeichneKreis(zradius); hstift.setzeFarbe (zfarbe); end; procedure Kugel.bewegeDich ; begin if self.gibx > ktisch.gibrechts then self.setzerichtung(180 - self.gibrichtung*2); if self.gibx < ktisch.giblinks then self.setzerichtung(180 - self.gibrichtung*2); if self.giby > ktisch.gibunten then self.setzerichtung(- self.gibrichtung * 2); if self.giby < ktisch.giboben then self.setzerichtung(- self.gibrichtung * 2); self.versteckedich; hstift.bewegeum(zgeschwindigkeit); self.zeigedich; end; procedure Kugel.setzerichtung (prichtung : zahl); begin hstift.dreheum(prichtung); end; procedure kugel.merkeTisch(pTisch:tisch); begin kTisch:=pTisch end ; function kugel.gibx ; begin result := hstift.hposition; end; function kugel.giby ; begin result := hstift.vposition; end; function kugel.gibrichtung ; begin result := hstift.winkel; end; destructor Kugel.gibFrei; begin self.versteckeDich; hstift.gibFrei; end; end. Klasse Reibungskugel
Delphi-Quellcode:
unit mReibungskugel;
interface uses mSum, mKugel; type Reibungskugel = class (Kugel) private zGeschwindigkeit:Zahl; zReibung:Zahl; public constructor init(px,py,pRadius,pGeschwindigkeit,pRichtung:Zahl;pFarbe:Zahl);OVERRIDE; procedure bewegeDich (pGeschwindigkeit:Zahl);OVERLOAD; procedure setzeReibung (pReibung:Zahl) end; implementation constructor Reibungskugel.init (px,py,pRadius,pGeschwindigkeit,pRichtung:Zahl;pFarbe:Zahl); begin INHERITED init (px,py,pRadius,pGeschwindigkeit,pRichtung,pFarbe); zReibung :=0.01; end; procedure Reibungskugel.setzeReibung (pReibung:Zahl); begin zReibung:=pReibung; end; procedure Reibungskugel.bewegeDich (pGeschwindigkeit:Zahl); begin zGeschwindigkeit:=zGeschwindigkeit-zReibung; INHERITED bewegeDich(zGeschwindigkeit); end; end. Bitte helft mir den Programmcode so zu verändern das es funktioniert und die Kugeln langsamer werden. Habe die letzten Tage schon lange probiert. Danke für jede Antwort. Schöne Grüße |
![]() |
Ansicht |
![]() |
![]() |
![]() |
ForumregelnEs ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus. Trackbacks are an
Pingbacks are an
Refbacks are aus
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
![]() |
![]() |