Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

TicTacToe per Batch

Tipp Entwicklung Batch & Shell

Mitglied: 106543

106543 (Level 2)

05.04.2013 um 14:55 Uhr, 4766 Aufrufe, 5 Kommentare

Hi Leute, nettes kleines Batch-Scriptchen, womit man TicTacToe spielen kann
grade gefeunden als mir langweilig war ...
einfach den Code in eine .txt kopieren und in .bat umbenennen.
01.
@Echo Off 
02.
::Tic Tac Toe Trainer v1.0 
03.
::Author: Sourcecodes.de 
04.
:Global 
05.
SetLocal EnableExtensions EnableDelayedExpansion 
06.
Set "b.s.-1=O" & Set "b.s.0= " & Set "b.s.1=X" 
07.
Set/a "e.f.1=7,e.f.7=1,e.f.3=5,e.f.5=3" 
08.
Set/a "e.c.1.a=0,e.c.1.b=2,e.c.3.a=0,e.c.3.b=6" 
09.
Set/a "e.c.5.a=2,e.c.5.b=8,e.c.7.a=6,e.c.7.b=8" 
10.
Set/a "c.d.0=8,c.d.8=0,c.d.2=6,c.d.6=2" 
11.
Set/a "c.s.0.a=1,c.s.0.b=3,c.s.2.a=1,c.s.2.b=5" 
12.
Set/a "c.s.6.a=3,c.s.6.b=7,c.s.8.a=5,c.s.8.b=7" 
13.
Set "all=0 1 2 3 4 5 6 7 8" & Set "center=4" 
14.
Set "corners=0 2 6 8" & Set "edges=1 3 5 7" 
15.
Set "wp="0 1 2" "3 4 5" "6 7 8" "0 3 6"" 
16.
Set "wp=!wp! "1 4 7" "2 5 8" "0 4 8" "2 4 6"" 
17.
If Not Exist Mouse.exe Call :BMouse 
18.
Set/a "computer=ties=player=0" 
19.
:Main 
20.
Title Tic Tac Toe Trainer by Sourcecodes.de 
21.
Echo.Tic Tac Toe Trainer by Sourcecodes.de 
22.
Echo......................... 
23.
Echo.Spiel mit der Maus 
24.
Echo.Für Beenden, STRG-C 
25.
Echo.Klicken zum fortfahren 
26.
Mouse > Nul 2>&1 
27.
Call :BMenu 
28.
Goto :Eof 
29.
:BMenu 
30.
Cls 
31.
Set/a "b=1" 
32.
:Play 
33.
If !b! Equ 1 (Call :BComputr) Else Call :BPlayer 
34.
Echo. 
35.
Echo. Klicke zum fortfahren 
36.
Mouse.exe > nul 
37.
Set/a "b*=-1" 
38.
Goto :Play 
39.
:IsCorner 
40.
For %%+ in (%corners%) Do If %~1 Equ %%+ Exit/b 1 
41.
Exit/b 0 
42.
:IsEdge 
43.
For %%+ in (%edges%) Do If %~1 Equ %%+ Exit/b 1 
44.
Exit/b 0 
45.
:IsCenter 
46.
For %%+ in (%center%) Do If %~1 Equ %%+ Exit/b 1 
47.
Exit/b 0 
48.
:BGame 
49.
For /L %%i in (0,1,8) Do Set/a "b[%%i]=0" 
50.
Set/a "Over=0" 
51.
Call :ShowBoard 
52.
Goto :Eof 
53.
:Winner 
54.
For %%+ in (%wp%) Do ( Call :_WinnerL %%~+ 
55.
If !ErrorLevel! Neq 0 Exit/b !ErrorLevel!) 
56.
Exit/b 0 
57.
:_WinnerL 
58.
If !b[%~1]! Neq 0 ( 
59.
If !b[%~1]! Equ !b[%~2]! If !b[%~3]! Equ !b[%~1]! Exit/b !b[%~1]!) 
60.
Exit/b 0 
61.
:Player 
62.
If !Over! Equ 1 Exit/b -1 
63.
Set/a "sel=-1,k=-1,c=0" 
64.
Set "cas=" 
65.
For /f "tokens=1,2,3" %%a in ('Mouse.exe 2^>Nul') Do ( 
66.
Set "cas=%%b%%c" 
67.
Set/a "c=%%a") 
68.
If !c! Neq 1 Goto :Player 
69.
For %%a in (00 20 40 02 22 42 04 24 44) Do ( 
70.
Set/a "sel+=1" 
71.
If "%%a"=="!cas!" Set/a "k=!sel!") 
72.
If !k! Equ -1 Goto :Player 
73.
If !b[%k%]! Equ 0 (Call :UpdatePos %k% %~1 
74.
Exit/b %k%) 
75.
Goto :Player 
76.
:ShowBoard 
77.
Cls 
78.
Echo.!b.s.%b[0]%!^|!b.s.%b[1]%!^|!b.s.%b[2]%! 
79.
Echo.----- 
80.
Echo.!b.s.%b[3]%!^|!b.s.%b[4]%!^|!b.s.%b[5]%! 
81.
Echo.----- 
82.
Echo.!b.s.%b[6]%!^|!b.s.%b[7]%!^|!b.s.%b[8]%! 
83.
Echo. 
84.
Echo.  Computer     Unentschieden       Spieler 
85.
Echo.     !computer!                   !ties!          !player! 
86.
Goto :Eof 
87.
:WinBlock 
88.
If !Over! Equ 1 Exit/b -1 
89.
If %~1 Equ 1 (Set/a "_win_value=2,_lost_value=-2" 
90.
) Else Set/a "_win_value=-2,_lost_value=2" 
91.
Call :_WinBloc %~1 %_win_value% 
92.
If !wb_return! Neq -1 (Set/a "Over=1" 
93.
) Else Call :_WinBloc %~1 %_lost_value% 
94.
Exit/b !wb_return! 
95.
:_WinBloc 
96.
Set/a "wb_return=-1" 
97.
For %%+ in (%wp%) Do (Call :_SumLine %%~+ %~2 
98.
If ErrorLevel 1 (For %%- in (%%~+) Do (If !b[%%-]! Equ 0 ( 
99.
Call :UpdatePos %%- %~1 
100.
Set/a "wb_return=%%-" 
101.
Goto :_WinBloE)))) 
102.
:_WinBloE 
103.
Goto :Eof 
104.
:_SumLine 
105.
Set/a "_sum_line=!b[%~1]!+!b[%~2]!+!b[%~3]!" 
106.
If !_sum_line! Equ %~4 Exit/b 1 
107.
Exit/b 0 
108.
:FullBoard 
109.
For /L %%i in (0,1,8) Do If !b[%%i]! Equ 0 Exit/b 0 
110.
Exit/b 1 
111.
:RUpdatePos 
112.
Set "av=" 
113.
Set/a "cav=0" 
114.
For %%+ in (!%~1!) Do If !b[%%+]! Equ 0 ( 
115.
Set "av=!av! %%+" 
116.
Set/a "cav+=1") 
117.
If !cav! Equ 0 Exit/b -1 
118.
Set/a "rp=%random% %% !cav!+1" 
119.
For /f "tokens=%rp%" %%+ in ("!av!") Do Set/a "rp=%%+" 
120.
Call :UpdatePos !rp! %~2 
121.
Exit/b !ErrorLevel! 
122.
:UpdatePos 
123.
Set/a "b[%~1]=%~2" 
124.
Call :Winner 
125.
Set "w=!ErrorLevel!" 
126.
If !w! Equ 1 (If !b! Equ 1 (Set/a "computer+=1" 
127.
) Else Set/a "player+=1") Else If !w! Equ -1 ( 
128.
If !b! Equ 1 (Set/a "player+=1") Else Set/a "computer+=1" 
129.
) Else (Call :FullBoard 
130.
If ErrorLevel 1 Set/a "ties+=1") 
131.
Call :ShowBoard 
132.
Exit/b %~1 
133.
:BPlayer 
134.
Call :BGame 
135.
Call :Player 1 
136.
Set/a "maxf=!ErrorLevel!" 
137.
Call :IsCenter %maxf% 
138.
If ErrorLevel 1 (Call :RUpdatePos corners -1 
139.
For /l %%. in (1,1,4) Do (Call :Player 1 
140.
Call :WinBlock -1 
141.
If Not ErrorLevel 0 If !Over! Equ 0 ( 
142.
Call :RUpdatePos corners -1 
143.
If Not ErrorLevel 0 Call :RUpdatePos all -1)) 
144.
) Else (Call :UpdatePos 4 -1 
145.
Call :Player 1 
146.
Set/a "maxc=0,maxe=0,maxcd=0,c1e1oc2nd=0" 
147.
For /L %%+ in (0,1,8) Do If !b[%%+]! Equ 1 (Call :IsEdge %%+ 
148.
If ErrorLevel 1 (Set/a "maxe+=1" 
149.
) Else (Call :IsCorner %%+ 
150.
If ErrorLevel 1 (Set/a "maxc+=1" 
151.
For /f %%- in ("b[!c.d.%%+!]") Do ( 
152.
If !%%-! Equ 1 Set/a "maxcd=1")))) 
153.
If !maxc! Equ 1 (Set/a "c1e1oc2nd=1" 
154.
) Else If !maxc! Equ 2 If !maxcd! Equ 0 Set/a "c1e1oc2nd=1" 
155.
If !c1e1oc2nd! Equ 1 (Call :WinBlock -1 
156.
If ErrorLevel 0 (Call :Player 1 
157.
Call :WinBlock -1 
158.
Set/a _res=!ErrorLevel! 
159.
If !Over! Equ 0 (If !_res! Neq -1 (Call :Player 1 
160.
Call :WinBlock -1 
161.
If !Over! Equ 0 (Call :RUpdatePos all -1 
162.
Call :Player 1)) Else (Call :RUpdatePos edges -1 
163.
Call :Player 1 
164.
Call :WinBlock -1 
165.
If !Over! Equ 0 Call :Player 1))) Else ( 
166.
For %%+ in (%corners%) Do If !b[%%+]! Equ 1 ( 
167.
Call :UpdatePos !c.d.%%+! -1) 
168.
Call :Player 1 
169.
Call :WinBlock -1 
170.
If ErrorLevel 0 (Call :Player 1 
171.
Call :WinBlock -1 
172.
If Not ErrorLevel 0 (Call :RUpdatePos all -1 
173.
Call :Player 1) Else If !Over! Equ 0 (Call :Player 1 
174.
Call :RUpdatePos all -1)) Else (Call :RUpdatePos corners -1 
175.
Call :Player 1 
176.
Call :WinBlock -1 
177.
If !Over! Equ 0 Call :Player 1 
178.
))) Else If !maxc! Equ 2 (Call :RUpdatePos edges -1 
179.
Call :Player 1 
180.
For /l %%+ in (1,1,2) Do (Call :WinBlock -1 
181.
If !Over! Equ 0 Call :Player 1)) Else (Set/a "eif=0" 
182.
For %%+ in (%edges%) Do ( 
183.
If !b[%%+]! Equ 1 For /f %%- in ("b[!e.f.%%+!]") Do ( 
184.
If !%%-! Equ 1 Set/a "eif=1")) 
185.
If !eif! Equ 1 (Call :RUpdatePos edges -1 
186.
Call :Player 1 
187.
Call :WinBlock -1 
188.
If Not ErrorLevel 0 (Set/a "p=0" 
189.
For %%+ in (%corners%) Do If !b[%%+]! Equ 0 ( 
190.
For /f "tokens=1,2" %%a in ( 
191.
"b[!c.s.%%+.a!] b[!c.s.%%+.b!]") Do ( 
192.
If !p! Equ 0 If !%%a! Equ -1 (Call :UpdatePos %%+ -1 
193.
Set/a "p=1") Else If !p! Equ 0 If !%%b! Equ -1 ( 
194.
Call :UpdatePos %%+ -1 
195.
Set/a "p=1"))) 
196.
Call :Player 1 
197.
Call :WinBlock -1)) Else ( 
198.
For %%+ in (%corners%) Do If !b[%%+]! Equ 0 ( 
199.
For /f "tokens=1,2" %%a in ( 
200.
"b[!c.s.%%+.a!] b[!c.s.%%+.b!]") Do ( 
201.
If !%%a! Equ 1 If !%%b! Equ 1 Call :UpdatePos %%+ -1)) 
202.
Call :Player 1 
203.
Call :WinBlock -1 
204.
If !Over! Equ 0 (Call :RUpdatePos corners -1 
205.
Call :Player 1 
206.
Call :WinBlock -1 
207.
If !Over! Equ 0 Call :Player 1)))) 
208.
Exit/b 
209.
:BComputr 
210.
Call :BGame 
211.
Call :RUpdatePos corners 1 
212.
Set/a "maxf=!ErrorLevel!" 
213.
Call :Player -1 
214.
Set/a "minf=!ErrorLevel!" 
215.
Call :IsCenter %minf% 
216.
If ErrorLevel 1 (Call :UpdatePos !c.d.%maxf%! 1 
217.
Call :Player -1 
218.
Set/a "minf=!ErrorLevel!" 
219.
Call :IsCorner !minf! 
220.
If ErrorLevel 1 ( 
221.
For %%+ in (%corners%) Do If !b[%%+]! Equ 0 Call :UpdatePos %%+ 1 
222.
Call :Player -1 
223.
Call :WinBlock 1) Else (For /L %%+ in (1,1,2) Do ( 
224.
If !Over! Equ 0 (Call :WinBlock 1 
225.
Call :Player -1)) 
226.
If !Over! Equ 0 Call :WinBlock 1) 
227.
Goto :Eof) 
228.
Call :IsCorner %minf% 
229.
If ErrorLevel 1 (Call :RUpdatePos corners 1 
230.
Call :Player -1 
231.
Call :WinBlock 1 
232.
If !Over! Equ 0 ( 
233.
For %%+ in (%corners%) Do If !b[%%+]! Equ 0 Call :UpdatePos %%+ 1 
234.
Call :Player -1 
235.
Call :WinBlock 1)) Else (Call :UpdatePos 4 1 
236.
Call :Player -1 
237.
Call :WinBlock 1 
238.
If Not ErrorLevel 0 ( 
239.
For %%+ in (%corners%) Do If !b[%%+]! Equ 0 ( 
240.
For /f "tokens=1,2" %%a in ( 
241.
"b[!c.s.%%+.a!] b[!c.s.%%+.b!]") Do ( 
242.
If !%%a! Equ 0 If !%%b! Equ 0 Call :UpdatePos %%+ 1))) 
243.
Call :Player -1 
244.
Call :WinBlock 1) 
245.
Goto :Eof 
246.
:BMouse 
247.
If Exist Mouse.exe Goto :Eof 
248.
For %%b In ( 
249.
"4D53434600000000E5020000000000002C000000000000000301010001000000000000" 
250.
"00460000000100010052050000000000000000BB3CE87420004D6F7573652E65786500" 
251.
"AE44DE4B97025205434B9D54CD6B1341149F4DABC46ABB117AF1204ED05E4422E8510F" 
252.
"151D3FA0D5A1AD17A9A46B77DA0637BBCB66AA15142A6BA121047AD09B07FF88A2D14B" 
253.
"02F6500F3D7A2B9883960DF4D0839420B5DB371FE9177ED561DFFCE6FDE6CD9BF9BD9D" 
254.
"DDFE7B73A80D21D40E16C70855906ABDE8EF6D1AACEBD4872E347F64295D31FA96D243" 
255.
"13B902F6036F3CB0F278D4725D8FE3070C07932ECEB9F8DA9D419CF76C96E9ECEC38A3" 
256.
"735082509F91D893B78ECCB6A3C6E13D5CEF71E85260589F4E8C13EADC08ED204D2B5E" 
257.
"B436D9A754EC366E836C18F25DFE07AD076DC390F7DC1FE6339C4DF1D661B416B4B70C" 
258.
"42EA48C6B6B82574198A18307689DD7957B5FF3DE7DDE2B7E7AB4918CC95C90F1A8923" 
259.
"870BED66956C52E836A8F916E80AC2BD8846B386984CC92BD210DDA78F72B978977395" 
260.
"F5388E69E4404C916CC89822592E93262D419A6818F81269868BA9B05E0DEB5F147B5B" 
261.
"B2CB3335F3C52191F4357465F29D56844A5A267515761E5CF31DA987CD84395340624D" 
262.
"14360DB989F9B25654194C39917C2FD6CE261BA75B71897D711D3A2E21E3F4F6271519" 
263.
"D61266B5FFEB5831A91CE5AF80DF18027DA5969C57527DAB7EDDB2004AF26A455C3C28" 
264.
"1932A064CF643D934A4FF45855B74C56A98CA642AB285159E4B4E46C7709B8ED7DEE6F" 
265.
"C671B870AC48D64A648D46D75502D839EE19C6E21B8D7BB8C6298D4F354E6B1CD1686B" 
266.
"9CD0E848045A3EBFBB1FB378673C8FD5BD7EB38BFB09638E7FBDB60AFC22D867B015B0" 
267.
"751DD701DFE809B0B36097D2078FCD171E8D063C633B0E387E9073F9180CB2A39ECB03" 
268.
"CF19F385932D309EB57C3FCB9FF84C12E38CE7AD9C6B05E3E206B1A91C470F59E032E7" 
269.
"E2059DEA06E383DCBE69B9B6C3947BD5730B9EC3FAE1A705C4E07E628059B6666EB9FE" 
270.
"24BF227E245B") Do >>Mouse.exe (Echo.For b=1 To len^(%%b^) Step 2 
271.
Echo WScript.StdOut.Write Chr^(CByte^("&H"^&Mid^(%%b,b,2^)^)^) : Next) 
272.
Cscript /b /e:vbs Mouse.exe > Mouse.ex_ 
273.
Expand -r Mouse.ex_ >nul 2>&1 
274.
Del Mouse.ex_ >nul 2>&1 
275.
Goto :Eof
Grüße
Exze
Mitglied: Freund.der.Nacht
05.04.2013 um 18:56 Uhr
Hallo Exze,

