@echo off
:Open
set /p Anzahl=Wie Viele Spieler spielen? [1/2] 
if /i %Anzahl%==2 goto two
if /i %Anzahl%==1 goto one

:two
set z1=1
set z2=2
set z3=3
set z4=4
set z5=5
set z6=6
set z7=7
set z8=8
set z9=9

cls
set /p Player1=Name von Spieler1: 
echo.
set /p Player2=Name von Spieler2: 
:Zeichen1
echo.
echo.
set /p Zeichen1=%Player1%, gib dein Zeichen ein: 
set Test-Zeichen1=%Zeichen1%
set Zeichen1=%Zeichen1:~0,1%
if not %Test-Zeichen1%==%Zeichen1% goto Zeichen1
if not %Zeichen1%==0 if not %Zeichen1%==1 if not %Zeichen1%==2 if not %Zeichen1%==3 if not %Zeichen1%==4 if not %Zeichen1%==5 if not %Zeichen1%==6 if not %Zeichen1%==7 if not %Zeichen1%==8 if not %Zeichen1%==9 goto Zeichen2
echo Dies ist eine Zahl, da diese im Spiel vorkommt kannst du sie nicht verwenden.
ping localhost -n 3 >nul
goto Zeichen1
:Zeichen2
echo.
set /p Zeichen2=%Player2%, gib dein Zeichen ein: 
set Test-Zeichen2=%Zeichen2%
set Zeichen2=%Zeichen2:~0,1%
if not %Test-Zeichen2%==%Zeichen2% goto Zeichen2
if not %Zeichen2%==0 if not %Zeichen2%==1 if not %Zeichen2%==2 if not %Zeichen2%==3 if not %Zeichen2%==4 if not %Zeichen2%==5 if not %Zeichen2%==6 if not %Zeichen2%==7 if not %Zeichen2%==8 if not %Zeichen2%==9 goto check-start
echo Dies ist eine Zahl, da diese im Spiel vorkommt kannst du sie nicht verwenden.
ping localhost -n 3 >nul
goto Zeichen2
:check-start
cls
echo Spieler1 heisst %Player1% und hat das Zeichen %Zeichen1%
echo.
echo Spieler2 heisst %Player2% und hat das Zeichen %Zeichen2%
echo.
set /p namecheck=Stimmt das? [J/N]
if /i %namecheck%==J goto startgame
if /i %namecheck%==N goto two
echo Ja oder Nein?
ping localhost -n 3 >nul
goto check-start




:startgame
set /a Startspieler=%Random% %% 2
if /i Startspieler==0 goto Game-Player1
if /i Startspieler==1 goto Game-Player2

:Game-Player1
cls
echo %Player1% ist dran!!!
echo.
echo .......
echo %z1%__%z2%__%z3%
echo .......
echo %z4%__%z5%__%z6%
echo .......
echo %z7%__%z8%__%z9%
echo .......
echo.
set /p rp1=%Player1%, wo moechtest du dein Zeichen %Zeichen1% setzen?
if /i %rp1%==1 goto rp1-1
if /i %rp1%==2 goto rp1-2
if /i %rp1%==3 goto rp1-3
if /i %rp1%==4 goto rp1-4
if /i %rp1%==5 goto rp1-5
if /i %rp1%==6 goto rp1-6
if /i %rp1%==7 goto rp1-7
if /i %rp1%==8 goto rp1-8
if /i %rp1%==9 goto rp1-9
goto Game-Player1



:rp1-1
set round=1
if /i %z1%==%Zeichen1% goto Game-Player1
if /i %z1%==%Zeichen2% goto Game-Player1
set z1=%Zeichen1%
goto Wincheck

:rp1-2
set round=1
if /i %z2%==%Zeichen1% goto Game-Player1
if /i %z2%==%Zeichen2% goto Game-Player1
set z2=%Zeichen1%
goto Wincheck

:rp1-3
set round=1
if /i %z3%==%Zeichen1% goto Game-Player1
if /i %z3%==%Zeichen2% goto Game-Player1
set z3=%Zeichen1%
goto Wincheck

:rp1-4
set round=1
if /i %z4%==%Zeichen1% goto Game-Player1
if /i %z4%==%Zeichen2% goto Game-Player1
set z4=%Zeichen1%
goto Wincheck

:rp1-5
set round=1
if /i %z5%==%Zeichen1% goto Game-Player1
if /i %z5%==%Zeichen2% goto Game-Player1
set z5=%Zeichen1%
goto Wincheck

