Kurs:FreeBASIC/Projekte/FBT3/0001

Aus Wikiversity

Version 0001 ist fertig. Möglicherweise bin ich schneller fertig, wenn ich schreibe, was funktioniert. --Michael Reschke 18:27, 18. Jul. 2008 (CEST)

Quellcode[Bearbeiten]

Der Quellcode lautet:

' - - - - Meine Variablen und meine Unterprogramme  - - - - - -
DIM AS Integer Eingabe, x, Spieler
Spieler = 1 'Verwaltet die Spieler-Züge (1 und 2)

' - - - - Zeichne das Spielfeld - - - - - - - - - - - - - - - -
PRINT "Ein Spiel"
PRINT "fuer 2 Spieler"
PRINT
PRINT "    1   2   3"
PRINT 
PRINT "1   . | . | ."
PRINT "    - + - + -"
PRINT "2   . | . | ."
PRINT "    - + - + -"
PRINT "3   . | . | ." : PRINT 

' - - - - Die Programmschleife  - - - - - - - - - - - - - - - -
For x = 1 to 9
    
    Locate 12,68
    PRINT "      "
    
    Locate 12,1
    INPUT "Bitte geben Sie abwechselnd eine Koordinate (z. B. 11 oder 31) ein: ", Eingabe

SELECT CASE Eingabe
    CASE 11
    
      Locate 6,5
      If Spieler = 1 Then
          Print "X"
      Else
          Print "0"
      End If
      
    CASE 12
        
      Locate 8,5
      If Spieler = 1 Then
          Print "X"
      Else
          Print "0"
      End If
      
    CASE 13
        
      Locate 10,5
      If Spieler = 1 Then
          Print "X"
      Else
          Print "0"
      End If
      
    CASE 21
        
      Locate 6,9
      If Spieler = 1 Then
          Print "X"
      Else
          Print "0"
      End If

    CASE 22
        
      Locate 8,9
      If Spieler = 1 Then
          Print "X"
      Else
          Print "0"
      End If

    CASE 23
        
      Locate 10,9
      If Spieler = 1 Then
          Print "X"
      Else
          Print "0"
      End If
        
    CASE 31
        
      Locate 6,13
      If Spieler = 1 Then
          Print "X"
      Else
          Print "0"
      End If
      
    CASE 32
        
      Locate 8,13
      If Spieler = 1 Then
          Print "X"
      Else
          Print "0"
      End If
      
    CASE 33
        
      Locate 10,13
      If Spieler = 1 Then
          Print "X"
      Else
          Print "0"
      End If
      
    CASE ELSE
      
      Locate 12,1
      PRINT "Die Eingabe war ungueltig. Bitte geben Sie erneut eine Koordinate ein.    "
      Sleep

END SELECT

'Verwaltet die Spieler
If Spieler = 1 Then
    Spieler = 2
Else
    Spieler = 1
End If

Next x
' - - - - Das Ergebnis - - - -  - - - - - - - - - - - - - - - -

Locate 14,1
Print "Moeglicherweise hat ein Spieler gewonnen."
Print "Bei diesem Spiel weiss man das nie so genau."
Print "Zum Beenden des Programms eine Taste druecken."

' - - - - Programmende - - - -  - - - - - - - - - - - - - - - -
Sleep

Bugs[Bearbeiten]

Bug notieren und bitte einen Eintrag mit --~~~~ abschließen (signieren).

  • Das Programm funktioniert praktisch nur bei intelligentem User bzw. wohlwollender und vorausschauender Bedienung. --Michael Reschke 18:27, 18. Jul. 2008 (CEST)
  • Es ist noch möglich ein gesetztes Kreuz durch einen Kreis (und umgekehrt) zu überschreiben. --Michael Reschke 18:27, 18. Jul. 2008 (CEST)
  • Das Programm kann nicht vorzeitig abgebrochen werden. --Michael Reschke 18:27, 18. Jul. 2008 (CEST)

Nächste Version (vorgesehene Features)[Bearbeiten]

Folgende Sachen sollen überarbeitet werden:

  • Die If-Anweisung (1 bis 9) soll durch eine Do-Loop-Schleife ersetzt werden.
  • Es soll ein Überschreiben von gesetzten Symbolen unterbunden werden.
  • Es soll abgefragt werden, wer gewonnen hat.

Feedback[Bearbeiten]

Bitte hierfür die Diskussionsseite nutzen. Vielen Dank!

Kommentar(e)[Bearbeiten]

  • Das Programm hat jetzt bereits 137 Programmzeilen, was mich zu der Frage führt, ob ich denn da auch alles richtig gemacht haben kann... --Michael Reschke 18:27, 18. Jul. 2008 (CEST)