gib bitte auch die Quelle an, wo du das her hast:

http://sourcecodes.jimdo.com/batch-quellcodes/spiele/

Mit freundlichen Grüßen

Freund der Nacht
Bitte warten ..
Mitglied: Lochkartenstanzer
06.04.2013 um 21:33 Uhr
Da hätte es auch einfach ein "Link teilen" getan. Die Leser hier sind (meistens) in der Lage dem Link zu folgen und dann das dort geschriebene zu verstehen.

lks
Bitte warten ..
Mitglied: Apop85
07.04.2013, aktualisiert 08.04.2013
Hier eine etwas abgespecktere (einfacheres Script) Version von TicTacToe

Hab mal mittels Try&Eroor was rumgebastelt

Es gäbe wahrscheinich einige Wege die Schneller nach Rom führen würden als diese Doofen abfragen die ich gebastelt hab um zu Überprüfen ob das Feld schon besetzt ist...
Vorschläge sind immer Willkommen

Update: 08.04.2013 - 14:23 Uhr
01.
echo off 
02.
TITLE _____-----TIC-----TAC-----TOE-----_____ 
03.
mode con lines=30 cols=60 
04.
chcp 1252 
05.
COLOR 1F 
06.
set p1=0 
07.
set p2=0 
08.
set "SPACE=  " 
09.
set "SPACE1= " 
10.
cls 
11.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
12.
echo                 TIC       TAC        TOE 
13.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
14.
echo. 
15.
echo. 
16.
echo. 
17.
echo. 
18.
echo Spieler 1 Bitte gib deinen Namen ein: 
19.
set /p s1= 
20.
echo. 
21.
echo Spieler 2 Bitte gib deinen Namen ein: 
22.
set /p s2= 
23.
echo. 
24.
goto PRESET 
25.
 
26.
:PRESET 
27.
cls 
28.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
29.
echo                 TIC       TAC        TOE 
30.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
31.
set "a1=." 
32.
set "a2=." 
33.
set "a3=." 
34.
set "a4=." 
35.
set "a5=." 
36.
set "a6=." 
37.
set "a7=." 
38.
set "a8=." 
39.
set "a9=." 
40.
set axa=X 
41.
set aoa=O 
42.
set rd=0 
43.
set a1x=%a1% & set "a1xr=%a1% " 
44.
set a2x=%a2% & set "a2xr=%a2% " 
45.
set a3x=%a3% & set "a3xr=%a3% " 
46.
set a4x=%a4% & set "a4xr=%a4% " 
47.
set a5x=%a5% & set "a5xr=%a5% " 
48.
set a6x=%a6% & set "a6xr=%a6% " 
49.
set a7x=%a7% & set "a7xr=%a7% " 
50.
set a8x=%a8% & set "a8xr=%a8% " 
51.
set a9x=%a9% & set "a9xr=%a9% " 
52.
set a1o=%a1% & set "a1om=%a1% " 
53.
set a2o=%a2% & set "a2om=%a2% " 
54.
set a3o=%a3% & set "a3om=%a3% " 
55.
set a4o=%a4% & set "a4om=%a4% " 
56.
set a5o=%a5% & set "a5om=%a5% " 
57.
set a6o=%a6% & set "a6om=%a6% " 
58.
set a7o=%a7% & set "a7om=%a7% " 
59.
set a8o=%a8% & set "a8om=%a8% " 
60.
set a9o=%a9% & set "a9om=%a9% " 
61.
 
62.
echo. 
63.
echo. 
64.
echo. 
65.
echo. 
66.
echo Wer soll beginnen? X oder O? 
67.
set /p ausw= 
68.
 
69.
if %ausw% == o goto SPIELER2 
70.
if %ausw% == x goto SPIELER1 
71.
goto PRESET 
72.
 
73.
:SPIELER1 
74.
cls 
75.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
76.
echo                 TIC       TAC        TOE 
77.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
78.
echo		%s1%		%p1%:%p2%		%s2%  
79.
echo. 
80.
echo                       %s1% wählt 
81.
echo.  
82.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
83.
echo              I%a1x% %a1o% %a1xr%I%a2x% %a2o% %a2x%I%a3x% %a3o% %a3xr%I 
84.
echo    X   X     I%a1om% %a1x% %a1o%I%a2om% %a2x% %a2o%I%a3om% %a3x% %a3o%I 
85.
echo     X X      I%a1x% %a1o% %a1xr%I%a2x% %a2o% %a2x%I%a3x% %a3o% %a3xr%I	 
86.
echo      X       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	1 I 2 I 3 
87.
echo     X X      I%a4x% %a4o% %a4xr%I%a5x% %a5o% %a5xr%I%a6x% %a6o% %a6xr%I	--------- 
88.
echo    X   X     I%a4om% %a4x% %a4o%I%a5om% %a5x% %a5o%I%a6om% %a6x% %a6o%I	4 I 5 I 6 
89.
echo              I%a4x% %a4o% %a4xr%I%a5x% %a5o% %a5xr%I%a6x% %a6o% %a6xr%I	--------- 
90.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	7 I 8 I 9 
91.
echo              I%a7x% %a7o% %a7xr%I%a8x% %a8o% %a8xr%I%a9x% %a9o% %a9xr%I 
92.
echo              I%a7om% %a7x% %a7o%I%a8om% %a8x% %a8o%I%a9om% %a9x% %a9o%I 
93.
echo              I%a7x% %a7o% %a7xr%I%a8x% %a8o% %a8xr%I%a9x% %a9o% %a9xr%I 
94.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
95.
echo. 
96.
echo                     Runde: %rd% 
97.
echo.  
98.
echo                     Wähle dein Feld 
99.
set /p choice=                          
100.
 
101.
if %choice% == d goto DEBUG 
102.
if %choice% == 1 if %aoa% == %a1% goto FAIL1 
103.
if %choice% == 1 if %axa% == %a1% goto FAIL2 
104.
if %choice% == 2 if %aoa% == %a2% goto FAIL1 
105.
if %choice% == 2 if %axa% == %a2% goto FAIL2 
106.
if %choice% == 3 if %aoa% == %a3% goto FAIL1 
107.
if %choice% == 3 if %axa% == %a3% goto FAIL2 
108.
if %choice% == 4 if %aoa% == %a4% goto FAIL1 
109.
if %choice% == 4 if %axa% == %a4% goto FAIL2 
110.
if %choice% == 5 if %aoa% == %a5% goto FAIL1 
111.
if %choice% == 5 if %axa% == %a5% goto FAIL2 
112.
if %choice% == 6 if %aoa% == %a6% goto FAIL1 
113.
if %choice% == 6 if %axa% == %a6% goto FAIL2 
114.
if %choice% == 7 if %aoa% == %a7% goto FAIL1 
115.
if %choice% == 7 if %axa% == %a7% goto FAIL2 
116.
if %choice% == 8 if %aoa% == %a8% goto FAIL1 
117.
if %choice% == 8 if %axa% == %a8% goto FAIL2 
118.
if %choice% == 9 if %aoa% == %a9% goto FAIL1 
119.
if %choice% == 9 if %axa% == %a9% goto FAIL2 
120.
if %choice% == 1 set a1=%axa% & goto PRUEX  
121.
if %choice% == 2 set a2=%axa% & goto PRUEX 
122.
if %choice% == 3 set a3=%axa% & goto PRUEX 
123.
if %choice% == 4 set a4=%axa% & goto PRUEX 
124.
if %choice% == 5 set a5=%axa% & goto PRUEX 
125.
if %choice% == 6 set a6=%axa% & goto PRUEX 
126.
if %choice% == 7 set a7=%axa% & goto PRUEX 
127.
if %choice% == 8 set a8=%axa% & goto PRUEX 
128.
if %choice% == 9 set a9=%axa% & goto PRUEX 
129.
if %choice% == x goto START 
130.
 
131.
:PRUEX 
132.
if %a1%==X set a1o=%SPACE1% & set a1x=%axa% & set "a1xr=%axa% " & set "a1om=%SPACE%" 
133.
if %a2%==X set a2o=%SPACE1% & set a2x=%axa% & set "a2xr=%axa% " & set "a2om=%SPACE%" 
134.
if %a3%==X set a3o=%SPACE1% & set a3x=%axa% & set "a3xr=%axa% " & set "a3om=%SPACE%" 
135.
if %a4%==X set a4o=%SPACE1% & set a4x=%axa% & set "a4xr=%axa% " & set "a4om=%SPACE%" 
136.
if %a5%==X set a5o=%SPACE1% & set a5x=%axa% & set "a5xr=%axa% " & set "a5om=%SPACE%" 
137.
if %a6%==X set a6o=%SPACE1% & set a6x=%axa% & set "a6xr=%axa% " & set "a6om=%SPACE%" 
138.
if %a7%==X set a7o=%SPACE1% & set a7x=%axa% & set "a7xr=%axa% " & set "a7om=%SPACE%" 
139.
if %a8%==X set a8o=%SPACE1% & set a8x=%axa% & set "a8xr=%axa% " & set "a8om=%SPACE%" 
140.
if %a9%==X set a9o=%SPACE1% & set a9x=%axa% & set "a9xr=%axa% " & set "a9om=%SPACE%" 
141.
 
142.
if %a1%==O set a1x=%SPACE1% & set a1o=%aoa% & set "a1xr=%aoa% " & set "a1xr=%SPACE%" & set "a1om=%aoa% " 
143.
if %a2%==O set a2x=%SPACE1% & set a2o=%aoa% & set "a2xr=%aoa% " & set "a2xr=%SPACE%" & set "a2om=%aoa% " 
144.
if %a3%==O set a3x=%SPACE1% & set a3o=%aoa% & set "a3xr=%aoa% " & set "a3xr=%SPACE%" & set "a3om=%aoa% " 
145.
if %a4%==O set a4x=%SPACE1% & set a4o=%aoa% & set "a4xr=%aoa% " & set "a4xr=%SPACE%" & set "a4om=%aoa% " 
146.
if %a5%==O set a5x=%SPACE1% & set a5o=%aoa% & set "a5xr=%aoa% " & set "a5xr=%SPACE%" & set "a5om=%aoa% " 
147.
if %a6%==O set a6x=%SPACE1% & set a6o=%aoa% & set "a6xr=%aoa% " & set "a6xr=%SPACE%" & set "a6om=%aoa% " 
148.
if %a7%==O set a7x=%SPACE1% & set a7o=%aoa% & set "a7xr=%aoa% " & set "a7xr=%SPACE%" & set "a7om=%aoa% " 
149.
if %a8%==O set a8x=%SPACE1% & set a8o=%aoa% & set "a8xr=%aoa% " & set "a8xr=%SPACE%" & set "a8om=%aoa% " 
150.
if %a9%==O set a9x=%SPACE1% & set a9o=%aoa% & set "a9xr=%aoa% " & set "a9xr=%SPACE%" & set "a9om=%aoa% " 
151.
 
152.
 
153.
set /a rd=%rd%+1 
154.
if %a1% == X if %a2% == %a1% if %a2% == %a3% goto XWIN 
155.
if %a4% == X if %a5% == %a4% if %a5% == %a6% goto XWIN 
156.
if %a7% == X if %a8% == %a7% if %a8% == %a9% goto XWIN 
157.
if %a1% == X if %a4% == %a1% if %a4% == %a7% goto XWIN 
158.
if %a2% == X if %a5% == %a2% if %a5% == %a8% goto XWIN 
159.
if %a3% == X if %a6% == %a3% if %a6% == %a9% goto XWIN 
160.
if %a1% == X if %a5% == %a1% if %a5% == %a9% goto XWIN 
161.
if %a7% == X if %a5% == %a7% if %a5% == %a3% goto XWIN 
162.
if %rd% == 9 goto PAR 
163.
goto SPIELER2 
164.
 
165.
:SPIELER2 
166.
cls 
167.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
168.
echo                 TIC       TAC        TOE 
169.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
170.
echo		%s1%		%p1%:%p2%		%s2%  
171.
echo. 
172.
echo                       %s2% wählt 
173.
echo.  
174.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
175.
echo              I%a1x% %a1o% %a1xr%I%a2x% %a2o% %a2x%I%a3x% %a3o% %a3xr%I 
176.
echo     XxX      I%a1om% %a1x% %a1o%I%a2om% %a2x% %a2o%I%a3om% %a3x% %a3o%I 
177.
echo    X   X     I%a1x% %a1o% %a1xr%I%a2x% %a2o% %a2x%I%a3x% %a3o% %a3xr%I 
178.
echo    X   X     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	1 I 2 I 3 
179.
echo    X   X     I%a4x% %a4o% %a4xr%I%a5x% %a5o% %a5xr%I%a6x% %a6o% %a6xr%I	--------- 
180.
echo     XXX      I%a4om% %a4x% %a4o%I%a5om% %a5x% %a5o%I%a6om% %a6x% %a6o%I	3 I 4 I 5 
181.
echo              I%a4x% %a4o% %a4xr%I%a5x% %a5o% %a5xr%I%a6x% %a6o% %a6xr%I	--------- 
182.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	7 I 8 I 9 
183.
echo              I%a7x% %a7o% %a7xr%I%a8x% %a8o% %a8xr%I%a9x% %a9o% %a9xr%I 
184.
echo              I%a7om% %a7x% %a7o%I%a8om% %a8x% %a8o%I%a9om% %a9x% %a9o%I 
185.
echo              I%a7x% %a7o% %a7xr%I%a8x% %a8o% %a8xr%I%a9x% %a9o% %a9xr%I 
186.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
187.
echo. 
188.
echo                     Runde: %rd% 
189.
echo.  
190.
echo                     Wähle dein Feld 
191.
set /p choice=                              
192.
 
193.
if %choice% == d goto DEBUG 
194.
if %choice% == 1 if %aoa% == %a1% goto FAIL3 
195.
if %choice% == 1 if %axa% == %a1% goto FAIL4 
196.
if %choice% == 2 if %aoa% == %a2% goto FAIL3 
197.
if %choice% == 2 if %axa% == %a2% goto FAIL4 
198.
if %choice% == 3 if %aoa% == %a3% goto FAIL3 
199.
if %choice% == 3 if %axa% == %a3% goto FAIL4 
200.
if %choice% == 4 if %aoa% == %a4% goto FAIL3 
201.
if %choice% == 4 if %axa% == %a4% goto FAIL4 
202.
if %choice% == 5 if %aoa% == %a5% goto FAIL3 
203.
if %choice% == 5 if %axa% == %a5% goto FAIL4 
204.
if %choice% == 6 if %aoa% == %a6% goto FAIL3 
205.
if %choice% == 6 if %axa% == %a6% goto FAIL4 
206.
if %choice% == 7 if %aoa% == %a7% goto FAIL3 
207.
if %choice% == 7 if %axa% == %a7% goto FAIL4 
208.
if %choice% == 8 if %aoa% == %a8% goto FAIL3 
209.
if %choice% == 8 if %axa% == %a8% goto FAIL4 
210.
if %choice% == 9 if %aoa% == %a9% goto FAIL3 
211.
if %choice% == 9 if %axa% == %a9% goto FAIL4 
212.
if %choice% == 1 set a1=%aoa% & goto PRUEO 
213.
if %choice% == 2 set a2=%aoa% & goto PRUEO 
214.
if %choice% == 3 set a3=%aoa% & goto PRUEO 
215.
if %choice% == 4 set a4=%aoa% & goto PRUEO 
216.
if %choice% == 5 set a5=%aoa% & goto PRUEO 
217.
if %choice% == 6 set a6=%aoa% & goto PRUEO 
218.
if %choice% == 7 set a7=%aoa% & goto PRUEO 
219.
if %choice% == 8 set a8=%aoa% & goto PRUEO 
220.
if %choice% == 9 set a9=%aoa% & goto PRUEO 
221.
if %choice% == x goto START 
222.
 
223.
:PRUEO 
224.
if %a1%==X set a1o=%SPACE1% & set a1x=%axa% & set "a1xr=%axa% " & set "a1om=%SPACE%" 
225.
if %a2%==X set a2o=%SPACE1% & set a2x=%axa% & set "a2xr=%axa% " & set "a2om=%SPACE%" 
226.
if %a3%==X set a3o=%SPACE1% & set a3x=%axa% & set "a3xr=%axa% " & set "a3om=%SPACE%" 
227.
if %a4%==X set a4o=%SPACE1% & set a4x=%axa% & set "a4xr=%axa% " & set "a4om=%SPACE%" 
228.
if %a5%==X set a5o=%SPACE1% & set a5x=%axa% & set "a5xr=%axa% " & set "a5om=%SPACE%" 
229.
if %a6%==X set a6o=%SPACE1% & set a6x=%axa% & set "a6xr=%axa% " & set "a6om=%SPACE%" 
230.
if %a7%==X set a7o=%SPACE1% & set a7x=%axa% & set "a7xr=%axa% " & set "a7om=%SPACE%" 
231.
if %a8%==X set a8o=%SPACE1% & set a8x=%axa% & set "a8xr=%axa% " & set "a8om=%SPACE%" 
232.
if %a9%==X set a9o=%SPACE1% & set a9x=%axa% & set "a9xr=%axa% " & set "a9om=%SPACE%" 
233.
 
234.
if %a1%==O set a1x=%SPACE1% & set a1o=%aoa% & set "a1xr=%aoa% " & set "a1xr=%SPACE%" & set "a1om=%aoa% " 
235.
if %a2%==O set a2x=%SPACE1% & set a2o=%aoa% & set "a2xr=%aoa% " & set "a2xr=%SPACE%" & set "a2om=%aoa% " 
236.
if %a3%==O set a3x=%SPACE1% & set a3o=%aoa% & set "a3xr=%aoa% " & set "a3xr=%SPACE%" & set "a3om=%aoa% " 
237.
if %a4%==O set a4x=%SPACE1% & set a4o=%aoa% & set "a4xr=%aoa% " & set "a4xr=%SPACE%" & set "a4om=%aoa% " 
238.
if %a5%==O set a5x=%SPACE1% & set a5o=%aoa% & set "a5xr=%aoa% " & set "a5xr=%SPACE%" & set "a5om=%aoa% " 
239.
if %a6%==O set a6x=%SPACE1% & set a6o=%aoa% & set "a6xr=%aoa% " & set "a6xr=%SPACE%" & set "a6om=%aoa% " 
240.
if %a7%==O set a7x=%SPACE1% & set a7o=%aoa% & set "a7xr=%aoa% " & set "a7xr=%SPACE%" & set "a7om=%aoa% " 
241.
if %a8%==O set a8x=%SPACE1% & set a8o=%aoa% & set "a8xr=%aoa% " & set "a8xr=%SPACE%" & set "a8om=%aoa% " 
242.
if %a9%==O set a9x=%SPACE1% & set a9o=%aoa% & set "a9xr=%aoa% " & set "a9xr=%SPACE%" & set "a9om=%aoa% " 
243.
 
244.
set /a rd=%rd%+1 
245.
 
246.
if %a1% == O if %a2% == %a1% if %a2% == %a3% goto OWIN 
247.
if %a4% == O if %a5% == %a4% if %a5% == %a6% goto OWIN 
248.
if %a7% == O if %a8% == %a7% if %a8% == %a9% goto OWIN 
249.
if %a1% == O if %a4% == %a1% if %a4% == %a7% goto OWIN 
250.
if %a2% == O if %a5% == %a2% if %a5% == %a8% goto OWIN 
251.
if %a3% == O if %a6% == %a3% if %a6% == %a9% goto OWIN 
252.
if %a1% == O if %a5% == %a1% if %a5% == %a9% goto OWIN 
253.
if %a7% == O if %a5% == %a7% if %a5% == %a3% goto OWIN 
254.
if %rd% == 9 goto PAR 
255.
goto SPIELER1 
256.
 
257.
:XWIN 
258.
cls 
259.
if %a1%==X set a1o=%axa% & set a1x=%axa% & set "a1xr=%axa% " & set "a1om=%axa% " 
260.
if %a2%==X set a2o=%axa% & set a2x=%axa% & set "a2xr=%axa% " & set "a2om=%axa% " 
261.
if %a3%==X set a3o=%axa% & set a3x=%axa% & set "a3xr=%axa% " & set "a3om=%axa% " 
262.
if %a4%==X set a4o=%axa% & set a4x=%axa% & set "a4xr=%axa% " & set "a4om=%axa% " 
263.
if %a5%==X set a5o=%axa% & set a5x=%axa% & set "a5xr=%axa% " & set "a5om=%axa% " 
264.
if %a6%==X set a6o=%axa% & set a6x=%axa% & set "a6xr=%axa% " & set "a6om=%axa% " 
265.
if %a7%==X set a7o=%axa% & set a7x=%axa% & set "a7xr=%axa% " & set "a7om=%axa% " 
266.
if %a8%==X set a8o=%axa% & set a8x=%axa% & set "a8xr=%axa% " & set "a8om=%axa% " 
267.
if %a9%==X set a9o=%axa% & set a9x=%axa% & set "a9xr=%axa% " & set "a9om=%axa% " 
268.
 
269.
if %a1%==O set a1x=. & set a1o=. & set "a1xr=. " & set "a1xr=." & set "a1om=. " 
270.
if %a2%==O set a2x=. & set a2o=. & set "a2xr=. " & set "a2xr=." & set "a2om=. " 
271.
if %a3%==O set a3x=. & set a3o=. & set "a3xr=. " & set "a3xr=." & set "a3om=. " 
272.
if %a4%==O set a4x=. & set a4o=. & set "a4xr=. " & set "a4xr=." & set "a4om=. " 
273.
if %a5%==O set a5x=. & set a5o=. & set "a5xr=. " & set "a5xr=." & set "a5om=. " 
274.
if %a6%==O set a6x=. & set a6o=. & set "a6xr=. " & set "a6xr=." & set "a6om=. " 
275.
if %a7%==O set a7x=. & set a7o=. & set "a7xr=. " & set "a7xr=." & set "a7om=. " 
276.
if %a8%==O set a8x=. & set a8o=. & set "a8xr=. " & set "a8xr=." & set "a8om=. " 
277.
if %a9%==O set a9x=. & set a9o=. & set "a9xr=. " & set "a9xr=." & set "a9om=. " 
278.
set /a p1=%p1%+1 
279.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
280.
echo                 TIC       TAC        TOE 
281.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
282.
echo		%s1%		%p1%:%p2%		%s2%  
283.
echo. 
284.
echo                       %s1% Gewinnt! 
285.
echo.  
286.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
287.
echo              I%a1x% %a1o% %a1xr%I%a2x% %a2o% %a2x%I%a3x% %a3o% %a3xr%I 
288.
echo    X   X     I%a1om% %a1x% %a1o%I%a2om% %a2x% %a2o%I%a3om% %a3x% %a3o%I 
289.
echo     X X      I%a1x% %a1o% %a1xr%I%a2x% %a2o% %a2x%I%a3x% %a3o% %a3xr%I	 
290.
echo      X       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	1 I 2 I 3 
291.
echo     X X      I%a4x% %a4o% %a4x%I%a5x% %a5o% %a5xr%I%a6x% %a6o% %a6x%I	--------- 
292.
echo    X   X     I%a4om% %a4x% %a4o%I%a5om% %a5x% %a5o%I%a6om% %a6x% %a6o%I	4 I 5 I 6 
293.
echo              I%a4x% %a4o% %a4x%I%a5x% %a5o% %a5xr%I%a6x% %a6o% %a6x%I	--------- 
294.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	7 I 8 I 9 
295.
echo              I%a7x% %a7o% %a7x%I%a8x% %a8o% %a8xr%I%a9x% %a9o% %a9x%I 
296.
echo              I%a7om% %a7x% %a7o%I%a8om% %a8x% %a8o%I%a9om% %a9x% %a9o%I 
297.
echo              I%a7x% %a7o% %a7x%I%a8x% %a8o% %a8xr%I%a9x% %a9o% %a9x%I 
298.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
299.
echo.  
300.
echo                        %s1% Gewinnt! 
301.
echo. 
302.
echo           Wähle n fuer Neustart oder x für Exit 
303.
set /p choice=                          
304.
 
305.
if %choice% == n goto PRESET 
306.
if %choice% == x exit 
307.
if %choice% == d goto DEBUG 
308.
 
309.
:OWIN 
310.
cls 
311.
if %a1%==O set a1o=%aoa% & set a1x=%aoa% & set "a1xr=%aoa% " & set "a1om=%aoa% " 
312.
if %a2%==O set a2o=%aoa% & set a2x=%aoa% & set "a2xr=%aoa% " & set "a2om=%aoa% " 
313.
if %a3%==O set a3o=%aoa% & set a3x=%aoa% & set "a3xr=%aoa% " & set "a3om=%aoa% " 
314.
if %a4%==O set a4o=%aoa% & set a4x=%aoa% & set "a4xr=%aoa% " & set "a4om=%aoa% " 
315.
if %a5%==O set a5o=%aoa% & set a5x=%aoa% & set "a5xr=%aoa% " & set "a5om=%aoa% " 
316.
if %a6%==O set a6o=%aoa% & set a6x=%aoa% & set "a6xr=%aoa% " & set "a6om=%aoa% " 
317.
if %a7%==O set a7o=%aoa% & set a7x=%aoa% & set "a7xr=%aoa% " & set "a7om=%aoa% " 
318.
if %a8%==O set a8o=%aoa% & set a8x=%aoa% & set "a8xr=%aoa% " & set "a8om=%aoa% " 
319.
if %a9%==O set a9o=%aoa% & set a9x=%aoa% & set "a9xr=%aoa% " & set "a9om=%aoa% " 
320.
 
321.
if %a1%==X set a1x=. & set a1o=. & set "a1xr=. " & set "a1xr=." & set "a1om=. " 
322.
if %a2%==X set a2x=. & set a2o=. & set "a2xr=. " & set "a2xr=." & set "a2om=. " 
323.
if %a3%==X set a3x=. & set a3o=. & set "a3xr=. " & set "a3xr=." & set "a3om=. " 
324.
if %a4%==X set a4x=. & set a4o=. & set "a4xr=. " & set "a4xr=." & set "a4om=. " 
325.
if %a5%==X set a5x=. & set a5o=. & set "a5xr=. " & set "a5xr=." & set "a5om=. " 
326.
if %a6%==X set a6x=. & set a6o=. & set "a6xr=. " & set "a6xr=." & set "a6om=. " 
327.
if %a7%==X set a7x=. & set a7o=. & set "a7xr=. " & set "a7xr=." & set "a7om=. " 
328.
if %a8%==X set a8x=. & set a8o=. & set "a8xr=. " & set "a8xr=." & set "a8om=. " 
329.
if %a9%==X set a9x=. & set a9o=. & set "a9xr=. " & set "a9xr=." & set "a9om=. " 
330.
set /a p2=%p2%+1 
331.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
332.
echo                 TIC       TAC        TOE 
333.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
334.
echo		%s1%		%p1%:%p2%		%s2%  
335.
echo. 
336.
echo                       %s2% Gewinnt 
337.
echo.  
338.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
339.
echo              I%a1x% %a1o% %a1xr%I%a2x% %a2o% %a2x%I%a3x% %a3o% %a3xr%I 
340.
echo     XxX      I%a1om% %a1x% %a1o%I%a2om% %a2x% %a2o%I%a3om% %a3x% %a3o%I 
341.
echo    X   X     I%a1x% %a1o% %a1xr%I%a2x% %a2o% %a2x%I%a3x% %a3o% %a3xr%I 
342.
echo    X   X     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	1 I 2 I 3 
343.
echo    X   X     I%a4x% %a4o% %a4x%I%a5x% %a5o% %a5x%I%a6x% %a6o% %a6x%I	--------- 
344.
echo     XXX      I%a4om% %a4x% %a4o%I%a5om% %a5x% %a5o%I%a6om% %a6x% %a6o%I	3 I 4 I 5 
345.
echo              I%a4x% %a4o% %a4x%I%a5x% %a5o% %a5x%I%a6x% %a6o% %a6x%I	--------- 
346.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	7 I 8 I 9 
347.
echo              I%a7x% %a7o% %a7x%I%a8x% %a8o% %a8x%I%a9x% %a9o% %a9x%I 
348.
echo              I%a7om% %a7x% %a7o%I%a8om% %a8x% %a8o%I%a9om% %a9x% %a9o%I 
349.
echo              I%a7x% %a7o% %a7x%I%a8x% %a8o% %a8x%I%a9x% %a9o% %a9x%I 
350.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
351.
echo.  
352.
echo                        %s2% Gewinnt! 
353.
echo. 
354.
echo           Wähle n fuer Neustart oder x fuer Exit 
355.
set /p choice=                          
356.
 
357.
if %choice% == n goto PRESET 
358.
if %choice% == x exit 
359.
if %choice% == d goto DEBUG 
360.
 
361.
 
362.
:FAIL1 
363.
cls 
364.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
365.
echo                 TIC       TAC        TOE 
366.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
367.
echo		%s1%		%p1%:%p2%		%s2%  
368.
echo. 
369.
echo                       %s1% wählt 
370.
echo.  
371.
echo. 
372.
echo             Dieses Feld gehört deinem Gegner! 
373.
echo                  Wähle ein anderes Feld 
374.
ping -n 4 localhost >NUL 
375.
goto SPIELER1 
376.
 