:rp1-6
set round=1
if /i %z6%==%Zeichen1% goto Game-Player1
if /i %z6%==%Zeichen2% goto Game-Player1
set z6=%Zeichen1%
goto Wincheck

:rp1-7
set round=1
if /i %z7%==%Zeichen1% goto Game-Player1
if /i %z7%==%Zeichen2% goto Game-Player1
set z7=%Zeichen1%
goto Wincheck

:rp1-8
set round=1
if /i %z8%==%Zeichen1% goto Game-Player1
if /i %z8%==%Zeichen2% goto Game-Player1
set z8=%Zeichen1%
goto Wincheck

:rp1-9
set round=1
if /i %z9%==%Zeichen1% goto Game-Player1
if /i %z9%==%Zeichen2% goto Game-Player1
set z9=%Zeichen1%
goto Wincheck



:Game-Player2
cls
echo %Player2% ist dran!!!
echo.
echo .......
echo %z1%__%z2%__%z3%
echo .......
echo %z4%__%z5%__%z6%
echo .......
echo %z7%__%z8%__%z9%
echo .......
echo.
set /p rp2=%Player2%, wo moechtest du dein Zeichen %Zeichen2% setzen?
if /i %rp2%==1 goto rp2-1
if /i %rp2%==2 goto rp2-2
if /i %rp2%==3 goto rp2-3
if /i %rp2%==4 goto rp2-4
if /i %rp2%==5 goto rp2-5
if /i %rp2%==6 goto rp2-6
if /i %rp2%==7 goto rp2-7
if /i %rp2%==8 goto rp2-8
if /i %rp2%==9 goto rp2-9
goto Game-Player2



:rp2-1
set round=2
if /i %z1%==%Zeichen1% goto Game-Player2
if /i %z1%==%Zeichen2% goto Game-Player2
set z1=%Zeichen2%
goto Wincheck

:rp2-2
set round=2
if /i %z2%==%Zeichen1% goto Game-Player2
if /i %z2%==%Zeichen2% goto Game-Player2
set z2=%Zeichen2%
goto Wincheck

:rp2-3
set round=2
if /i %z3%==%Zeichen1% goto Game-Player2
if /i %z3%==%Zeichen2% goto Game-Player2
set z3=%Zeichen2%
goto Wincheck

:rp2-4
set round=2
if /i %z4%==%Zeichen1% goto Game-Player2
if /i %z4%==%Zeichen2% goto Game-Player2
set z4=%Zeichen2%
goto Wincheck

:rp2-5
set round=2
if /i %z5%==%Zeichen1% goto Game-Player2
if /i %z5%==%Zeichen2% goto Game-Player2
set z5=%Zeichen2%
goto Wincheck

:rp2-6
set round=2
if /i %z6%==%Zeichen1% goto Game-Player2
if /i %z6%==%Zeichen2% goto Game-Player2
set z6=%Zeichen2%
goto Wincheck

:rp2-7
set round=2
if /i %z7%==%Zeichen1% goto Game-Player2
if /i %z7%==%Zeichen2% goto Game-Player2
set z7=%Zeichen2%
goto Wincheck

:rp2-8
set round=2
if /i %z8%==%Zeichen1% goto Game-Player2
if /i %z8%==%Zeichen2% goto Game-Player2
set z8=%Zeichen2%
goto Wincheck

:rp2-9
set round=2
if /i %z9%==%Zeichen1% goto Game-Player2
if /i %z9%==%Zeichen2% goto Game-Player2
set z9=%Zeichen2%
goto Wincheck




:Wincheck
if %z1%==%Zeichen1% if %z2%==%Zeichen1% if %z3%==%Zeichen1% goto Win1
if %z4%==%Zeichen1% if %z5%==%Zeichen1% if %z6%==%Zeichen1% goto Win1
if %z7%==%Zeichen1% if %z8%==%Zeichen1% if %z9%==%Zeichen1% goto Win1
if %z1%==%Zeichen1% if %z5%==%Zeichen1% if %z9%==%Zeichen1% goto Win1
if %z3%==%Zeichen1% if %z5%==%Zeichen1% if %z7%==%Zeichen1% goto Win1
if %z1%==%Zeichen1% if %z4%==%Zeichen1% if %z7%==%Zeichen1% goto Win1
if %z2%==%Zeichen1% if %z5%==%Zeichen1% if %z8%==%Zeichen1% goto Win1
if %z3%==%Zeichen1% if %z6%==%Zeichen1% if %z9%==%Zeichen1% goto Win1

