Seite 1 von 2 12 Letzte »
Ergebnis 1 bis 20 von 24

Visual Basic Würfelspiel

  1. #1 Zitieren
    Ritter Avatar von Innosbruder
    Registriert seit
    Jan 2008
    Ort
    Irgendwo im Nirgendwo
    Beiträge
    1.718
    Hi
    in der Schule sollen wir als Projekt ein Würfelspiel gestalten. Aber ich hab da so meine Schwierigkeiten.
    Mein Spiel soll so gehen wie Dart also: Es gibt 2 Spieler. Wenn einer würfelt soll das Ergebnis von dem Punktestand abgezogen werden.
    Dafür hab ich ein label (LabelPunkte1) gemacht. Wenn man den Button "Start" drückt erscheint dort die Zahl die ich will, aber wie zieht es das Ergebnis ab?
    Bei der Klasse Würfel hab ich angegeben, dass das WurfErgebnis Single sein soll also "As Single" und nach jedem Case auch die richtige Zahl.
    Aber ich weis nicht wie es abzieht. Aus testzwecken hab ich mal das getestet: labelPunkt1.text = clwuerfel1
    kommt folgende Fehlermeldung: Der Wert vom Typ "Wuerfelspiel.clwuerfel" kann nicht in "System.Windows.Forms.Label" konvertiert werden.

    wie mache ich es richtig?
    Vielen Dank im Vorraus!

    kleine Anmerkung: Ich hab keine Ahung vom Programmieren
    Innosbruder ist offline

  2. #2 Zitieren
    Auserwählter Avatar von haddock
    Registriert seit
    Aug 2005
    Ort
    /dev/null
    Beiträge
    6.575
    Ich würde nochmal mit dem Lehrer über die Aufgabenstellung reden. Es gibt hier kein Spiel.

    Meine Apps im AppStore:
    [Bild: frantic.png]

    haddock ist offline

  3. #3 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Wenn Ich dein Problem richtig verstehe weißt du nicht wie du eine Zahl von der anderen abziehen kannst?

    Der Wert vom Typ "Wuerfelspiel.clwuerfel" kann nicht in "System.Windows.Forms.Label" konvertiert werden.
    Ist doch ganz klar: Wuerfelspiel.clwuerfel ist ein Single (?) und System.Windows.Forms.Label->Text ist als String definiert.

    schreib stattdessen:
    Code:
    labelPunkt1.Text = clwuerfel1.ToString
    Das konvertiert dein Single (warum eingentlich Single, das ist doch ein Gleitkomma-datentyp. beim Würfeln kriegst du doch eh nur ganze Zahlen raus )
    in eine String.

    Das andere Problem mit dem Abziehen verstehe ich nicht so ganz:

    Code:
    Zahl1 - Zahl2


    Gruß Delta 38
    Delta 38 ist offline

  4. #4 Zitieren
    Ritter Avatar von Innosbruder
    Registriert seit
    Jan 2008
    Ort
    Irgendwo im Nirgendwo
    Beiträge
    1.718
    Zitat Zitat von haddock Beitrag anzeigen
    Ich würde nochmal mit dem Lehrer über die Aufgabenstellung reden. Es gibt hier kein Spiel.
    Wir sollen ein Würfelspiel machen

    Zitat Zitat von Delta 38 Beitrag anzeigen
    Wenn Ich dein Problem richtig verstehe weißt du nicht wie du eine Zahl von der anderen abziehen kannst?



    Ist doch ganz klar: Wuerfelspiel.clwuerfel ist ein Single (?) und System.Windows.Forms.Label->Text ist als String definiert.

    schreib stattdessen:
    Code:
    labelPunkt1.Text = clwuerfel1.ToString
    Das konvertiert dein Single (warum eingentlich Single, das ist doch ein Gleitkomma-datentyp. beim Würfeln kriegst du doch eh nur ganze Zahlen raus )
    in eine String.

    Das andere Problem mit dem Abziehen verstehe ich nicht so ganz:

    Code:
    Zahl1 - Zahl2


    Gruß Delta 38
    Mein Problem ist dass ich nicht anzeigen kann welche Zahl gewürfelt wurde. Drum hab ich auch ein Testlabel (lbltest) gemacht um zu sehen obs was anzeigt mit "lbltest.text = clwuerfel1"
    Ich hab jetzt deine Version mit ".toString" gemacht aber es verändert sich nichts, bzw es wird nix angezeigt. Ich glaub ich Zitiere hier mal meine Codes:

    Hier vom Würfel. diese lbl1 etc. stehen für die "0" also ein Punkt
    Public Class clwuerfel
    Public WurfErgebnis As Single
    Sub New()

    ' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
    InitializeComponent()

    ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

    End Sub
    Public Sub Wuerfeln()
    Randomize()
    WurfErgebnis = Zufzahl(1, 6)

    lbl1.Visible = False
    lbl2.Visible = False
    lbl3.Visible = False
    lbl4.Visible = False
    lbl5.Visible = False
    lbl6.Visible = False
    lbl7.Visible = False

    Select Case WurfErgebnis

    Case 1
    lbl4.Visible = True
    WurfErgebnis = 1
    Case 2
    lbl4.Visible = True
    lbl7.Visible = True
    WurfErgebnis = 2
    Case 3
    lbl1.Visible = True
    lbl4.Visible = True
    lbl7.Visible = True
    WurfErgebnis = 3
    Case 4
    lbl1.Visible = True
    lbl3.Visible = True
    lbl5.Visible = True
    lbl7.Visible = True
    WurfErgebnis = 4
    Case 5
    lbl1.Visible = True
    lbl3.Visible = True
    lbl4.Visible = True
    lbl5.Visible = True
    lbl7.Visible = True
    WurfErgebnis = 5
    Case 6
    lbl1.Visible = True
    lbl2.Visible = True
    lbl3.Visible = True
    lbl5.Visible = True
    lbl6.Visible = True
    lbl7.Visible = True
    WurfErgebnis = 6

    End Select
    End Sub
    Private Function Zufzahl(ByVal UGren As Integer, ByVal OGren As Integer) As Integer
    Return CInt(Math.Floor((OGren - UGren + 1) * Rnd())) + UGren

    End Function

    End Class
    Hier von der Form:
    die lblStartSpieler sind die Start Punkte die man loswerden soll
    Public Class Form1

    Public Ergebnis As Integer

    Private Sub btnwuerfeln1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwuerfeln1.Click
    Clwuerfel1.Wuerfeln()
    End Sub

    Private Sub btnwuerfeln2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwuerfeln2.Click
    Clwuerfel2.Wuerfeln()
    End Sub
    Private Sub Punkte()
    lbltest.Text = Clwuerfel1.ToString

    End Sub

    Private Sub btnstart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnstart.Click
    labelStartSpieler1.Text = 137
    labelStartSpieler2.Text = 137
    End Sub
    End Class
    Innosbruder ist offline

  5. #5 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Du versuchst eine ganze Klasse als String auszugeben. Das geht natürlich nicht.
    Du musst die Variable ausgeben also CLWuerfel.Variable.ToString()


    Ich mach das jetzt mal im Pseudo-Code

    Code:
    Klasse Würfel
    {
    	Definiere Wurfergebniss als Zahl
    	
    	Wurfergebniss entspricht einer Zufälligen Zahl zwischen 1 und 6
    	
    	
    }
    
    Klasse Form1
    {
    	Erzeuge Würfel
    	
    	Rufe Würfelfunktion auf
    	Rufe Würfelergebniss ab
    	
            Zeige Wurfergebniss
    
    	ziehe Würfelergebniss von den Punkten ab
    	
    	Zeige die Punkte
    }
    Ich hab jetzt deine Version mit ".toString" gemacht aber es verändert sich nichts, bzw es wird nix angezeigt
    Das ist in der Tat seltsam, denn bei Funktioniert es einwandfrei!
    (Ich weiß nicht ob vb CaseSensitive ist aber die Funktion lautet ToString



    ACHTUNG SPOILER!!
    Im Spoiler befindet sich meine Lösung zu dem Spiel
    Du kannst sie als Hilfestellung benutzten


    Spoiler:(zum lesen bitte Text markieren)
    Würfel-Klasse
    Code:
    Public Class Wuerfel
        Globale Varibalen deklarieren
        Dim Wurfergebniss As Integer
    
        Public Sub dice()
            Randomize()  ' Nicht sicher ob benötigt
    
            Dim rnd As New Random()  ' Neue Random-Klasse erzeugen und in der Variable rnd speichern
            Wurfergebniss = rnd.Next(1, 7)  ' Randomfunktion aufrufen
        End Sub
    
        Public Function getDice() As Integer   ' Gibt den Wert zurück
            Return Wurfergebniss
        End Function
    End Class
    Form1-Klasse

    Code:
    Public Class Form1
        'Globale Varibalen deklarieren
        Dim erg As Integer
        Dim pnkte As Integer
    
        Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
            'Initialisieren der Würfel-Klasse
            Dim wrf As New Wuerfel()
            wrf.dice()      ' Würfeln
    
            'Initialisieren der Variablen
            erg = wrf.getDice()     'Ergebniss abfragen
    
    
            Label4.Text = erg.ToString()    ' Ergebniss anzeigen
    
            ' Punkte Berechnen
            pnkte = pnkte - erg
    
            ' Punkte anzeigen
            Label3.Text = pnkte.ToString()
    
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Punkte initialisieren
            pnkte = 100
        End Sub
    End Class


    Ich hoffe ich konnte dir helfen
    Bei Verständnissfragen schreib einfach wieder hier rein!

    Gruß Delta 38
    Delta 38 ist offline Geändert von Delta 38 (04.01.2011 um 20:02 Uhr)

  6. #6 Zitieren
    Ritter Avatar von Innosbruder
    Registriert seit
    Jan 2008
    Ort
    Irgendwo im Nirgendwo
    Beiträge
    1.718
    Zitat Zitat von Delta 38 Beitrag anzeigen
    Du versuchst eine ganze Klasse als String auszugeben. Das geht natürlich nicht.
    Du musst die Variable ausgeben also CLWuerfel.Variable.ToString()


    Ich mach das jetzt mal im Pseudo-Code

    Code:
    Klasse Würfel
    {
    	Definiere Wurfergebniss als Zahl
    	
    	Wurfergebniss entspricht einer Zufälligen Zahl zwischen 1 und 6
    	
    	
    }
    
    Klasse Form1
    {
    	Erzeuge Würfel
    	
    	Rufe Würfelfunktion auf
    	Rufe Würfelergebniss ab
    	
            Zeige Wurfergebniss
    
    	ziehe Würfelergebniss von den Punkten ab
    	
    	Zeige die Punkte
    }

    Das ist in der Tat seltsam, denn bei Funktioniert es einwandfrei!
    (Ich weiß nicht ob vb CaseSensitive ist aber die Funktion lautet ToString



    ACHTUNG SPOILER!!
    Im Spoiler befindet sich meine Lösung zu dem Spiel
    Du kannst sie als Hilfestellung benutzten


    Spoiler:(zum lesen bitte Text markieren)
    Würfel-Klasse
    Code:
    Public Class Wuerfel
        Globale Varibalen deklarieren
        Dim Wurfergebniss As Integer
    
        Public Sub dice()
            Randomize()  ' Nicht sicher ob benötigt
    
            Dim rnd As New Random()  ' Neue Random-Klasse erzeugen und in der Variable rnd speichern
            Wurfergebniss = rnd.Next(1, 7)  ' Randomfunktion aufrufen
        End Sub
    
        Public Function getDice() As Integer   ' Gibt den Wert zurück
            Return Wurfergebniss
        End Function
    End Class
    Form1-Klasse

    Code:
    Public Class Form1
        'Globale Varibalen deklarieren
        Dim erg As Integer
        Dim pnkte As Integer
    
        Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
            'Initialisieren der Würfel-Klasse
            Dim wrf As New Wuerfel()
            wrf.dice()      ' Würfeln
    
            'Initialisieren der Variablen
            erg = wrf.getDice()     'Ergebniss abfragen
    
    
            Label4.Text = erg.ToString()    ' Ergebniss anzeigen
    
            ' Punkte Berechnen
            pnkte = pnkte - erg
    
            ' Punkte anzeigen
            Label3.Text = pnkte.ToString()
    
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'Punkte initialisieren
            pnkte = 100
        End Sub
    End Class


    Ich hoffe ich konnte dir helfen
    Bei Verständnissfragen schreib einfach wieder hier rein!

    Gruß Delta 38
    Vielen Dank dass du dir Mühen gemacht hast
    jetzt versteh ich auch meinen Fehler beim anzeigen: Habs unterm falschem Sub geschrieben

    Bei der Klasse Würfel versteh ich nicht was mit dem Wert zurückgeben gemeint ist. Er holt sich den Wert und gibt ihn zurück. Aber an was?


    Außerdem möchte ich, dass genau 0 rauskommen muss. Schreibe ich dann:
    "If [PunkteLabel] < 0 then.... (ja was then? dann wert nicht annehmen? oder kann ich am Anfang irgendwie deklarieren, dass dieses Label niemals unter 0 sein kann?)

    Wie kann ich außerdem einbauen, dass ein label was addiert, also wie oft man gewürfelt hat?

    Vielen Dank wieder im Vorraus!
    Innosbruder ist offline

  7. #7 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Bei der Klasse Würfel versteh ich nicht was mit dem Wert zurückgeben gemeint ist. Er holt sich den Wert und gibt ihn zurück. Aber an was?
    Er nimmt die Variable Wurfergebniss aus der Klasse Wuerfel und gibt sie an zurück.

    Code:
    Dim test as Integer
    
    Function testFunc() as Integer
        test = 0
        return test
    End Function
    Wenn du dir diese Funktion genauer ansiehst, dann erkennst du das die Funktion als Integer deklariert ist.
    Das bedeutet das es einen Integer-Wert zurückgibt. (In diesem Fall die Integer-Variable test)

    Code:
    Dim erg as Integer
    
    erg = testFunc()
    
    Hier siehst du das die Funktion aufgerufen wird und dass die Integer-Variable erg der Wert von testFunc() zugewiesen wird.
    Dieser ist nach Aufruf der Funktion ein Integer (wir erinnern uns: der Rückgabewert der Funktion wurde mit Integer angegebn) welcher in der Variable erg gespeichert wird.



    Außerdem möchte ich, dass genau 0 rauskommen muss. Schreibe ich dann:
    "If [PunkteLabel] < 0 then.... (ja was then? dann wert nicht annehmen? [...])
    Richtig, aber du nimmst nicht [PunkteLabel], da dies ja ein System.Forms.Label ist sondern eine Zahl, in meinem Beispiel pnkte (= Punkte des Spielers)
    dann schreibst du
    Code:
     If pnkte <= 0 Then
        ' Hier kannst du das Ende des Spiels behandeln
        ' Ich mach mal ein Beispiel
        MessageBox.Show("Spielende")
        ' Application beenden
        Me.Close()
     End If

    Wie kann ich außerdem einbauen, dass ein label was addiert, also wie oft man gewürfelt hat?
    Nochmal zum Verständniss:
    Ein Label addiert nichts! Wenn überhaupt wird der Wert der Label mit etwas addiert. (Wobei dieser vorher von einem String in eine Zahl konvertiert werden müsste)

    Du baust einfach eine weitere Integer-Variable in der Klasse Wuerfel ein, und lässt diese bei jedem Würfeln (also in der Würfel-Funktion ) ein hochzählen.

    Gruß Delta 38


    EDIT: Ich weiß ja nicht was ihr für einen Lehrer habt, aber wenn er euch so ein Projekt gibt sollte er euch vorher wenigstens die Grundlagen vermittelt haben.
    (außer es soll ein eigenständiges Lernprojekt werden )
    Delta 38 ist offline Geändert von Delta 38 (05.01.2011 um 11:25 Uhr)

  8. #8 Zitieren
    Ritter Avatar von Innosbruder
    Registriert seit
    Jan 2008
    Ort
    Irgendwo im Nirgendwo
    Beiträge
    1.718
    Dankeschön! jetzt versteht ichs sogar
    Naja bei uns gehen die Info Lehrer den Bach runter. Wir haben jetzt den besten von allen und selbst der bringt uns auch wirklich das nötigste bei. Bis jetzt haben wir immer integer etc. verwendet aber gesagt was es bedeutet hat er nie

    Ich hab jetzt nur noch ne Frage wegen der Farbe: Und zwar gehen bei mir zuhause die powerpacks nciht wieso weis ich auch nicht... auf alle Fälle haben wir in der Schule die Punkte des Würfels mit den Oval Shapes gemacht. da diese bei mir nicht vorhanden sind hab ich ja 0en verwendet. Leider sieht es farblich nicht so schön aus. ist es möglich den Hintergrund des Würfels zB schwarz zu machen, ohne dass der Innenteil der 0 farblich wird?
    weil mit backcolor klappts nciht.
    Danke im Vorraus
    Innosbruder ist offline

  9. #9 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Meines Wissens geht das nicht direkt.
    Indirekt schon, sieht aber nicht so schön aus

    Du könntest ja einfach die Hintergrundfarbe des Würfels auf z.B. Schwarz machen und die Hintergrundfarbe der Labels auf eine kontraststarke Farbe ändern.

    Ansonsten gibts hier das Powerpack zum Download

    Gruß Delta 38
    Delta 38 ist offline

  10. #10 Zitieren
    Ritter Avatar von Innosbruder
    Registriert seit
    Jan 2008
    Ort
    Irgendwo im Nirgendwo
    Beiträge
    1.718
    Zitat Zitat von Delta 38 Beitrag anzeigen
    Meines Wissens geht das nicht direkt.
    Indirekt schon, sieht aber nicht so schön aus

    Du könntest ja einfach die Hintergrundfarbe des Würfels auf z.B. Schwarz machen und die Hintergrundfarbe der Labels auf eine kontraststarke Farbe ändern.

    Ansonsten gibts hier das Powerpack zum Download

    Gruß Delta 38
    Schade. Des hab ich schon versucht und die Powerpacks gehen leider nicht. Habs installiert aber Visual Basic nehmts iwie nciht an.

    Neus Problem:
    seit kurzem hab ich n Problem wenn die Punkte unter 0 sind.
    Code:
    If labelStartSpieler1.Text < 0 Then
                MessageBox.Show("Sie sind unter 0 gekommen :(")
                labelStartSpieler1.Text = lblpkt2.Text
            End If
    
    If labelStartSpieler1.Text = 0 Then
                MessageBox.Show("Glückwunsch an Spieler 1 mit einem hervorragenden Sieg! :)")
            End If
    Vor 2 Stunden hats noch funktioniert aber jetzt plötzlich nicht mehr. Wenn also die Punkte auf -2 oder so kommen wird diese Zeile gelb markiert: "If labelStartSpieler1.Text = 0 Then"
    Innosbruder ist offline Geändert von Innosbruder (05.01.2011 um 14:17 Uhr)

  11. #11 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Code:
    If labelStartSpieler1.Text < 0 Then
                MessageBox.Show("Sie sind unter 0 gekommen :(")
                labelStartSpieler1.Text = lblpkt2.Text
    End If
    
    If labelStartSpieler1.Text = 0 Then
                MessageBox.Show("Glückwunsch an Spieler 1 mit einem hervorragenden Sieg! :)")
    End If
    Also du fragst da die Größe eines Strings ab.
    Ich weiß den anderen Code nicht (und auch nicht ob vs das automatisch in einen int konvertiert...) aber teste mit der if-anweisung nicht den Text der Label sondern die Variable in der die Punkte stehen

    Gruß Delta 38
    Delta 38 ist offline

  12. #12 Zitieren
    Auserwählter Avatar von haddock
    Registriert seit
    Aug 2005
    Ort
    /dev/null
    Beiträge
    6.575
    Zitat Zitat von Innosbruder Beitrag anzeigen
    Wir sollen ein Würfelspiel machen
    Dann wo bitte ist hier das Spiel?
    Hier handelt es sich viel mehr um einen übermäßig komplexen Zufallsgenerator für einen Bool Wert (ob Person 1 gewinnt (oder Person 2)).

    Meine Apps im AppStore:
    [Bild: frantic.png]

    haddock ist offline

  13. #13 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Ich nehme mal an, auch aufgrund der Information über seinen/ihrern Lehrer, dass dieser es als Spiel bezeichet hat, damit seine Schüler mit Freude da rangehen nur um zu merken das sie zu wenig Grundwissen vermittelt bekommen haben

    Du hast Recht man kann das "Würfelspiels" mühelos mit "Würfelsimulation" bezeichnen,
    aber wenn der Lehrer das so will !?

    Gruß Delta 38
    Delta 38 ist offline

  14. #14 Zitieren
    Ritter Avatar von Innosbruder
    Registriert seit
    Jan 2008
    Ort
    Irgendwo im Nirgendwo
    Beiträge
    1.718
    Wieder ne Frage:
    und zwar hab ich jezt Verbesserungen gemacht aber eins funktioniert nciht:
    Der Spieler darf ja den Wert selber eingeben aber wenn er start drückt wird dieser Button gesperrt. Das Problem ist, dass man dann den Button neues spiel verwenden muss. ich möchte aber eine Messagebox in der steht: bitte wert eingeben! darum hab ich diese If function eingebaut:
    Code:
    If txtPunkte.Text = " " Then
                MessageBox.Show("Bitte Wert eingeben!")
                txtPunkte.Focus()
            End If
    das funktioniert aber nicht? wieso? Vielen Dank im Vorraus

    €: wieder 2 Fragen. Und zwar will ich wenn einer gewinnt, dass der andere nichtmehr würfeln kann:
    Code:
    If labelStartSpieler1.Text = 0 Then
                MessageBox.Show("Glückwunsch an Spieler 1 mit einem hervorragenden Sieg! :)")
                btnwuerfeln1.Enabled = False
                btnwuerfeln2.Enabled = False
            End If
            btnwuerfeln1.Enabled = False
            btnwuerfeln2.Enabled = True
    Das Problem: Es hebt sich ja auf. Idee?

    Zweite Frage: Wie kann ich den Hintergrund ändern?
    Innosbruder ist offline Geändert von Innosbruder (06.01.2011 um 20:31 Uhr)

  15. #15 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Hi,

    1.Problem: Du möchtest also, das der Spieler den Punktestand am Anfang selbst bestimmt und falls dieser leer sein sollte das der Würfeln-Button deaktiviert wird?

    Code:
    If txtPunkte.Text = "" Then
                MessageBox.Show("Bitte Wert eingeben!")
                txtPunkte.Focus()
    End If
    So fragt er ab ob die Textbox txtPunkte komplett leer ist.
    (Das Problem daran ist, man könnte auch einfach ein Leerzeichen machen, dann würde es funktionieren.
    Lässt sich mit try ... catch ... end try lösen, einfach mal googlen)

    2.Problem: Der andere soll aber noch weiterwürfeln dürfen?
    Code:
    If labelStartSpieler1.Text = 0 Then
              MessageBox.Show("Glückwunsch an Spieler 1 mit einem hervorragenden Sieg! :)")
              btnwuerfeln2.Enabled = False
    ElseIf labelStartSpieler2.Text = 0 Then
              MessageBox.Show("Glückwunsch an Spieler 2 mit einem hervorragenden Sieg! :)")
              btnwuerfeln1.Enabled = False
    End If
    Ich gehe davon aus, dass btnwuerfeln1 der Würfelbutton für Spieler 1 ist.

    3.Frage(Background):
    Meinst du dynamisch (während der Laufzeit) oder statisch/permanent (die ganze Zeit über)
    statisch/permanent:
    Im Eigenschaften-Fenster unter Background

    dynamisch
    Code:
            [Steuerelement].BackColor= Color.Yellow ' Gelber Hintergrund
            [Steuerelement].BackColor = Color.FromArgb(255, 255, 0) ' Gelber Hintergrund
    Gruß Delta 38
    Delta 38 ist offline

  16. #16 Zitieren
    Ritter Avatar von Innosbruder
    Registriert seit
    Jan 2008
    Ort
    Irgendwo im Nirgendwo
    Beiträge
    1.718
    Ja btnwuerfeln1 für Spieler 1 der Würfel Button und btnwuerfeln2 für Spieler 2. Also wenn einer gewonnen hat darf keiner mehr würfeln
    Innosbruder ist offline

  17. #17 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Naja dann halt:
    Code:
    If labelStartSpieler1.Text = 0 Then
              MessageBox.Show("Glückwunsch an Spieler 1 mit einem hervorragenden Sieg! :)")
              btnwuerfeln2.Enabled = False
              btnwuerfeln1.Enabled = False
    ElseIf labelStartSpieler2.Text = 0 Then
              MessageBox.Show("Glückwunsch an Spieler 2 mit einem hervorragenden Sieg! :)")
              btnwuerfeln1.Enabled = False
              btnwuerfeln2.Enabled = False
    End If
    Im übrigen ist es nicht "üblich" (bzw. Ich kenn es nicht so), dass man ein als String deklariertes Objekt ohne cast ( Umwandlung) vergleicht.
    Denn wenn jemand fremdes deinen Code lesen sollte würde er denken:

    Aha, txtPunkte lässt sich mit einem Integer vergleichen, also ist es selbst als integer deklariert.

    Gruß Delta 38
    Delta 38 ist offline

  18. #18 Zitieren
    Ritter Avatar von Innosbruder
    Registriert seit
    Jan 2008
    Ort
    Irgendwo im Nirgendwo
    Beiträge
    1.718
    So ich komm immer weiter aber es gibt wieder mal n Problem

    und zwar hab ich eine textbox in der der spieler die Punkte eingeben kann die er erspielen möchte. Gibt es eine möglichkeit die verbietet alles andere außer Zahlen reinzuschreiben. dh. man kann dann keine wörter reinschreiben?
    Innosbruder ist offline

  19. #19 Zitieren
    Ritter Avatar von Delta 38
    Registriert seit
    Nov 2008
    Ort
    Bremen
    Beiträge
    1.251
    Geh bei der Textbox im Eigenschaften Fenster in das Event Fenster und erstelle ein Event für Keypress

    da schreibst du dann rein:
    Code:
    If Not IsNumeric(e.KeyChar) Then 
           e.Handled = True
    EndIf
    So sollte das funktionieren

    Gruß Delta 38
    Delta 38 ist offline

  20. #20 Zitieren
    Ritter Avatar von Innosbruder
    Registriert seit
    Jan 2008
    Ort
    Irgendwo im Nirgendwo
    Beiträge
    1.718
    Zitat Zitat von Delta 38 Beitrag anzeigen
    Geh bei der Textbox im Eigenschaften Fenster in das Event Fenster und erstelle ein Event für Keypress

    da schreibst du dann rein:
    Code:
    If Not IsNumeric(e.KeyChar) Then 
           e.Handled = True
    EndIf
    So sollte das funktionieren

    Gruß Delta 38
    Danke!
    Leider wird die Rücktaste auch gesperrt. Die Entf Taste nicht.
    Und irgendwie schaff ich den Button für schliesen nicht. Wär für Hilfe bzw. ein Blanko Code offen
    Innosbruder ist offline

Seite 1 von 2 12 Letzte »

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •