Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Nimm-Spiel (https://www.delphipraxis.net/121615-nimm-spiel.html)

Kollege_Bratwurst 1. Okt 2008 11:19


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.

AlexII 1. Okt 2008 11:25

Re: Nimm-Spiel
 
Du kannst prüfen wenn alle Gegenstände auf Visible:=False; stehen dann dein Smiley auf Image1.Visible:=True; schalten.

Apollonius 1. Okt 2008 11:32

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.

Kollege_Bratwurst 1. Okt 2008 12:26

Re: Nimm-Spiel
 
Zitat:

Zitat von AlexII
Du kannst prüfen wenn alle Gegenstände auf Visible:=False; stehen dann dein Smiley auf Image1.Visible:=True; schalten.

Wie kann ich das denn überprüfen? Ihr müsst verstehen, wir machen Delphi jetzt grade seid 6 Wochen also hab ich da noch nicht wirklich Erfahrung drin!

@ Apollonius: Ich habe dummerweise keinen Plan was dekrementieren ist^^

DeddyH 1. Okt 2008 12:27

Re: Nimm-Spiel
 
Dekrementieren = Herunterzählen, das Gegenteil ist Inkrementieren ;)

leddl 1. Okt 2008 12:34

Re: Nimm-Spiel
 
Einfach überlesen :mrgreen: Hatte das Problem falsch verstanden :stupid:

ATSV 1. Okt 2008 12:40

Re: Nimm-Spiel
 
Zitat:

Zitat von Kollege_Bratwurst
Ich habe dummerweise keinen Plan was dekrementieren ist^^

Zitat:

Zitat von DeddyH
Dekrementieren = Herunterzählen, das Gegenteil ist Inkrementieren ;)

im quelltext währe das dann
Delphi-Quellcode:
dec(i);
falls das die nächste frage wäre :wink:

DeddyH 1. Okt 2008 12:54

Re: Nimm-Spiel
 
Oder
Delphi-Quellcode:
i := i - 1;
Das ist verständlicher.

ATSV 1. Okt 2008 13:01

Re: Nimm-Spiel
 
aber unschöner :P

DeddyH 1. Okt 2008 13:03

Re: Nimm-Spiel
 
Wieso denn bitte das? Beide erzeugen den gleichen Bytecode, hab ich neulich gelesen.

ATSV 1. Okt 2008 13:07

Re: Nimm-Spiel
 
dann hab ich mich etwas unpraktisch ausgedrückt
ich meinte eigentlich das es meiner meinung nach im quelltext schöner aussieht

BullsEye 1. Okt 2008 13:24

Re: Nimm-Spiel
 
Wenns funktioniert und gut ist, ist das optische Aussehen doch nicht so wichtig ;)

STS301 1. Okt 2008 13:33

Re: Nimm-Spiel
 
wenn es schöner ist, ist ein längerer Code ein wenig übersichtlicher
zb.
Delphi-Quellcode:
i:= i + 1 ;
c:= c - 1;
a:= a + 1 ;
b:= b + 1;
h:= h + 1 ;
x:= x - 1;
ist denke ich weniger überischtlicher als
Delphi-Quellcode:
inc(i);
dec(c);
inc(1);
inc(b);
inc(h);
dec(x);
edit: na klar :wall: :wall: :wall: :wall: :wall:

DeddyH 1. Okt 2008 13:36

Re: Nimm-Spiel
 
Zumal Letzteres gar nicht funktionieren würde :zwinker:
Aber nun sollte das genug erläutert sein, gell?

Namenloser 1. Okt 2008 13:36

Re: Nimm-Spiel
 
Zitat:

Zitat von STS301
Delphi-Quellcode:
i:= inc(i);
c:= dec(c);
a:= inc(1);
b:= inc(b);
h:= inc(h);
x:= dec(x);

Was du machst, geht gar nicht. Inc und dec sind keine Funktionen.

Wie auch immer, ich denke, dass diese Diskussion dem fragesteller nicht wirklich hilft :wink:

[edit]kein kasten...[/edit]

ATSV 1. Okt 2008 13:37

Re: Nimm-Spiel
 
Delphi-Quellcode:
inc(i);
dec(c);
inc(1);
inc(b);
inc(h);
dec(x);
reicht vollkommen aus

Kollege_Bratwurst 1. Okt 2008 19:00

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^^

DeddyH 1. Okt 2008 19:04

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.

Kollege_Bratwurst 1. Okt 2008 19:20

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:

DeddyH 1. Okt 2008 19:29

Re: Nimm-Spiel
 
Zitat:

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.
Dann kriegst Du den Rest auch noch hin.
Am Anfang definierst Du Dir eine sogenannte globale Variable "Gesamt".
Delphi-Quellcode:
implementation

var Gesamt: integer = 15; //hier hin, direkt unter implementation
Und im OnClick der Buttons fügst Du jeweils eine Zeile ein, die Gesamt herunterzählt.
Delphi-Quellcode:
Gesamt := Gesamt - 1;
Nun prüfst Du ab, ob Gesamt 0 ist und reagierst dann darauf.
Delphi-Quellcode:
if Gesamt = 0 then
  ShowMessage('Alle weg'); //oder was Du sonst so ausgeben möchtest
Versuch' s mal und wenn Du nicht weiterkommst, fragen.

Kollege_Bratwurst 1. Okt 2008 20:54

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