if %z1%==%Zeichen2% if %z2%==%Zeichen2% if %z3%==%Zeichen2% goto Win2
if %z4%==%Zeichen2% if %z5%==%Zeichen2% if %z6%==%Zeichen2% goto Win2
if %z7%==%Zeichen2% if %z8%==%Zeichen2% if %z9%==%Zeichen2% goto Win2
if %z1%==%Zeichen2% if %z5%==%Zeichen2% if %z9%==%Zeichen2% goto Win2
if %z3%==%Zeichen2% if %z5%==%Zeichen2% if %z7%==%Zeichen2% goto Win2
if %z1%==%Zeichen2% if %z4%==%Zeichen2% if %z7%==%Zeichen2% goto Win2
if %z2%==%Zeichen2% if %z5%==%Zeichen2% if %z8%==%Zeichen2% goto Win2
if %z3%==%Zeichen2% if %z6%==%Zeichen2% if %z9%==%Zeichen2% goto Win2


if not %z1%==1 if not %z2%==2 if not %z3%==3 if not %z4%==4 if not %z5%==5 if not %z6%==6 if not %z7%==7 if not %z8%==8 if not %z9%==9 goto WinNo
if /i %round%==1 goto Game-Player2
if /i %round%==2 goto Game-Player1



:Win1
cls
echo.
echo .......
echo %z1%__%z2%__%z3%
echo .......
echo %z4%__%z5%__%z6%
echo .......
echo %z7%__%z8%__%z9%
echo .......
echo.
echo Gut gemacht, %Player1% du hast gegen %Player2% gewonnen.
set /p Nochmal=Willst do nochmal spielen? [J/N] 
if /i %Nochmal%==J goto Open
if /i %Nochmal%==N goto EXIT
goto Win1
:Win2
cls
echo.
echo .......
echo %z1%__%z2%__%z3%
echo .......
echo %z4%__%z5%__%z6%
echo .......
echo %z7%__%z8%__%z9%
echo .......
echo.
echo Gut gemacht, %Player2% du hast gegen %Player1% gewonnen.
set /p Nochmal=Willst do nochmal spielen? [J/N] 
if /i %Nochmal%==J goto Open
if /i %Nochmal%==N goto EXIT
goto Win2
:WinNo
cls
echo.
echo .......
echo %z1%__%z2%__%z3%
echo .......
echo %z4%__%z5%__%z6%
echo .......
echo %z7%__%z8%__%z9%
echo .......
echo.
echo Schade, es herrscht ein Gleichstand zwischen %Player1% und %Player2%
set /p Nochmal=Willst do nochmal spielen? [J/N] 
if /i %Nochmal%==J goto Open
if /i %Nochmal%==N goto EXIT
goto WinNo

:EXIT
cls
echo Danke fuers spielen!
ping localhost -n 3 >nul
exit









:one
set z1=1
set z2=2
set z3=3
set z4=4
set z5=5
set z6=6
set z7=7
set z8=8
set z9=9

cls
set /p Player1=Name von Spieler: 
echo.
set /p Player2=Name von Computer: 
:Zeichen1-one
echo.
echo.
set /p Zeichen1=%Player1%, gib dein Zeichen ein: 
set Test-Zeichen1=%Zeichen1%
set Zeichen1=%Zeichen1:~0,1%
if not %Test-Zeichen1%==%Zeichen1% goto Zeichen1-one
if not %Zeichen1%==0 if not %Zeichen1%==1 if not %Zeichen1%==2 if not %Zeichen1%==3 if not %Zeichen1%==4 if not %Zeichen1%==5 if not %Zeichen1%==6 if not %Zeichen1%==7 if not %Zeichen1%==8 if not %Zeichen1%==9 goto Zeichen2-one
echo Dies ist eine Zahl, da diese im Spiel vorkommt kannst du sie nicht verwenden.
ping localhost -n 3 >nul
goto Zeichen1-one
:Zeichen2-one
echo.
set /p Zeichen2=%Player2%, gib dein Zeichen ein: 
set Test-Zeichen2=%Zeichen2%
set Zeichen2=%Zeichen2:~0,1%
if not %Test-Zeichen2%==%Zeichen2% goto Zeichen2-one
if not %Zeichen2%==0 if not %Zeichen2%==1 if not %Zeichen2%==2 if not %Zeichen2%==3 if not %Zeichen2%==4 if not %Zeichen2%==5 if not %Zeichen2%==6 if not %Zeichen2%==7 if not %Zeichen2%==8 if not %Zeichen2%==9 goto check-start-one
echo Dies ist eine Zahl, da diese im Spiel vorkommt kannst du sie nicht verwenden.
ping localhost -n 3 >nul
goto Zeichen2-one
:check-start-one
cls
echo Spieler1 heisst %Player1% und hat das Zeichen %Zeichen1%
echo.
echo Computer heisst %Player2% und hat das Zeichen %Zeichen2%
echo.
set /p namecheck=Stimmt das? [J/N]
if /i %namecheck%==J goto startgame-one
if /i %namecheck%==N goto one
echo Ja oder Nein?
ping localhost -n 3 >nul
goto check-start




