Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- REM By Morgan Verdier
- @ECHO OFF
- :BEGIN
- REM Skill level
- set sl=
- cls
- echo Tic Tac Toe by Morgan (Q to quit)
- echo.
- echo.
- echo Pick your skill level (press a number)
- echo.
- echo (1) Children under 6
- echo (2) Average Mental Case
- echo (3) Oversized Ego
- CHOICE /c:123q /n > nul
- if errorlevel 4 goto end
- if errorlevel 3 set sl=3
- if errorlevel 3 goto layout
- if errorlevel 2 set sl=2
- if errorlevel 2 goto layout
- set sl=1
- :LAYOUT
- REM Player turn ("x" or "o")
- set pt=
- REM Game winner ("x" or "o")
- set gw=
- REM No moves
- set nm=
- REM Set to one blank space after equal sign (check with cursor end)
- set t1=
- set t2=
- set t3=
- set t4=
- set t5=
- set t6=
- set t7=
- set t8=
- set t9=
- :UPDATE
- cls
- echo (S to set skill level) Tic Tac Toe by Morgan (Q to quit)
- echo.
- echo You are the X player.
- echo Press the number where you want to put an X.
- echo.
- echo Skill level %sl% 7 8 9
- echo 4 5 6
- echo 1 2 3
- echo.
- echo : :
- echo %t1% : %t2% : %t3%
- echo ....:...:....
- echo %t4% : %t5% : %t6%
- echo ....:...:....
- echo %t7% : %t8% : %t9%
- echo : :
- if "%gw%"=="x" goto winx2
- if "%gw%"=="o" goto wino2
- if "%nm%"=="0" goto nomoves
- :PLAYER
- set pt=x
- REM Layout is for keypad. Change CHOICE to "/c:123456789sq /n > nul"
- REM for numbers to start at top left (also change user layout above).
- CHOICE /c:789456123sq /n > nul
- if errorlevel 11 goto end
- if errorlevel 10 goto begin
- if errorlevel 9 goto 9
- if errorlevel 8 goto 8
- if errorlevel 7 goto 7
- if errorlevel 6 goto 6
- if errorlevel 5 goto 5
- if errorlevel 4 goto 4
- if errorlevel 3 goto 3
- if errorlevel 2 goto 2
- goto 1
- :1
- REM Check if "x" or "o" already in square.
- if "%t1%"=="x" goto player
- if "%t1%"=="o" goto player
- set t1=x
- goto check
- :2
- if "%t2%"=="x" goto player
- if "%t2%"=="o" goto player
- set t2=x
- goto check
- :3
- if "%t3%"=="x" goto player
- if "%t3%"=="o" goto player
- set t3=x
- goto check
- :4
- if "%t4%"=="x" goto player
- if "%t4%"=="o" goto player
- set t4=x
- goto check
- :5
- if "%t5%"=="x" goto player
- if "%t5%"=="o" goto player
- set t5=x
- goto check
- :6
- if "%t6%"=="x" goto player
- if "%t6%"=="o" goto player
- set t6=x
- goto check
- :7
- if "%t7%"=="x" goto player
- if "%t7%"=="o" goto player
- set t7=x
- goto check
- :8
- if "%t8%"=="x" goto player
- if "%t8%"=="o" goto player
- set t8=x
- goto check
- :9
- if "%t9%"=="x" goto player
- if "%t9%"=="o" goto player
- set t9=x
- goto check
- :COMPUTER
- set pt=o
- if "%sl%"=="1" goto skill1
- REM (win corner to corner)
- if "%t1%"=="o" if "%t3%"=="o" if not "%t2%"=="x" if not "%t2%"=="o" goto c2
- if "%t1%"=="o" if "%t9%"=="o" if not "%t5%"=="x" if not "%t5%"=="o" goto c5
- if "%t1%"=="o" if "%t7%"=="o" if not "%t4%"=="x" if not "%t4%"=="o" goto c4
- if "%t3%"=="o" if "%t7%"=="o" if not "%t5%"=="x" if not "%t5%"=="o" goto c5
- if "%t3%"=="o" if "%t9%"=="o" if not "%t6%"=="x" if not "%t6%"=="o" goto c6
- if "%t9%"=="o" if "%t7%"=="o" if not "%t8%"=="x" if not "%t8%"=="o" goto c8
- REM (win outside middle to outside middle)
- if "%t2%"=="o" if "%t8%"=="o" if not "%t5%"=="x" if not "%t5%"=="o" goto c5
- if "%t4%"=="o" if "%t6%"=="o" if not "%t5%"=="x" if not "%t5%"=="o" goto c5
- REM (win all others)
- if "%t1%"=="o" if "%t2%"=="o" if not "%t3%"=="x" if not "%t3%"=="o" goto c3
- if "%t1%"=="o" if "%t5%"=="o" if not "%t9%"=="x" if not "%t9%"=="o" goto c9
- if "%t1%"=="o" if "%t4%"=="o" if not "%t7%"=="x" if not "%t7%"=="o" goto c7
- if "%t2%"=="o" if "%t5%"=="o" if not "%t8%"=="x" if not "%t8%"=="o" goto c8
- if "%t3%"=="o" if "%t2%"=="o" if not "%t1%"=="x" if not "%t1%"=="o" goto c1
- if "%t3%"=="o" if "%t5%"=="o" if not "%t7%"=="x" if not "%t7%"=="o" goto c7
- if "%t3%"=="o" if "%t6%"=="o" if not "%t9%"=="x" if not "%t9%"=="o" goto c9
- if "%t4%"=="o" if "%t5%"=="o" if not "%t6%"=="x" if not "%t6%"=="o" goto c6
- if "%t6%"=="o" if "%t5%"=="o" if not "%t4%"=="x" if not "%t4%"=="o" goto c4
- if "%t7%"=="o" if "%t4%"=="o" if not "%t1%"=="x" if not "%t1%"=="o" goto c1
- if "%t7%"=="o" if "%t5%"=="o" if not "%t3%"=="x" if not "%t3%"=="o" goto c3
- if "%t7%"=="o" if "%t8%"=="o" if not "%t9%"=="x" if not "%t9%"=="o" goto c9
- if "%t8%"=="o" if "%t5%"=="o" if not "%t2%"=="x" if not "%t2%"=="o" goto c2
- if "%t9%"=="o" if "%t8%"=="o" if not "%t7%"=="x" if not "%t7%"=="o" goto c7
- if "%t9%"=="o" if "%t5%"=="o" if not "%t1%"=="x" if not "%t1%"=="o" goto c1
- if "%t9%"=="o" if "%t6%"=="o" if not "%t3%"=="x" if not "%t3%"=="o" goto c3
- REM (block general attempts) -----------------------------------------------
- if "%t1%"=="x" if "%t2%"=="x" if not "%t3%"=="x" if not "%t3%"=="o" goto c3
- if "%t1%"=="x" if "%t5%"=="x" if not "%t9%"=="x" if not "%t9%"=="o" goto c9
- if "%t1%"=="x" if "%t4%"=="x" if not "%t7%"=="x" if not "%t7%"=="o" goto c7
- if "%t2%"=="x" if "%t5%"=="x" if not "%t8%"=="x" if not "%t8%"=="o" goto c8
- if "%t3%"=="x" if "%t2%"=="x" if not "%t1%"=="x" if not "%t1%"=="o" goto c1
- if "%t3%"=="x" if "%t5%"=="x" if not "%t7%"=="x" if not "%t7%"=="o" goto c7
- if "%t3%"=="x" if "%t6%"=="x" if not "%t9%"=="x" if not "%t9%"=="o" goto c9
- if "%t4%"=="x" if "%t5%"=="x" if not "%t6%"=="x" if not "%t6%"=="o" goto c6
- if "%t6%"=="x" if "%t5%"=="x" if not "%t4%"=="x" if not "%t4%"=="o" goto c4
- if "%t7%"=="x" if "%t4%"=="x" if not "%t1%"=="x" if not "%t1%"=="o" goto c1
- if "%t7%"=="x" if "%t5%"=="x" if not "%t3%"=="x" if not "%t3%"=="o" goto c3
- if "%t7%"=="x" if "%t8%"=="x" if not "%t9%"=="x" if not "%t9%"=="o" goto c9
- if "%t8%"=="x" if "%t5%"=="x" if not "%t2%"=="x" if not "%t2%"=="o" goto c2
- if "%t9%"=="x" if "%t8%"=="x" if not "%t7%"=="x" if not "%t7%"=="o" goto c7
- if "%t9%"=="x" if "%t5%"=="x" if not "%t1%"=="x" if not "%t1%"=="o" goto c1
- if "%t9%"=="x" if "%t6%"=="x" if not "%t3%"=="x" if not "%t3%"=="o" goto c3
- REM (block obvious corner to corner)
- if "%t1%"=="x" if "%t3%"=="x" if not "%t2%"=="x" if not "%t2%"=="o" goto c2
- if "%t1%"=="x" if "%t9%"=="x" if not "%t5%"=="x" if not "%t5%"=="o" goto c5
- if "%t1%"=="x" if "%t7%"=="x" if not "%t4%"=="x" if not "%t4%"=="o" goto c4
- if "%t3%"=="x" if "%t7%"=="x" if not "%t5%"=="x" if not "%t5%"=="o" goto c5
- if "%t3%"=="x" if "%t9%"=="x" if not "%t6%"=="x" if not "%t6%"=="o" goto c6
- if "%t9%"=="x" if "%t7%"=="x" if not "%t8%"=="x" if not "%t8%"=="o" goto c8
- if "%sl%"=="2" goto skill2
- REM (block sneaky corner to corner 2-4, 2-6, etc.)
- if "%t2%"=="x" if "%t4%"=="x" if not "%t1%"=="x" if not "%t1%"=="o" goto c1
- if "%t2%"=="x" if "%t6%"=="x" if not "%t3%"=="x" if not "%t3%"=="o" goto c3
- if "%t8%"=="x" if "%t4%"=="x" if not "%t7%"=="x" if not "%t7%"=="o" goto c7
- if "%t8%"=="x" if "%t6%"=="x" if not "%t9%"=="x" if not "%t9%"=="o" goto c9
- REM (block offset corner trap 1-8, 1-6, etc.)
- if "%t1%"=="x" if "%t6%"=="x" if not "%t8%"=="x" if not "%t8%"=="o" goto c8
- if "%t1%"=="x" if "%t8%"=="x" if not "%t6%"=="x" if not "%t6%"=="o" goto c6
- if "%t3%"=="x" if "%t8%"=="x" if not "%t4%"=="x" if not "%t4%"=="o" goto c4
- if "%t3%"=="x" if "%t4%"=="x" if not "%t8%"=="x" if not "%t8%"=="o" goto c8
- if "%t9%"=="x" if "%t4%"=="x" if not "%t2%"=="x" if not "%t2%"=="o" goto c2
- if "%t9%"=="x" if "%t2%"=="x" if not "%t4%"=="x" if not "%t4%"=="o" goto c4
- if "%t7%"=="x" if "%t2%"=="x" if not "%t6%"=="x" if not "%t6%"=="o" goto c6
- if "%t7%"=="x" if "%t6%"=="x" if not "%t2%"=="x" if not "%t2%"=="o" goto c2
- :SKILL2
- REM (block outside middle to outside middle)
- if "%t2%"=="x" if "%t8%"=="x" if not "%t5%"=="x" if not "%t5%"=="o" goto c5
- if "%t4%"=="x" if "%t6%"=="x" if not "%t5%"=="x" if not "%t5%"=="o" goto c5
- REM (block 3 corner trap)
- if "%t1%"=="x" if "%t9%"=="x" if not "%t2%"=="x" if not "%t2%"=="o" goto c2
- if "%t3%"=="x" if "%t7%"=="x" if not "%t2%"=="x" if not "%t2%"=="o" goto c2
- if "%t1%"=="x" if "%t9%"=="x" if not "%t4%"=="x" if not "%t4%"=="o" goto c4
- if "%t3%"=="x" if "%t7%"=="x" if not "%t4%"=="x" if not "%t4%"=="o" goto c4
- if "%t1%"=="x" if "%t9%"=="x" if not "%t6%"=="x" if not "%t6%"=="o" goto c6
- if "%t3%"=="x" if "%t7%"=="x" if not "%t6%"=="x" if not "%t6%"=="o" goto c6
- if "%t1%"=="x" if "%t9%"=="x" if not "%t8%"=="x" if not "%t8%"=="o" goto c8
- if "%t3%"=="x" if "%t7%"=="x" if not "%t8%"=="x" if not "%t8%"=="o" goto c8
- :SKILL1
- REM (just take a turn)
- if not "%t5%"=="x" if not "%t5%"=="o" goto c5
- if not "%t1%"=="x" if not "%t1%"=="o" goto c1
- if not "%t3%"=="x" if not "%t3%"=="o" goto c3
- if not "%t7%"=="x" if not "%t7%"=="o" goto c7
- if not "%t9%"=="x" if not "%t9%"=="o" goto c9
- if not "%t2%"=="x" if not "%t2%"=="o" goto c2
- if not "%t4%"=="x" if not "%t4%"=="o" goto c4
- if not "%t6%"=="x" if not "%t6%"=="o" goto c6
- if not "%t8%"=="x" if not "%t8%"=="o" goto c8
- set nm=0
- goto update
- :C1
- set t1=o
- goto check
- :C2
- set t2=o
- goto check
- :C3
- set t3=o
- goto check
- :C4
- set t4=o
- goto check
- :C5
- set t5=o
- goto check
- :C6
- set t6=o
- goto check
- :C7
- set t7=o
- goto check
- :C8
- set t8=o
- goto check
- :C9
- set t9=o
- goto check
- :CHECK
- if "%t1%"=="x" if "%t2%"=="x" if "%t3%"=="x" goto winx
- if "%t4%"=="x" if "%t5%"=="x" if "%t6%"=="x" goto winx
- if "%t7%"=="x" if "%t8%"=="x" if "%t9%"=="x" goto winx
- if "%t1%"=="x" if "%t4%"=="x" if "%t7%"=="x" goto winx
- if "%t2%"=="x" if "%t5%"=="x" if "%t8%"=="x" goto winx
- if "%t3%"=="x" if "%t6%"=="x" if "%t9%"=="x" goto winx
- if "%t1%"=="x" if "%t5%"=="x" if "%t9%"=="x" goto winx
- if "%t3%"=="x" if "%t5%"=="x" if "%t7%"=="x" goto winx
- if "%t1%"=="o" if "%t2%"=="o" if "%t3%"=="o" goto wino
- if "%t4%"=="o" if "%t5%"=="o" if "%t6%"=="o" goto wino
- if "%t7%"=="o" if "%t8%"=="o" if "%t9%"=="o" goto wino
- if "%t1%"=="o" if "%t4%"=="o" if "%t7%"=="o" goto wino
- if "%t2%"=="o" if "%t5%"=="o" if "%t8%"=="o" goto wino
- if "%t3%"=="o" if "%t6%"=="o" if "%t9%"=="o" goto wino
- if "%t1%"=="o" if "%t5%"=="o" if "%t9%"=="o" goto wino
- if "%t3%"=="o" if "%t5%"=="o" if "%t7%"=="o" goto wino
- if "%pt%"=="x" goto computer
- if "%pt%"=="o" goto update
- :WINX
- set gw=x
- goto update
- :WINX2
- echo You win!
- echo Play again (Y,N)?
- CHOICE /c:ynsq /n > nul
- if errorlevel 4 goto end
- if errorlevel 3 goto begin
- if errorlevel 2 goto end
- goto layout
- :WINO
- set gw=o
- goto update
- :WINO2
- echo Sorry, You lose.
- echo Play again (Y,N)?
- CHOICE /c:ynsq /n > nul
- if errorlevel 4 goto end
- if errorlevel 3 goto begin
- if errorlevel 2 goto end
- goto layout
- :NOMOVES
- echo There are no more moves left!
- echo Play again (Y,N)?
- CHOICE /c:ynsq /n > nul
- if errorlevel 4 goto end
- if errorlevel 3 goto begin
- if errorlevel 2 goto end
- goto layout
- :END
- cls
- echo Tic Tac Toe by Morgan
- echo.
- REM Clear all variables (no spaces after equal sign).
- set gw=
- set nm=
- set sl=
- set pt=
- set t1=
- set t2=
- set t3=
- set t4=
- set t5=
- set t6=
- set t7=
- set t8=
- set t9=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement