PageSourceSearch

https://bitje.de/Go/GoPlay.htm

html bitje.de collected 2026-10-02 19:19:04 UTC 15,935 bytes, 467 lines download raw bytes

1<!DOCTYPE html>
2<HTML lang="en">
3<HEAD>
4	<TITLE>Go</TITLE>
5	<meta charset="UTF-8">
6	<meta name="description" content="Play the Go (igo, weiqi, baduk) board game over the Internet. For two human players.">
7	<meta name="keywords" content="go, igo, weiqi, baduk, play, board game, 囲碁, 圍棋, 围棋, 바둑">
8	<meta name="author" content="Jörg Eberbeck">
9	<meta name="viewport" content="width=device-width, initial-scale=1.0">
10
11	<LINK rel=stylesheet href="css/noscript.css">
12	<LINK rel=stylesheet href="css/err_stack.css">
13	<LINK rel=stylesheet href="css/fullscreen_dialog.css">
14	<LINK rel=stylesheet href="css/01 main.css">
15	<LINK rel=stylesheet href="css/03 table players.css">
16	<LINK rel=stylesheet href="css/go/09 div nextgame.css">
17	<LINK rel=stylesheet href="css/go/10 territories and score.css">
18	<STYLE>
19	</STYLE>
20</HEAD>
21<BODY id=body>
22
23<!-- ------------------------------------------------------------------------------------ -->
24<noscript>
25	JavaScript<BR>is deactivated.<BR><BR>
26	This page<BR>does not work<BR>without JavaScript.
27</noscript>
28<!-- ------------------------------------------------------------------------------------ -->
29
30<DIV class="Wrap">
31						<!-- state: design|peers|game|play|score-->
32	<DIV class=Main id=id_main data-state="peers" data-connected="0">
33<!--	<DIV class=Main id=id_main data-state="design" data-connected="0"> -->
34		
35		<DIV class=Main_Left>
36			<DIV id=id_board></DIV>
37		</DIV>
38		
39		<DIV class=Main_Right>
40			<DIV class=Main_Right_Top></DIV>
41			<DIV class=Main_RowSpacer_Top></DIV>
42			
43			<DIV class=Main_Right_Middle></DIV>
44			<DIV class=Main_RowSpacer_Middle></DIV>
45			
46			<DIV class=Main_Right_Bot></DIV>
47		</DIV>
48		
49	</DIV>
50</DIV>
51<!-- #################################################################################################### -->
52
53<TABLE class="For_Main_Right_Top   Title">
54	<TR>
55		<TD rowspan=3 class=Large>Go - 囲碁</TD>
56		<TD class=Transcript>weiqi</TD>
57		<TD class=Script>圍棋 / 围棋 (Chinese)</TD>
58		<TD class=About>About:</TD>
59	</TR>
60	<TR>
61		<TD class=Transcript>igo</TD>
62		<TD class=Script>囲碁 (Japanese)</TD>
63		<TD class=About><A href="./GoAbout.htm">The Game</A></TD>
64	</TR>
65	<TR>
66		<TD class=Transcript>baduk</TD>
67		<TD class=Script>바둑 (Korean)</TD>
68		<TD class=About><A href="http://bitje.de">This Site</A></TD>
69	</TR>
70</TABLE>
70
71
72<!-- #################################################################################################### -->
73
74<TABLE class="For_Main_Right_Top   NavTop">
75	<TR>
76		<TD class=Left>
77			<BUTTON id=id_bn_chgconn 	onclick="oPlay.oConnect.ChangeConnState()"></BUTTON>
78			<BUTTON onclick=Fullscreen() title="Fullscreen: ON">Full</BUTTON>
79			<BUTTON onclick=CloseFullscreen() title="Fullscreen: OFF">Norm</BUTTON>
80		</TD>
81		<TD class=Right>
82			<A target='_blank' rel="noopener noreferrer" style="padding-right: 0.25em;"
83				href="Editor/Editor.htm">SGF Editor</A>
84			<BUTTON onclick="oPlay.oConnect.SwitchGameType()">Play Omok</BUTTON>
85			<BUTTON onclick="oPlay.GameNew()"	id=id_bn_new_game>New Game</BUTTON>
86		</TD>
87	</TR>
88</TABLE>
89
90<!-- #################################################################################################### -->
91
92<DIV class="For_Main_Right_Middle   State peers">
93	<TABLE class="Peers">
94		<TR>
95			<TH colspan=2 class=Caption>Establish a peer-to-peer connection:</TH>
96		</TR>
97		<TR>
98			<TD colspan=2><DIV class=Spacer></DIV>
99		</TR>
100		<TR>
101			<TH>Get your new ID:</TH>
102			<TH>Or enter the partner's ID:</TH>
103		</TR>
104		<TR>
105			<TD>
106				<BUTTON onclick="oPlay.oConnect.MakePeerLocal()" id=id_bn_get_new_id data-highlight=1>Get new ID</BUTTON>
107			</TD>
108			<TD>
109				<INPUT id=id_input_peer_remote>
110			</TD>
111		</TR>
112		<TR>
113			<TD>
114				and
115				<BUTTON onclick="oPlay.oConnect.IdLocalToClipboard()" id=id_bn_copy_to_clipboard>Copy ID</BUTTON>
116				or 
117				<BUTTON onclick="oPlay.oConnect.LinkForRemote_ToClipboard()" id=id_bn_copy_link_to_clipboard>
118					Link
119				</BUTTON>
120			</TD>
121			<TD>
122				and 
123				<BUTTON id=id_bn_connect onclick="oPlay.oConnect.Connect()" data-highlight=1>Connect</BUTTON>
124				<DIV id=id_connect_countdown></DIV>				
125			</TD>
126		</TR>
127		<TR>
128			<TD colspan=2><DIV class=Spacer></DIV>
129		</TR>
130		<TR>
131			<TD class=Value><DIV id=id_peer_local></DIV></TD>
132			<TD class=Value><DIV id=id_peer_remote></DIV></TD>
133		</TR>
134	</TABLE>
135</DIV>
136
137<!-- ################################################################################################## -->
138<DIV class="For_Main_Right_Middle   State game" data-bool_load="0">
139	<TABLE class="NextGame new">
140		<CAPTION>
141			New game:
142			<BUTTON onclick="oPlay.GameLoad()">Load from File</BUTTON>
143		</CAPTION>
144		<TR>
145			<TH>Your colour:</TH>
146			<TD>
147				<DIV class=ColourContainer data-player_active>
148					<DIV class=MyColour data-player_colour="2"></DIV>
149				</DIV>
150				<BUTTON onClick="oPlay.oPrePlayNew.OnSwapColours()">Change</BUTTON>
151			</TD>
152		</TR>
153		<TR>
154			<TH>Handicap:</TH>
155			<TD>
156				<select class=Handicap onchange="oPlay.oPrePlayNew.OnHandicap(this.value)">
157					<option value="0" selected>0</option>
158					<option value="1">1</option>
159					<option value="2">2</option>
160					<option value="3">3</option>
161					<option value="4">4</option>
162					<option value="5">5</option>
163					<option value="6">6</option>
164					<option value="7">7</option>
165					<option value="8">8</option>
166					<option value="9">9</option>
167				</select>
168			</TD>
169		</TR>
170		<TR>
171			<TH>Komi:</TH>
172			<TD class=Komi>6.5</TD>
173		</TR>
174		<TR>
175			<TH>Begin:</TH>
176			<TD>
177				<BUTTON onclick="oPlay.oPrePlayNew.OnPlay()">Play</BUTTON>
178			</TD>
179		</TR>
180	</TABLE>
181<!-- ################################################################################################## -->
182	<TABLE class="NextGame load" data-remote="0">
183		<CAPTION>
184			Load game from file:
185			<BUTTON onclick="oPlay.GameNew()">Cancel</BUTTON>
186		</CAPTION>
187		<TR>
188			<TH>File:</TH>
189			<TD class=FileInput><input type="file" onchange="oPlay.oPrePlayLoad.OnFileSelect(event)"></TD>
190		</TR>
191		<TR>
192			<TH>Your colour:</TH>
193			<TD>
194				<DIV class=ColourContainer data-player_active>
195					<DIV class=MyColour data-player_colour="2"></DIV>
196				</DIV>
197				<BUTTON onClick="oPlay.oPrePlayLoad.OnSwapColours()">Change</BUTTON>
198			</TD>
199		</TR>
200		<TR>
201			<TH>Last move:</TH>
202			<TD>
203				<DIV class=ColourContainer>
204					<DIV class=LastMoveColour data-player_colour="0"></DIV>	<!-- init 0: no colour given -->
205				</DIV>
206				<BUTTON onClick="oPlay.oPrePlayLoad.OnChange_LastMove_Colour()">Change</BUTTON>
207				<DIV id=id_last_move_unspecified data-visible="1">(colour not specified in source data)</DIV>
208			</TD>
209		</TR>
210		<TR>
211			<TH>Handicap:</TH>
212			<TD class=Handicap>0</TD>
213		</TR>
214		<TR>
215			<TH>Komi:</TH>
216			<TD class=Komi>6.5</TD>
217		</TR>
218		<TR>
219			<TH>Prisoners:</TH>
220			<TD class=Prisoners>
221				<DIV id=id_load_game_prisoners_black>0</DIV> black,
222				<DIV id=id_load_game_prisoners_white>0</DIV> white
223			</TD>
224		</TR>
225		<TR>
226			<TH>Begin:</TH>
227			<TD>
228				<BUTTON id=id_bn_start_game onclick="oPlay.oPrePlayLoad.OnPlay()">Play</BUTTON>
229<!--			<BUTTON id=id_bn_start_demo>Demonstration</BUTTON> -->
230			</TD>
231		</TR>
232	</TABLE>
233	<!-- ====================================================================================== -->
234</DIV>
235<!-- ################################################################################################## -->
236
237<DIV class="For_Main_Right_Middle State play">
238	<!-- ================================================================================ -->
239		<DIV id=id_game_resumed data-resumed="1"><SPAN>Game Resumed</SPAN></DIV>
240	<!-- ================================================================================ -->
241		<TABLE class="Players">
242			<CAPTION class=Standard>Play:</CAPTION>
243			<TR>
244				<TD class=Local>
245					<DIV class=ColourContainer data-player_active>
246						<DIV data-player_colour="1"></DIV>
247					</DIV>
248					You <DIV class=Undone id=id_local_undone data-undone=1></DIV> [<DIV class=PrisonerCount id=id_prisoners_local>22</DIV>]
249					<DIV class=Passed id=id_local_pass   data-pass=1>passed!</DIV>
250				</TD>
251				<TD class=Remote>
252					<DIV class=ColourContainer data-player_active>
253						<DIV data-player_colour="2"></DIV>
254					</DIV>
255					Partner <DIV class=Undone id=id_remote_undone data-undone="waiting"></DIV> [<DIV class=PrisonerCount id=id_prisoners_remote>5</DIV>]
256					<DIV class=Passed id=id_remote_pass data-pass=1>passed!</DIV>
257				</TD>
258			</TR>
259		</TABLE><!-- Players -->
260	<!-- ================================================================================ -->
261		<DIV class=Moves>
262			<BUTTON id=id_bn_undo	onclick="oPlay.Undo_OnClick()">Undo</BUTTON>
263			<BUTTON id=id_bn_pass	onclick="oPlay.PassMove()">Pass</BUTTON>	
264			<BUTTON id=id_bn_resign	onclick="oPlay.Resign_Local()">Resign</BUTTON>	
265			<BUTTON id=id_bn_end	onclick="oPlay.EndGame_Local()">End</BUTTON>
266
267			<DIV class=Pointer id=id_div_mouse_sharing data-state="">
268				<DIV class=Title>Mouse Sharing:</DIV>
269				<BUTTON id=id_bn_mouse_sharing onclick=oPlay.oConnect.MouseSharing_OnClick()></BUTTON>
270				<DIV    id=id_text_mouse_sharing></DIV>
271			</DIV>
272
273			<BUTTON title="Save game, reloadable into this page"
274				onclick="oPlay.OnSaveActiveGame()">Save</BUTTON>
275
276			<BUTTON title="Save game as SGF (not for loading into this page)"
277				onclick="oPlay.OnSaveSgf()">SGF</BUTTON>
278			
279			<BUTTON title="Review this game in an SGF editor"
280				onclick="oPlay.OnEditGame()">Edit</BUTTON>
281		</DIV>
282	<!-- ================================================================================ -->
283</DIV>
284<!-- ###################################################################################################### -->
285
286<DIV class="For_Main_Right_Middle State score">
287
288	<!-- ========================================================================================== -->
289	<DIV id="id_ending_reason" data-reason="4"></DIV>
290	<!-- ========================================================================================== -->
291	
292	<TABLE class=Score>
293		<CAPTION class=Standard>Score:</CAPTION>
294		<TR>
295			<TH>Player</TH>
296			<TH>Colour</TH>
297			<TH>Prisoners</TH>
298			<TH>Territory</TH>
299			<TH>Komi</TH>
300			<TH>Result</TH>
301			<TH>Difference</TH>
302			<TH>Handicap</TH>
303		</TR>
304		<TR class=Remote>
305			<TD class=Player>Remote:</TD>
306			<TD class=Colour>
307				<DIV class=ColourContainer data-player_active>
308					<DIV data-item=PlayerColour data-player_colour="1"></DIV>
309				</DIV>
310			</TD>
311			<TD class=Prisoners data-item>5</TD>
312			<TD class=Territory data-item>48</TD>
313			<TD class=Komi data-item></TD>
314			<TD class=Result data-item>53</TD>
315			<TD class=Difference data-item data-winner="tie">0</TD>
316			<TD class=Handicap data-item></TD>
317		</TR>
318		<TR class=Local>
319			<TD class=Player>You:</TD>
320			<TD class=Colour>
321				<DIV class=ColourContainer data-player_active>
322					<DIV data-item=PlayerColour data-player_colour="2"></DIV>
323				</DIV>
324			</TD>
325			<TD class=Prisoners data-item>33</TD>
326			<TD class=Territory data-item>76</TD>
327			<TD class=Komi data-item>0.5</TD>
328			<TD class=Result data-item>109.5</TD>
329			<TD class=Difference data-item data-winner="tie">0</TD>
330			<TD class=Handicap data-item>9</TD>
331		</TR>
332	</TABLE>
333	<!-- ========================================================================================== -->
334	<TABLE class=Territories data-marking=4>
335		<TR>
336			<TH></TH>
337		</TR>
338		<TR>
339			<TD>
340				<BUTTON id=id_bn_assume_control onclick="oPlay.oScore.AssumeControl()">Assume Control</BUTTON>
341				<BUTTON class=Marking id=id_bn_mark_black onclick="oPlay.oScore.SetMarkingMode(1)">
342					<DIV></DIV>
343				</BUTTON>
344				<BUTTON class=Marking id=id_bn_mark_white onclick="oPlay.oScore.SetMarkingMode(2)">
345					<DIV></DIV>
346				</BUTTON>
347				<BUTTON class=Marking id=id_bn_mark_neutral onclick="oPlay.oScore.SetMarkingMode(4)" title="neutral">
348					<DIV></DIV>
349				</BUTTON>
350				<BUTTON id=id_bn_clear_marks onclick="oPlay.oScore.OnClearMarks()">Clear Marks</BUTTON>
351				<BUTTON id=id_bn_resume onclick="oPlay.ResumeGame()">Resume Game</BUTTON>
352
353				<BUTTON title="Save game, reloadable into this page"	
354					onclick="oPlay.oScore.OnSave()">Save</BUTTON>
355				
356				<BUTTON title="Save game as SGF (not for loading into this page)"
357					onclick="oPlay.OnSaveSgf()">SGF</BUTTON>
358				
359				<BUTTON title="Review this game in an SGF editor"
360					onclick="oPlay.OnEditGame()">Edit</BUTTON>
361			
362			</TD>
363		</TR>
364	</TABLE>
365</DIV> <!-- State score -->
366
367<!-- ###################################################################################################### -->	
368
369<DIV class="For_Main_Right_Bot ChatContainer">
370	<DIV class=TopButtons>
371		<BUTTON onclick="oPlay.oConnect.ClearChat()">Clear Chat</BUTTON>
372	</DIV>
373	<DIV id=id_chat_area></DIV>
374	<DIV id=id_chat_input contenteditable=true></DIV>
375</DIV>
376
377<!-- ###################################################################################################### -->
378
379<DIV class="For_Main_Right_Bot" id=id_div_err_stackdump></DIV>
380
381<!-- ###################################################################################################### -->	
382<script>
383let sGlobalConfessMsg = "";
384window.onerror = (sMsg)=>	// abweichend von vielen Infos gibt es sonst keine weiteren Argumente
385{
386//	sMsg				= `A technical problem has occurred:\n"${sMsg}"\n(No further error alerts will be shown.)`;
387	sMsg				= `A technical problem has occurred:\n"${sMsg}"`;
388	const s				= sGlobalConfessMsg;
389	sGlobalConfessMsg	= "";
390	if( s && (s !== sMsg))
391		sMsg += `\n\n[ERROR:] ${s}`;
392	alert(sMsg);
393	delete window.onerror;
394};
395
396// Inhalte vom Body in die richtigen Zellen des rechten Grids verschieben:
397function Right_FillGrid()
398{
399	['Top','Middle','Bot'].forEach( (loc)=>
400	{
401		const ClassDst	= "Main_Right_"	+ loc;
402		const ClassSrc	= "For_"		+ ClassDst;
403		const elDst		= document.querySelector("div." + ClassDst);
404		
405		document.querySelectorAll("." + ClassSrc).forEach( (el)=>
406		{
407			el.classList.remove(ClassSrc);	// remove the source class, but leave the other ones
408			elDst.appendChild(el);			// move el from source to dest.
409		});
410	});
411}
412Right_FillGrid();
413</script>
413
414<!-- ###################################################################################################### -->	
415<script src="./js/fullscreen_error_alert.js"></script>
415	<!-- defines SetWindowErrorAlert() -->
416<script> SetWindowErrorAlert(); </script>
416
417<!-- ###################################################################################################### -->
418	
418<script src="./js/svg_2_7_1.min.js"></script>
418	<!-- v3.1.1 hat ein ganz anderes Interface -->
419	
419<script src="./js/peerjs.min.js"></script>
419
420	
421	
421<script src="./js/CError.js"></script>
421
422	
422<script src="./js/err.js"></script>
422
423	
423<script src="./js/tools.js"></script>
423
424	
424<script src="./js/version.js"></script>
424
425	
425<script src="./js/colour_indices.js"></script>
425
426	
426<script src="./js/CColours.js"></script>
426	
427	
427<script src="./js/fullscreen_view.js"></script>
427	
428
429	
429<script src="./js/go/go_config.js"></script>
429
430	
430<script src="./js/go/go.js"></script>
430
431	
431<script src="./js/FileSaver.min.js"></script>
431
432	
432<script src="./js/CSaveFile.js"></script>
432
433	
434	
434<script src="./js/CMessenger.js"></script>
434
435	
435<script src="./js/CConnect.js"></script>
435
436	
436<script src="./js/CBoard.js"></script>
436 
437	
438	
438<script src="./js/go/CGo_Board.js"></script>
438
439	
440	
440<script src="./js/go/CGo_OnePlayer.js"></script>
440
441	
441<script src="./js/go/CGo_Play.js"></script>
441
442
443	
443<script src="./js/go/CGo_PrePlay_New.js"></script>
443
444	
444<script src="./js/go/CGo_PrePlay_Load.js"></script>
444
445	
445<script src="./js/go/CGo_PrePlay_Import.js"></script>
445
446
447	
447<script src="./js/go/CGroup.js"></script>
447
448	
448<script src="./js/go/CGo_Groups.js"></script>
448
449	
449<script src="./js/go/CGo_Mark.js"></script>
449
450	
450<script src="./js/go/CGo_Score.js"></script>
450
451	
451<script src="./js/go/CGo_SaveGame.js"></script>
451
452	
452<script src="./js/go/CGo_SaveSgf.js"></script>
452
453
454<!-- ###################################################################################################### -->	
455<script>
456
457//	const bug	= new CBug();
458	const oPlay = new CGo_Play();
459</script>
vendor: 1 bytes, line 459
459
460<script>
461	// relevant: el.focus() # .scrollIntoView(true) # 
462	// timeout for Chrome:
463	window.setTimeout( ()=>{ window.scrollTo(0,0) }, 50 );	
464</script>
464
465
466</BODY>
467</HTML>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.