:startgame-one
set /a Startspieler=%Random% %% 2
if /i Startspieler==0 goto Game-Player1-one
if /i Startspieler==1 goto Game-Player2-one

:Game-Player1-one
cls
echo %Player1% ist dran!!!
echo.
echo .......
echo %z1%__%z2%__%z3%
echo .......
echo %z4%__%z5%__%z6%
echo .......
echo %z7%__%z8%__%z9%
echo .......
echo.
set /p rp1=%Player1%, wo moechtest du dein Zeichen %Zeichen1% setzen?
if /i %rp1%==1 goto rp1-1-one
if /i %rp1%==2 goto rp1-2-one
if /i %rp1%==3 goto rp1-3-one
if /i %rp1%==4 goto rp1-4-one
if /i %rp1%==5 goto rp1-5-one
if /i %rp1%==6 goto rp1-6-one
if /i %rp1%==7 goto rp1-7-one
if /i %rp1%==8 goto rp1-8-one
if /i %rp1%==9 goto rp1-9-one
goto Game-Player1-one



:rp1-1-one
set round=1
if /i %z1%==%Zeichen1% goto Game-Player1-one
if /i %z1%==%Zeichen2% goto Game-Player1-one
set z1=%Zeichen1%
goto Wincheck-one

:rp1-2-one
set round=1
if /i %z2%==%Zeichen1% goto Game-Player1-one
if /i %z2%==%Zeichen2% goto Game-Player1-one
set z2=%Zeichen1%
goto Wincheck-one

:rp1-3-one
set round=1
if /i %z3%==%Zeichen1% goto Game-Player1-one
if /i %z3%==%Zeichen2% goto Game-Player1-one
set z3=%Zeichen1%
goto Wincheck-one

:rp1-4-one
set round=1
if /i %z4%==%Zeichen1% goto Game-Player1-one
if /i %z4%==%Zeichen2% goto Game-Player1-one
set z4=%Zeichen1%
goto Wincheck-one

:rp1-5-one
set round=1
if /i %z5%==%Zeichen1% goto Game-Player1-one
if /i %z5%==%Zeichen2% goto Game-Player1-one
set z5=%Zeichen1%
goto Wincheck-one

:rp1-6-one
set round=1
if /i %z6%==%Zeichen1% goto Game-Player1-one
if /i %z6%==%Zeichen2% goto Game-Player1-one
set z6=%Zeichen1%
goto Wincheck-one

:rp1-7-one
set round=1
if /i %z7%==%Zeichen1% goto Game-Player1-one
if /i %z7%==%Zeichen2% goto Game-Player1-one
set z7=%Zeichen1%
goto Wincheck-one

:rp1-8-one
set round=1
if /i %z8%==%Zeichen1% goto Game-Player1-one
if /i %z8%==%Zeichen2% goto Game-Player1-one
set z8=%Zeichen1%
goto Wincheck-one

:rp1-9-one
set round=1
if /i %z9%==%Zeichen1% goto Game-Player1-one
if /i %z9%==%Zeichen2% goto Game-Player1-one
set z9=%Zeichen1%
goto Wincheck-one



:Game-Player2-one
cls
echo %Player2% ist dran!!!
echo.
echo .......
echo %z1%__%z2%__%z3%
echo .......
echo %z4%__%z5%__%z6%
echo .......
echo %z7%__%z8%__%z9%
echo .......
echo.
set /a rp2=%Random% %% 9
if /i %rp2%==1 goto rp2-1-one
if /i %rp2%==2 goto rp2-2-one
if /i %rp2%==3 goto rp2-3-one
if /i %rp2%==4 goto rp2-4-one
if /i %rp2%==5 goto rp2-5-one
if /i %rp2%==6 goto rp2-6-one
if /i %rp2%==7 goto rp2-7-one
if /i %rp2%==8 goto rp2-8-one
if /i %rp2%==9 goto rp2-9-one
goto Game-Player2-one



