![]() |
Re: Problem mit "Programm" für die Schule
Hab auf diesem Rechner hier kein Rar und kein Delphi. Kannst du den Quelltext direkt hier reinposten bitte?!
|
Re: Problem mit "Programm" für die Schule
Bei deiner Anmedlung hast dus das Bestätigt:
Zitat:
Keiner wird hier für DICH!! ein Programm OHNE Gegenleistung schreiben? Wieso auch? Aber sicherlich werden dir hier viele Helfen, wenn du die nötige eigeninitiative ergreifst, und z.B.: einfach mal in der DP nach ![]() ![]() Hast du dazu was gefunden, und kommst damit nicht klar, wird dir hier geholfen! :) Und sonnst würde ich dir (euch) raten vllt erstmal nach " ![]() mfg Caleb |
Re: Problem mit "Programm" für die Schule
Desweiteren sagt der Titel nichts über das Problem aus.
|
Re: Problem mit "Programm" für die Schule
Eigentlich wollte ich mir das verkneifen, aber da der Thread ja immer wieder hochgepushed wird, kommt es auf das eine mal auch nicht mehr an. :roll:
Zitat:
Zitat:
Zitat:
|
Re: Problem mit "Programm" für die Schule
...
Erstens: eine Meinung/Behauptung MUSS man NICHT belegen oder widerlegen, man KANN. Desweiteren muss ich das schon gar nicht in einem Forum tun, wo dies völlig irrelevant zur Klärung eines bestimmten Sachverhaltes ist, wo es keinen Nutzer interessieren sollte, wie, was und wer meine Lehrer sind. Meine Behauptung, dass der Lehrer inkompetent ist, hat schon so seine Gründe. Und um diese erkennen zu können, muss man kein Fachmann sein. Die Art des Unterrichts und der (vorhandenen?) Vermittlung des Stoffes von Lehrer an Schüler hat meiner Meinung nach in erster Linie nichts mit dem Stoff selbst zu tun. Na klar, wenn er jetzt falsche Fakten, Daten etc. vermitteln würde, würde ich das nicht mitkriegen. Genausowenig kann ich beurteilen, ob seine Herangehensweise an das ganze Thema bzw. die Abfolge seiner Unterthemen sinnvoll ist. Aber ich kann mich zu der Art äußern, wie er versucht, uns das ganze mit seinem durchdachten und guten oder auch schlechten Schema verständlich rüberzubringen. Das verlangt keine Fachkenntnisse. Und jetzt zu unserer/meiner "nicht vorhandenen" Eigeninitiative: Wir saßen mindestens schon 10 Unterrichtsstunden an dem "Spiel", haben immer wieder aus eigener Kraft Dinge versucht, bei denen wir am Ende feststellen durften, dass sie unsinnig sind bzw. nicht so funktionieren, wie wir wollen. Natürlich haben wir dann auch andere Leute gefragt, Mitschüler und Lehrer, welche uns dann mehr oder weniger bei kleineren Fehlern helfen konnten. Nur mal ein Beispiel: Wir haben unseren Lehrer zur Hilfe geholt, um zu schaffen, dass sich die beiden Shapes "berühren" können, also nich einfach durch sich durch flitzen. Er hat es auf uns so erklärt, wie es auch im Programm steht. Später durften wir dann von einem Mitschüler, der sich ganz gut mit Porammierung usw. auskennt, erfahren, dass man das schlauererweise mit dem Radius des Kreises und nach jedem Schritt hätte prüfen müssen. Schon blöd, finde ich. Und Leute, ich habe meine Probleme ausfürhlich geschildert, aber hab ich dazu schon Lösungsansätze gehört? Ich glaube nur einen. Und ohne menschliche Hilfe geht das alles leider nicht so gut, nur Theorie bringt einem Einzelnen dann doch nichts. Soll heißen, dass ich mich schon ausführlicher damit beschäftigt habe (Tuts...)! Ja ich weiß, muss blöd rüberkommen, wenn ich einfach so frage ob das nicht jemand machen kann, aber erstens ist die Jugend heutzutage faul^^ und zweitens komm ich alleine einfach nicht mehr weiter (mein "Freund" kümmert sich überhaupt nicht um die ganze Sache). Und außerdem, fragen schadet doch nichts, oder? Aber war ja irgendwie klar, dass man dann erstmal solche beiträge um die Ohren gepfeffert bekommt. Was bringts denn? Nichts! Es ist nich produktiv. Anstatt einfach auf die Fragen, Probleme einzugehen und meine Frage "macht das jemand?" zu ignorieren oder kurz und bündig zu sagen "Nein, mach ich nicht".... MfG PS: Codekrams folgt gleich! |
Re: Problem mit "Programm" für die Schule
Delphi-Quellcode:
[edit=mkinzler]Delphi-Tag ergänzt. das nächste Mal bitte selber machen. Mfg, mkinzler[/edit]
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg; type TForm1 = class(TForm) Shape1: TShape; Shape2: TShape; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Image1: TImage; procedure keypress(Sender: TObject; var Key: Char); procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.keypress(Sender: TObject; var Key: Char); var d:real; begin d:=sqrt((shape1.Left - shape2.Left)*(shape1.Left - shape2.Left)+(shape1.Top - shape2.top)*(shape1.Top - shape2.top)); if (key ='s') and (d>=shape1.width) then shape1.top:=shape1.top +10; if (key ='w') and (d>=shape1.Width) then shape1.top:=shape1.top -10; if (key ='d') and (d>=shape1.Height) then shape1.Left:=shape1.Left +10; if (key ='a') and (d>=shape1.Height) then shape1.left:=shape1.left -10; label1.Caption:=inttostr(shape1.top); label2.Caption:=inttostr(shape1.Left); if (key ='k') and (d>=shape1.width)then shape2.top:=shape2.top +10; if (key ='i') and (d>=shape1.width)then shape2.top:=shape2.top -10; if (key ='l') and (d>=shape1.Height)then shape2.Left:=shape2.Left +10; if (key ='j') and (d>=shape1.Height)then shape2.left:=shape2.left -10; label3.Caption:=inttostr(shape2.top); label4.Caption:=inttostr(shape2.Left); end; procedure TForm1.FormCreate(Sender: TObject); var d:real; begin d:=sqrt((shape1.Left - shape2.Left)*(shape1.Left - shape2.Left)+(shape1.Top - shape2.top)*(shape1.Top - shape2.top)); if (d>=shape1.width) or (d>=shape1.height) then showmessage ('tagged!'); end; end. |
Re: Problem mit "Programm" für die Schule
Zitat:
Mist zu spät. |
Re: Problem mit "Programm" für die Schule
Wir sollten mal die Schärfe rausnehmen, und uns um das Problem kümmern.
Zitat:
Das gehört woanders hin.
Delphi-Quellcode:
Ist schon sehr schön, aber ich würde das mit einer case Anweisung machen. Ist aber Geschmackssache.
procedure TForm1.keypress(Sender: TObject; var Key: Char);
var d:real; begin d:=sqrt((shape1.Left - shape2.Left)*(shape1.Left - shape2.Left)+(shape1.Top - shape2.top)*(shape1.Top - shape2.top)); if (key ='s') and (d>=shape1.width) then shape1.top:=shape1.top +10; if (key ='w') and (d>=shape1.Width) then shape1.top:=shape1.top -10; if (key ='d') and (d>=shape1.Height) then shape1.Left:=shape1.Left +10; if (key ='a') and (d>=shape1.Height) then shape1.left:=shape1.left -10; label1.Caption:=inttostr(shape1.top); label2.Caption:=inttostr(shape1.Left); if (key ='k') and (d>=shape1.width)then shape2.top:=shape2.top +10; if (key ='i') and (d>=shape1.width)then shape2.top:=shape2.top -10; if (key ='l') and (d>=shape1.Height)then shape2.Left:=shape2.Left +10; if (key ='j') and (d>=shape1.Height)then shape2.left:=shape2.left -10; label3.Caption:=inttostr(shape2.top); label4.Caption:=inttostr(shape2.Left); end; Den Code zur Berechnung des Abstandes würde ich aber in eine Funktion auslagern, da du ihn für die Kollisionsprüfung nochmal brauchst. also: im private Abschnitt die Funktion deklarieren, und dann im Code Bereich erstellen.
Delphi-Quellcode:
jetzt kannst Du die in deiner keypressed prozedur verwenden:
...
private function CalcAbstand: real; ... Implementation .... function TForm1.CalcAbstand: real; begin result := sqrt((shape1.Left - shape2.Left)*(shape1.Left - shape2.Left) + (shape1.Top - shape2.top)*(shape1.Top - shape2.top)); end;
Delphi-Quellcode:
und die Kollisionsprüfung gehört an's Ende der keypressed Prozedur erneut hin.
procedure TForm1.keypress(Sender: TObject; var Key: Char);
var d:real; begin d := CalcAbstand; ... end; Allerdings ist deine Prüfung genau verkehrt herum.
Delphi-Quellcode:
Dann sollte es klappen.
...
d := CalcAbstand; if (d < shape1.width) or (d < shape1.height) then // hier die Bedingung richtig schreiben showmessage('tagged!'); end; |
Re: Problem mit "Programm" für die Schule
Also keine Ahnung was ich da mit irgendwelchen Kugeln machen wollt oder was auch immer. Also wenn ich mich zurück in meine Schulzeit erinnere (auch wenn wir da noch TP 7 hatten) hatten wir auch ne Aufgabe 1 Spiel zu programmieren, dabei geht es eigentlich nicht darum eine neues Spiel zu erfinden, sondern eigentlich die Tätigkeiten auszuüben, die zum Programmieren gehören. Also mein Tip für euch, weil es ja anscheinend schon eng wird, tritt deinem "Kumpel" in den A... und schnappt euch das gute alte Packman. Schafft euch ein zufällig erstelltes Spielfeld (bestehend aus Gold und Minen ( hier solltet ihr ein wenig Gehirnschmalz mal reinstecken für den Punkt: was wenn nur noch Minen da sind) und wann ist ein Level zu Ende).
Die Grundlagen für die Bewegung habt ihr schon, so wie ich das sehe, Punktezählsystem und Lebenssystem und schon seit ihr fertig. Damals habe ich so eins im Textmodus in 10h geschrieben, wir hatten aber auch einen guten Lehrer also plant mal etwas mehr Zeit ein. Ich denke das sind schon ziemlich gute Tips für dich wie man es machen kann. Ob du es machst k.A. ist auch nicht meine Note und wie es rüber kommt, suchst du noch eine Methode, "wo kann ich abschreiben, ohne dass es auffällt" mit deiner Frage, ob es jemand mal "schnell" machen, anstatt auf die einfachst zu kommen, es selber machen. MfG BAMatze |
Re: Problem mit "Programm" für die Schule
Zitat:
Ich glaube, das Beste wäre, wenn ich jetzt erstmal an meinem "Spiel" dranbleibe. Sich jetzt an etwas komplett Neues ranzusetzen, um das nur halb fertig bzw. halb richtig zu haben am Ende, wäre eher unproduktiv meiner Meinung nach. Da habe ich lieber ein eher simples Programm, welches dafür anständig läuft und fertig ist. Aber trotzdem danke für den Tipp/Denkanstoß :wink: Und jetzt noch einmal zum eigentlichen Thema: Wollte es eben mal so wie von thkerkmann geschrieben ausprobieren, allerdings gibt Lazarus die Fehlermeldung "Die Datei "" konnte nicht gefunden werden. Überprüfen sie den Suchpfad in Projekt->Compilereinstellungen...->Andere Unitdateien." raus, wenn ich auf das grüne Pfeilchen klicke... Naa gut, abgesehen davon, hat jemand vielleicht eine sinnvolle Idee, die man auch ohne großen Aufwand und ohne viel Fachwissen, vielleicht mit ein wenig Hilfe von jemandem, mit in das Tickspiel einbauen kann? MfG :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz