Zum Inhalt springen

Kniffelspiel wie halte ich eine Zahl?


Crashyy

Empfohlene Beiträge

Hallo ihr Lieben

Ich hab folgendes Problem:

Ich habe Labelfelder mit einer Hintergrundfarbe versehen über einen Zufallsgenerator.

Ich weiß aber nicht,wie ich die 6 felder für einen Würfel halten kann ( nur die anderen Würfel sollen weiter gewürfelt werden).!?!:confused:

Muss ich meine Zählschleife an anderer Stelle starten? :confused:

Wie hebe ich den Rnd-Befehl wieder auf,bzw stoppe einen bestimmten Würfel?

Hatte die Idee, diese mit Optionbuttons zu halten, konnte aber die Optionbuttion in dem Frame nicht ansprechen

(hab die Idee mit den Buttons wegen meiner Ansprech-Probs erstmal auf Eis gelegt *snief*)

...das ist ein Ausschnitt meines codes::mod:

Private Sub btnWuerfeln_Click()

'Deklaration'

Dim Zaehler As Integer

lblZahl1 = Int((6 * Rnd) + 1)

lblZahl2 = Int((6 * Rnd) + 1)

lblZahl3 = Int((6 * Rnd) + 1)

lblZahl4 = Int((6 * Rnd) + 1)

lblZahl5 = Int((6 * Rnd) + 1)

lblZahl6 = Int((6 * Rnd) + 1)

For Zaehler = 1 To 3

'so sieht dann die Würfel- 1 aus'

If Me.lblZahl1.Caption = 1 Then

Me.lbl1Wuerfel1.BackColor = &H0&

Me.lbl1Wuerfel2.BackColor = &H8000000F

Me.lbl1Wuerfel3.BackColor = &H8000000F

Me.lbl1Wuerfel4.BackColor = &H8000000F

Me.lbl1Wuerfel5.BackColor = &H8000000F

Me.lbl1Wuerfel6.BackColor = &H8000000F

und so geht das dann für die 2,3...usw..

Bitte dringends um HÜLFÄÄÄÄÄÄÄÄÄ!!!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, ich kann zwar kein VB, aber ich würde es so lösen:

Ein Array mit 6 Plätzen. Auf jedem Platz ist ein Array mit 2 Plätzen gespeichert, in dem wiederum ja ein Button und eine zugehörige Checkbox liegen.

Wenn man würfelt wird das Array durchlaufen, geprüft ob die Checkbox aktiviert ist: Wenn ja wird der nächste Würfel geprüft, ansonsten wird der Würfel neu gesetzt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, ich kann zwar kein VB, aber ich würde es so lösen:

Ein Array mit 6 Plätzen. Auf jedem Platz ist ein Array mit 2 Plätzen gespeichert, in dem wiederum ja ein Button und eine zugehörige Checkbox liegen.

Wenn man würfelt wird das Array durchlaufen, geprüft ob die Checkbox aktiviert ist: Wenn ja wird der nächste Würfel geprüft, ansonsten wird der Würfel neu gesetzt.

mhhhhhh an Checkboxen kombiniert mit optionsbuttons hab ich noch garnicht gedacht....*nacdenk*

Link zu diesem Kommentar
Auf anderen Seiten teilen

ich hab jetzt folgendes gecodet:

If Me.cboZahlHalten1.Value = False Then

Me.lbl1Wuerfel1 = Enabled

Me.lbl1Wuerfel2 = Enabled

Me.lbl1Wuerfel3 = Enabled

Me.lbl1Wuerfel4 = Enabled

Me.lbl1Wuerfel5 = Enabled

Me.lbl1Wuerfel6 = Enabled

Else

End If

Aber die 6 Labelfelder erhalten weiterhin einen Wert..och menno

Wer kann mir helfen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

In Delphi würde ich es so machen.

Endweder mit zur Entwurfszeit implementierten Objekten. Dann musst du aber sechs mal den gleichen Code schreiben

 

// Für das erste Label

  randomize;

  if checkbox1.Checked then begin  

    j:=random(6);

    if J=0 then J:=1;

    case J of

      1: label1.Color:= clblack;

      2: label1.Color:= clwhite;

      3: label1.Color:= clred;

      4: label1.Color:= clgreen;

      5: label1.Color:= clyellow;

      6: label1.Color:= clskyblue;

    end;

    label1.caption:= inttostr(j);

  end;

Oder mit zur Laufzeit erstellten Objekten. Dann gilt der gleiche Code für alle Objekte


randomize;
For i:=0 to 5 do begin
if checkboxes[i].checked then begin //dynamische checkboxen
j:=random(6);
if J=0 then J:=1;
case J of
1: labels[i].Color:= clblack; //dynamsiche Labels
2: labels[i].Color:= clwhite;
3: labels[i].Color:= clred;
4: labels[i].Color:= clgreen;
5: labels[i].Color:= clyellow;
6: labels[i].Color:= clskyblue;
end;
labels[i].caption:= inttostr(j);
end;
end;
[/PHP]

Der Code ist nicht getestet.

MVG

need-some-blood

Link zu diesem Kommentar
Auf anderen Seiten teilen

In Delphi würde ich es so machen.

Endweder mit zur Entwurfszeit implementierten Objekten. Dann musst du aber sechs mal den gleichen Code schreiben

 

// Für das erste Label

  randomize;

  if checkbox1.Checked then begin  

    j:=random(6);

    if J=0 then J:=1;

    case J of

      1: label1.Color:= clblack;

      2: label1.Color:= clwhite;

      3: label1.Color:= clred;

      4: label1.Color:= clgreen;

      5: label1.Color:= clyellow;

      6: label1.Color:= clskyblue;

    end;

    label1.caption:= inttostr(j);

  end;

Oder mit zur Laufzeit erstellten Objekten. Dann gilt der gleiche Code für alle Objekte


randomize;
For i:=0 to 5 do begin
if checkboxes[i].checked then begin //dynamische checkboxen
j:=random(6);
if J=0 then J:=1;
case J of
1: labels[i].Color:= clblack; //dynamsiche Labels
2: labels[i].Color:= clwhite;
3: labels[i].Color:= clred;
4: labels[i].Color:= clgreen;
5: labels[i].Color:= clyellow;
6: labels[i].Color:= clskyblue;
end;
labels[i].caption:= inttostr(j);
end;
end;
[/PHP]

Der Code ist nicht getestet.

MVG

need-some-blood

Danke need-some-blood, aber von delphi hab ich nun wirklich garkeinen Schimmer....:(

Ich werd weiterprobieren und darauf hoffen, daß mir jemand einen Tipp geben kann, der mir weiterhilft ...

In der VBA-Hilfe hab ich nichts finden können, vielleicht musds ich ja nur wissen WONACH ich suchen muss ...

*finger weiter wund progge*

Link zu diesem Kommentar
Auf anderen Seiten teilen

um das nochmal festzuhalten:

das hier ist ein VBA problem und ist damit im falschen forum...

zum thema:

crashyy, kannst du das ganze nicht auch in VB6 machen? da wäre alles viel einfacher weil man mehrere objekte haben kann aber die dann über nen index anspricht, damit kann man das coding auf 1/6 reduzieren :rolleyes:

ansonsten wie schon gesagt das label bei halten deaktivieren und beim neuwürfeln erst abfragen ob das jeweilige label aktiv ist...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...