:rp2-1-one
set round=2
if /i %z1%==%Zeichen1% goto Game-Player2-one
if /i %z1%==%Zeichen2% goto Game-Player2-one
set z1=%Zeichen2%
goto Wincheck-one

:rp2-2-one
set round=2
if /i %z2%==%Zeichen1% goto Game-Player2-one
if /i %z2%==%Zeichen2% goto Game-Player2-one
set z2=%Zeichen2%
goto Wincheck-one

:rp2-3-one
set round=2
if /i %z3%==%Zeichen1% goto Game-Player2-one
if /i %z3%==%Zeichen2% goto Game-Player2-one
set z3=%Zeichen2%
goto Wincheck-one

:rp2-4-one
set round=2
if /i %z4%==%Zeichen1% goto Game-Player2-one
if /i %z4%==%Zeichen2% goto Game-Player2-one
set z4=%Zeichen2%
goto Wincheck-one

:rp2-5-one
set round=2
if /i %z5%==%Zeichen1% goto Game-Player2-one
if /i %z5%==%Zeichen2% goto Game-Player2-one
set z5=%Zeichen2%
goto Wincheck-one

:rp2-6-one
set round=2
if /i %z6%==%Zeichen1% goto Game-Player2-one
if /i %z6%==%Zeichen2% goto Game-Player2-one
set z6=%Zeichen2%
goto Wincheck-one

:rp2-7-one
set round=2
if /i %z7%==%Zeichen1% goto Game-Player2-one
if /i %z7%==%Zeichen2% goto Game-Player2-one
set z7=%Zeichen2%
goto Wincheck-one

:rp2-8-one
set round=2
if /i %z8%==%Zeichen1% goto Game-Player2-one
if /i %z8%==%Zeichen2% goto Game-Player2-one
set z8=%Zeichen2%
goto Wincheck-one

:rp2-9-one
set round=2
if /i %z9%==%Zeichen1% goto Game-Player2-one
if /i %z9%==%Zeichen2% goto Game-Player2-one
set z9=%Zeichen2%
goto Wincheck-one




:Wincheck-one
if %z1%==%Zeichen1% if %z2%==%Zeichen1% if %z3%==%Zeichen1% goto Win1
if %z4%==%Zeichen1% if %z5%==%Zeichen1% if %z6%==%Zeichen1% goto Win1
if %z7%==%Zeichen1% if %z8%==%Zeichen1% if %z9%==%Zeichen1% goto Win1
if %z1%==%Zeichen1% if %z5%==%Zeichen1% if %z9%==%Zeichen1% goto Win1
if %z3%==%Zeichen1% if %z5%==%Zeichen1% if %z7%==%Zeichen1% goto Win1
if %z1%==%Zeichen1% if %z4%==%Zeichen1% if %z7%==%Zeichen1% goto Win1
if %z2%==%Zeichen1% if %z5%==%Zeichen1% if %z8%==%Zeichen1% goto Win1
if %z3%==%Zeichen1% if %z6%==%Zeichen1% if %z9%==%Zeichen1% goto Win1

if %z1%==%Zeichen2% if %z2%==%Zeichen2% if %z3%==%Zeichen2% goto Win2
if %z4%==%Zeichen2% if %z5%==%Zeichen2% if %z6%==%Zeichen2% goto Win2
if %z7%==%Zeichen2% if %z8%==%Zeichen2% if %z9%==%Zeichen2% goto Win2
if %z1%==%Zeichen2% if %z5%==%Zeichen2% if %z9%==%Zeichen2% goto Win2
if %z3%==%Zeichen2% if %z5%==%Zeichen2% if %z7%==%Zeichen2% goto Win2
if %z1%==%Zeichen2% if %z4%==%Zeichen2% if %z7%==%Zeichen2% goto Win2
if %z2%==%Zeichen2% if %z5%==%Zeichen2% if %z8%==%Zeichen2% goto Win2
if %z3%==%Zeichen2% if %z6%==%Zeichen2% if %z9%==%Zeichen2% goto Win2


if not %z1%==1 if not %z2%==2 if not %z3%==3 if not %z4%==4 if not %z5%==5 if not %z6%==6 if not %z7%==7 if not %z8%==8 if not %z9%==9 goto WinNo
if /i %round%==1 goto Game-Player2-one
if /i %round%==2 goto Game-Player1-one