![]() |
Nimm-Spiel
Hallo liebe Delphi-Gemeinde,
verzeiht mir meine "Unkenntniss", aber wir haben über die Ferien in der Schule eine Hausaufgabe aufbekommen, die ich nicht so ganz lösen kann. Zu erst einmal benutzen wir Delphi 5 Standard. Da wäre also folgendes Problem: Wir sollen ein "Nimm-Spiel" programmieren! In diesem Nimm Spiel habe ich 4 Reihen mit jeweils einem Button. In Reihe 1 befinden sich 7 "Gegenstände", in Reihe 2 sind es 5 Gegenstände, in Reihe 2 nur noch 3 Gegenstände und in der letzten vierten Reihe dann nur noch ein Gegenstand. Die erste Aufgabe bestand darin, die Buttons so zu programmieren das immer 1 Gegenstand pro Click verschwindet und wenn der letzte Gegenstand der Reihe weg war sollte auch der Button verschwinden. Soweit kein Problem, dass habe ich geschafft. An der nächsten Aufgabe allerdings scheitere ich. Wir sollen nun, wenn alle Gegenstände weg sind, einen Smiley erscheinen lassen. Ich habe den Smiley schon ins Programm "eingefügt" und auf unsichtbar gestellt, ich weiß allerdings nicht wie ich fortfahren soll, damit er erscheint wenn alle Gegenstände weg sind... :wall: Ich wäre euch für jede Hilfe wirklich dankbar, sollte ich irgendwas vergessen haben bitte ich euch den Thread nicht einfach zu ignorieren sondern mich nach den Angaben zu fragen, denn ich bin neu hier und weiß nicht was für euch relevant ist. Nun denn hoffe ich das ihr mir helft bzw. helfen könnt und verbleibe mfG kollege_bratwurst PS. Falls es so einen Thread schon gibt tut es mir leid, ich habe ihn dann nicht gefunden auf meiner Suche. Ach und ich weiß auch nicht welche Programmiersprache ich nutze, einfach die die in Delphi funktioniert uns hat niemand gesagt was das für eine Sprache ist deswegen habe ich einfach mal Delphi Win32 angehackt. |
Re: Nimm-Spiel
Du kannst prüfen wenn alle Gegenstände auf Visible:=False; stehen dann dein Smiley auf Image1.Visible:=True; schalten.
|
Re: Nimm-Spiel
Merk dir doch einfach die Anzahl der noch sichtbaren Gegenstände in einem Formularfeld. Beim Anklicken eines Buttons dekrementierst du dieses und bei Erreichen der Null machst du das Bild sichtbar.
|
Re: Nimm-Spiel
Zitat:
@ Apollonius: Ich habe dummerweise keinen Plan was dekrementieren ist^^ |
Re: Nimm-Spiel
Dekrementieren = Herunterzählen, das Gegenteil ist Inkrementieren ;)
|
Re: Nimm-Spiel
Einfach überlesen :mrgreen: Hatte das Problem falsch verstanden :stupid:
|
Re: Nimm-Spiel
Zitat:
Zitat:
Delphi-Quellcode:
falls das die nächste frage wäre :wink:
dec(i);
|
Re: Nimm-Spiel
Oder
Delphi-Quellcode:
Das ist verständlicher.
i := i - 1;
|
Re: Nimm-Spiel
aber unschöner :P
|
Re: Nimm-Spiel
Wieso denn bitte das? Beide erzeugen den gleichen Bytecode, hab ich neulich gelesen.
|
Re: Nimm-Spiel
dann hab ich mich etwas unpraktisch ausgedrückt
ich meinte eigentlich das es meiner meinung nach im quelltext schöner aussieht |
Re: Nimm-Spiel
Wenns funktioniert und gut ist, ist das optische Aussehen doch nicht so wichtig ;)
|
Re: Nimm-Spiel
wenn es schöner ist, ist ein längerer Code ein wenig übersichtlicher
zb.
Delphi-Quellcode:
ist denke ich weniger überischtlicher als
i:= i + 1 ;
c:= c - 1; a:= a + 1 ; b:= b + 1; h:= h + 1 ; x:= x - 1;
Delphi-Quellcode:
edit: na klar :wall: :wall: :wall: :wall: :wall:
inc(i);
dec(c); inc(1); inc(b); inc(h); dec(x); |
Re: Nimm-Spiel
Zumal Letzteres gar nicht funktionieren würde :zwinker:
Aber nun sollte das genug erläutert sein, gell? |
Re: Nimm-Spiel
Zitat:
Wie auch immer, ich denke, dass diese Diskussion dem fragesteller nicht wirklich hilft :wink: [edit]kein kasten...[/edit] |
Re: Nimm-Spiel
Delphi-Quellcode:
reicht vollkommen aus
inc(i);
dec(c); inc(1); inc(b); inc(h); dec(x); |
Re: Nimm-Spiel
Tut mir wirklich leid, aber ich hab immer noch kein plan wovon ihr redet xD unser lehrer ist nicht grade der beste und wie gesagt ich hab delphi erst seid ca. 3 wochen^^ deswegen hab ich kein plan wie ich das in das programm einfügen soll :P außerdem handelt es sich bei den gegenständen einfach nur um kleine bilder, die bei einem klick weggehen, dass hatte ich vergessen zu erwähnen... tut mir echt leid wenn ich mich da so doof anstelle aber hinsichtlich delphi bin ich wohl noch ein newbie^^
|
Re: Nimm-Spiel
Ist doch ganz einfach: Du hast X Bilder. Beim Klick auf den Button verschwindet ein Bild, also zählst Du von X eins runter. Wenn X 0 ist, sind alle Bilder unsichtbar.
|
Re: Nimm-Spiel
Ja das habe ich schon verstanden, aber das muss ich ja irgendwie in Programmiersprache fassen. Also meine Bilder haben die Namen ImNimm1 bis ImNimm16... Also 16 Bilder, aber wie soll ich das jetzt in das Programm schreiben?? Tut mir wirklich leid wenn ich mich so naiv anstelle :duck:
|
Re: Nimm-Spiel
Zitat:
Am Anfang definierst Du Dir eine sogenannte globale Variable "Gesamt".
Delphi-Quellcode:
Und im OnClick der Buttons fügst Du jeweils eine Zeile ein, die Gesamt herunterzählt.
implementation
var Gesamt: integer = 15; //hier hin, direkt unter implementation
Delphi-Quellcode:
Nun prüfst Du ab, ob Gesamt 0 ist und reagierst dann darauf.
Gesamt := Gesamt - 1;
Delphi-Quellcode:
Versuch' s mal und wenn Du nicht weiterkommst, fragen.
if Gesamt = 0 then
ShowMessage('Alle weg'); //oder was Du sonst so ausgeben möchtest |
Re: Nimm-Spiel
Ich bedanke mich vielmals,
es funktioniert jetzt :bounce1: MfG Kollege_Bratwurst |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 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