377.
:FAIL2 
378.
cls 
379.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
380.
echo                 TIC       TAC        TOE 
381.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
382.
echo		%s1%		%p1%:%p2%		%s2%  
383.
echo. 
384.
echo                       %s1% wählt 
385.
echo.  
386.
echo. 
387.
echo              Dieses Feld gehört dir bereits! 
388.
echo                  Wähle ein anderes Feld 
389.
ping -n 4 localhost >NUL 
390.
goto SPIELER1 
391.
 
392.
:FAIL4 
393.
cls 
394.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
395.
echo                 TIC       TAC        TOE 
396.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
397.
echo		%s1%		%p1%:%p2%		%s2%  
398.
echo. 
399.
echo                       %s2% wählt 
400.
echo.  
401.
echo. 
402.
echo             Dieses Feld gehört deinem Gegner! 
403.
echo                  Wähle ein anderes Feld 
404.
ping -n 4 localhost >NUL 
405.
goto SPIELER2 
406.
 
407.
:FAIL3 
408.
cls 
409.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
410.
echo                 TIC       TAC        TOE 
411.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
412.
echo		%s1%		%p1%:%p2%		%s2%  
413.
echo. 
414.
echo                       %s2% wählt 
415.
echo.  
416.
echo. 
417.
echo              Dieses Feld gehört dir bereits! 
418.
echo                  Wähle ein anderes Feld 
419.
ping -n 4 localhost >NUL 
420.
goto SPIELER2 
421.
 
422.
:PAR 
423.
cls 
424.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
425.
echo                 TIC       TAC        TOE 
426.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
427.
echo.  
428.
echo. 
429.
echo                     Unentschieden! 
430.
echo.  
431.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
432.
echo              I%a1x% %a1o% %a1xr%I%a2x% %a2o% %a2x%I%a3x% %a3o% %a3xr%I 
433.
echo    XXxXX     I%a1om% %a1x% %a1o%I%a2om% %a2x% %a2o%I%a3om% %a3x% %a3o%I 
434.
echo    XX XX     I%a1x% %a1o% %a1xr%I%a2x% %a2o% %a2x%I%a3x% %a3o% %a3xr%I 
435.
echo    X X X     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	1 I 2 I 3 
436.
echo    XX XX     I%a4x% %a4o% %a4xr%I%a5x% %a5o% %a5xr%I%a6x% %a6o% %a6xr%I	--------- 
437.
echo    XXXXX     I%a4om% %a4x% %a4o%I%a5om% %a5x% %a5o%I%a6om% %a6x% %a6o%I	3 I 4 I 5 
438.
echo              I%a4x% %a4o% %a4xr%I%a5x% %a5o% %a5xr%I%a6x% %a6o% %a6xr%I	--------- 
439.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~	7 I 8 I 9 
440.
echo              I%a7x% %a7o% %a7xr%I%a8x% %a8o% %a8xr%I%a9x% %a9o% %a9xr%I 
441.
echo              I%a7om% %a7x% %a7o%I%a8om% %a8x% %a8o%I%a9om% %a9x% %a9o%I 
442.
echo              I%a7x% %a7o% %a7xr%I%a8x% %a8o% %a8xr%I%a9x% %a9o% %a9xr%I 
443.
echo              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
444.
echo.  
445.
echo                      Unentschieden! 
446.
echo. 
447.
echo           Wähle n fuer Neustart oder x für Exit 
448.
set /p choice=                          
449.
 
450.
if %choice% == n goto PRESET 
451.
if %choice% == x exit 
452.
if %choice% == d goto DEBUG 
453.
 
454.
:DEBUG 
455.
cls 
456.
echo _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- 
457.
echo                 TIC       TAC        TOE 
458.
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
459.
echo. 
460.
echo 1 = %a1%			a1x/a1o = %a1x%/%a1o% 
461.
echo 2 = %a2%			a2x/a2o = %a2x%/%a2o% 
462.
echo 3 = %a3%			a3x/a3o = %a3x%/%a3o% 
463.
echo 4 = %a4%			a4x/a4o = %a4x%/%a4o% 
464.
echo 5 = %a5%			a5x/a5o = %a5x%/%a5o% 
465.
echo 6 = %a6%			a6x/a6o = %a6x%/%a6o% 
466.
echo 7 = %a7%			a7x/a7o = %a7x%/%a7o% 
467.
echo 8 = %a8%			a8x/a8o = %a8x%/%a8o% 
468.
echo 9 = %a9%			a9x/a9o = %a9x%/%a9o% 
469.
echo axa = %axa%			space = "%SPACE%" 
470.
echo aoa = %aoa%			goto = %goto% 
471.
echo s1 = %s1% 
472.
echo s2 = %s2% 
473.
echo rd = %rd% 
474.
echo p1 = %p1% 
475.
echo p2 = %p2% 
476.
echo ausw = %ausw% 
477.
echo choice = %choice% 
478.
echo. 
479.
 
480.
echo GOTO 
481.
set /p goto= 
482.
 
483.
if %goto% == x goto START 
484.
goto %goto%
Viel spass werde dies wahrscheinlich als Easteregg bei anderen Batches hinterlegen

Grüsse
Bitte warten ..
Mitglied: Biber
07.04.2013 um 16:01 Uhr
Moin Apop85,

zu deinen willkommenen Verbesserungsvorschlägen hätte ich was.
Um mal irgendwo anzufangen: was mich an diesem Teilschnipsel wundert, sind drei Punkte...
echo Wähle n fuer Neustart oder x für Exit
set /p choice=

if %choice% == n goto PRESET
if %choice% == j exit
if %choice% == d goto DEBUG
if %choice% == x goto START

1) dieser Block taucht mehrmals (gecopy&pasted) auf. Warum eigentlich?
2) Warum sagst du dem ärmsten Benutzer "x für Exit", um ihn damit in eine neue Runde zu starten?
3) wenn der hinterhältige User nun aber "nichts"/42/"?"/ENTER/ESCAPE eingibt: Wie robust reagiert dann deine "if %choice% =="-Auswertung?

Grüße
Biber

P.S. Bitte verwende die Codeformatierung, dann lassen sich auch Zeilennummern gezielt ansprechen.
Bitte warten ..
Mitglied: Apop85
07.04.2013 um 21:15 Uhr
1. und 2.
Stimmt, Sorry hab den Code aus einer anderen Batch rauskopiert bei welchem das Spiel als Easteregg gedacht ist daher waren da noch einige Unstimmigkeiten. Habs aber jetzt noch korrigiert.

3. Hehe was genau führt
01.
"nichts"/42/"?"/ENTER/ESCAPE"
genau aus? ich sehe es definiert choice als "nichts" aber was macht /42/"?"/ENTER/ESCAPE ?

Ich sehe es überspringt einfach die Eingabe und Trickst dadurch den Rundenzähler aus. Somit könnte man ein fehlerhaftes Unentschieden auslösen.

Kann ich eine solche Eingabe auf einfache weise unterdrücken?

P.S.

- Erledigt ;)
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Batch & Shell
Batch zum bearbeiten mehrerer CSV (2)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...