Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Kniffelspiel wie halte ich eine Zahl?

Empfohlene Antworten

Veröffentlicht

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ÄÄÄÄÄÄÄÄÄ!!!

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.

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*

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?

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

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*

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.