Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Setzspiel - relativ kurzer Quelltext

Uploader:AdministratorSebastian
Datum/Zeit:21.07.2008 01:07:37

FUNCTION SpielerSymbol (ByVal Spieler As Byte) AS STRING
    IF Spieler = 1 THEN
        RETURN "X"
    ELSE
        RETURN "O"
    END IF
END FUNCTION

SUB Sieg (ByVal Spieler As Byte)
    LOCATE 14,1: PRINT "Spieler " & Spieler & " hat gewonnen."
    BEEP: SLEEP: END
END SUB

Dim As Byte Spieler, Feld(1 to 3, 1 to 3), k, x, y, i
CLS
PRINT "Setzspiel"
PRINT "fuer 2 Spieler"
PRINT
PRINT "    1   2   3"
PRINT
PRINT "1   . | . | ."
PRINT "    - + - + -"
PRINT "2   . | . | ."
PRINT "    - + - + -"
PRINT "3   . | . | ."
PRINT
Spieler=1
DO
    FOR i = 12 TO 14
        LOCATE i,1: PRINT STRING(79,32)
    NEXT i
    LOCATE 12,1: PRINT "Am Zug: Spieler " & Spieler & " (" & SpielerSymbol(Spieler) & ")"
    LOCATE 13,1: INPUT "An welche Koordinate (XY, z.B. 12 / 0 = Ende) setzen? ", k
    IF k = 0 THEN
        END
    ELSEIF (k < 0) OR ((k > 0 ) AND (k < 11)) OR (k > 33) THEN
        BEEP
    ELSE
        x = VAL(LEFT(STR(k),1))
        y = VAL(RIGHT(STR(k),1))
        IF feld(x,y) > 0 THEN
            LOCATE 14,1: PRINT "Feld ist schon besetzt. Beliebige Taste druecken, um noch mal zu setzen."
            SLEEP
        ELSE
            feld(x,y) = Spieler
            LOCATE 6+((y-1)*2),5+((x-1)*4): PRINT SpielerSymbol(Spieler)
            FOR i = 1 to 3
                IF Feld(i,1) > 0 THEN
                    IF Feld(i,1)=Feld(i,2) AND Feld(i,2)=Feld(i,3) THEN Sieg (Feld(i,1))
                END IF
            NEXT i
            FOR i = 1 to 3
                IF Feld(1,i) > 0 THEN
                    IF Feld(1,i) = Feld(2,i) AND Feld(2,i) = Feld(3,i) THEN Sieg (Feld(1,i))
                END IF
            NEXT i
            IF (Feld(1,1)=Feld(2,2) AND Feld(2,2)=Feld(3,3)) AND (Feld(1,1)>0) THEN Sieg(Feld(1,1))
            IF (Feld(3,1)=Feld(2,2) AND Feld(2,2)=Feld(1,3)) AND (Feld(3,1)>0) THEN Sieg(Feld(3,1))
            Spieler = 3-Spieler
        END IF
    END IF
LOOP
END