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.