300000
G'alabalarning umumiy soni: 33068
Nuqta
Agar siz faqat qaysi harakatlarni o'ynashni qiziqtirsangiz va nima uchun emas, balki pastki qismidagi "Qarorlar daraxti" ga o'ting. Ostidagi "Indeks" matnda kiritilgan barcha atamalar ro'yxatini ko'rsatadi va uni tezkor kirish sifatida ishlatish mumkin.


box - burchak sifatida 4 qo'shni nuqta bo'lgan kichik kvadrat. Qutining 0, 1, 2, 3, 4 tomonlari chizilgan bo'lishi mumkin va keyin 0-quti, 1-quti, 2-quti, 3-quti, 4-quti deb nomlanadi.
A line - ikkita qo'shni nuqtani bog'laydigan chiziq segmenti.
Chiziq chizish harakat qilish deb ham ataladi.
Agar chizilmagan chiziq 2-qutini va 3-qutini ajratsa, unda bu chiziqni chizish 3 narsani qiladi: u 3-qutini to'ldiradi va shu bilan bir ball to'playdi, 2-qutini 3-qutiga o'zgartiradi va u o'yinchiga yangi 3-qutini tugatish uchun ishlatilishi mumkin bo'lgan yana bir harakatni beradi. Bunday "zanjir reaktsiyasi" juda tez-tez sodir bo'ladi.
Barcha bog'langan 2-qutilar chain ni tashkil qiladi. Zanjirning 2 uchi bo'lishi mumkin va u to'g'ri chiziq bo'ladimi yoki yo'qmi, kabi 1, 2 va 4 qutili zanjirlarni ko'rsatadigan chiziqli zanjir
+ + +---+---+ + +---+ | | , yoki | | + + +---+---+ +---+ + | +---+---+
deb ataladi.
Zanjirning ham oxiri bo'lmasligi mumkin va keyin biz uni loopy zanjir yoki shunchaki loop deb ataymiz, u doira kabi ko'rinadimi yoki yo'qmi, bu kabi
+---+---+---+ | | + +---+ + | | | +---+ + + | | +---+---+
Zanjir ichida yoki uning uchidan birida harakat qilish bu o'yin haqidagi matematik adabiyotlarda zanjirni ochish deb ataladi.

Agar o'yinchi
+---+---+---+ | | + +A1-+ + | | +---+---+
dagi A1 harakati kabi zanjirdagi chizilmagan chiziqlardan birini chizsa. keyin kamida bitta 2-quti 3-qutiga aylanadi (bu erda yuqoridagi quti va A1 harakatining ostidagi quti) va boshqa o'yinchi (se) qutisini (larni) keyin 4-qutiga to'ldirishi, bir yoki ikki ball to'plashi va bir vaqtning o'zida qo'shni 2-qutini 3-qutiga aylantirishi mumkin (bu erda B1 chap va B2 o'ng qutisi)
+---+---+---+ | B1 | + +A1-+ + . | B2 | +---+---+
da Har bir quti tugallanganda, o'yinchi keyingi qutini va zanjirning boshqa barcha qutilarini bajarish uchun ishlatilishi mumkin bo'lgan yana bir harakatni amalga oshirishi kerak . Oxirgi qutini tugatgandan so'ng, o'yinchi boshqa joyga yana bir harakat qilishi kerak, agar taxtadagi barcha qutilar tugallanmagan bo'lsa.

Qoida 1: Eng aniq o'yin - raqib uni tugatib olishi mumkin bo'lgan 3-qutini yaratishdan qochishdir. Bu sodda va foydali qoida, ammo ushbu sayt oxirida ko'rib turganimizdek mukammal emas. Biron bir bosqichda, barcha chiziqlarning taxminan yarmi chizilgandan so'ng, 3 qutisini yaratish muqarrar bo'lib qoladi. Keyin nima bo'ladi? 1, 2 yoki ≥ 3 qutili zanjirlar boshqacha munosabatda bo'lganligi sababli, biz ularga alohida qarashimiz kerak.


+---+ | ? +---+
Ha, har doim shunday qilish kerak. Qutini olib, keyin A harakatini amalga oshiradimi yoki yo'qmi, qutini olib, A da raqibning nima qilishiga hech qanday ta'sir ko'rsatmaydi, faqat siz yoki raqib qutini oladimi, shuning uchun qutini olishingiz yaxshiroqdir.

Ikki qutili zanjirlar
+---+---+ +---+---+ +---+---+ yoki | yoki | | +---+---+ +---+ + + + +
yoki ularning aylantirilgan va ko'zgu versiyalariga o'xshaydi. U erda o'rta chiziqni chizish
+---+---+ +---+---+ +---+---+ | yoki | | yoki | | | +---+---+ +---+ + + + +
ga olib keladi va adabiyotda Hard-Hearted Handout deb nomlanadi.

Ha, har ikkala qutini ham bir xil sabablarga ko'ra olish kerak, chunki har doim 1-qutili zanjirlarni olish kerak. Iltimos, o'zingizni ishontiring.
2 qutili zanjirning chegarasida chiziq chizish (yuqorida ko'rsatilgan uchta 2 qutili zanjirlardan biri)
+---+---+ +---+---+ | yoki | | +---+---+ +---+ +
ga olib keladi va Yarimparvoz tarqatma material. deb nomlanadi
Yuqoridagi pozitsiyalar chegarasida harakat
+---+---+ | | . +---+---+
ga olib keladi Bunday harakat adabiyotda Double Dealing (DD) deb ataladi. Tushuntirish uchun, quyidagi ikkita harakat o'rtasida aniq farq mavjud:
+---+---+ +---+---+ 1) to | +---+---+ +---+---+
va
+---+---+---+ +---+---+---+ 2) | to | | +---+---+---+ +---+---+---+
garchi ikkala 2-qutili zanjir bir xil ko'rinishga ega bo'lsa-da. Katta farq shundaki, 2) harakati bir qutini to'ldiradi va shu tariqa o'yinchiga yana harakat qilish va DD o'ynashga imkon beradi, 1) ostida hech qanday quti tugallanmagan va shuning uchun o'yinchi darhol DD o'ynay olmaydi. 2) harakati oddiy harakat bo'lsa, 1) harakati "Yarimyurak tarqatma material" deb ataladi.
Ikkala katakchani to'ldiradigan o'rtadagi chiziqni chizish Double-Crossed Move deb ataladi. Loop har doim bunday harakat bilan yakunlanadi, lekin chiziqli zanjirda bu faqat raqib quyida aytib o'tilganidek nazoratni o'z zimmasiga olish uchun DD harakatini o'ynaganida sodir bo'lishi mumkin. A o'yinchisi tomonidan DD harakatidan so'ng, keyingi B o'yinchisi o'rtada o'ynashdan boshqa chorasi yo'q. Garchi bu harakat B 2 qutilarini bersa-da, agar B butunlay A-ga boradigan uzoqroq zanjirda o'ynashga ega bo'lsa, narx yuqori bo'ladi. Bunday vaziyatda B o'yinchisi ikki marta kesib o'tgan harakat aldashadi, ya'ni "ikki marta kesib o'tdi", shuning uchun bu harakat uchun bu nom.

DD harakati ikkita qutini qurbon qilishdir, chunki o'yinchi muqobil ravishda avval Hard-Hearted Handout o'rtasida, keyin chegarada va shu tarzda ikkita qutini topishi mumkin. Nima uchun 2 qutini qurbon qilishni xohlaydi? Buni bilish uchun o'qishni davom eting!
Raqibga qurbonlik qilish imkoniyatini bergan DDdan oldin "Yarimparvoz tarqatma" harakati kabi harakat adabiyotda loony harakat deb ataladi. Bu aqlsiz harakatdan qochish mumkin va kerak. 3 yoki undan ortiq qutilar bilan zanjirni ochish kabi boshqa loony harakatlar muqarrar bo'lishi mumkin.

Keling, barcha farqlarni ko'rib chiqaylik. Agar 2 qutili zanjirning bitta qutisini olsa, ikkinchi qutini biz ilgari topganimiz kabi olish kerak. Agar ikkala qutini ham olsa, 2 ochko olinadi, lekin keyin boshqa joyga harakat qilish kerak. Bu qimmatga tushishi mumkin, chunki raqibga ko'proq kvadratlarni olishga imkon beradigan ko'plab qutilarga ega zanjirni ochish kerak bo'lishi mumkin. Agar chegarada o'ynasa, kvadratni tugatmaydi va shuning uchun boshqa joyda o'ynashning hojati yo'q. Ammo chegarada keyingi o'yinchiga yuqorida muhokama qilinganidek ikkala qutini ham beradi. Shuning uchun ikkala o'yin ham mumkin. Keyinchalik ushbu vaziyatda qaysi harakat yaxshiroq ekanligini aniqlash uchun bu savolga qaytamiz.

Agar biri zanjirning o'rtasida o'ynasa (qattiq yurakli tarqatma material), u holda boshqa tomon ikkala qutini ham olishga majbur bo'ladi va keyin boshqa joyga qimmatga tushishi mumkin:
+---+---+ +---+---+ +---+---+ → | → | | | bundan tashqari boshqa joyda.
+---+---+ +---+---+ +---+---+
Agar zanjir chegarasida o'ynasa (yarim yurakli tarqatma material), u holda raqibga yuqoridagi kabi ikkita qutini olish yoki chegarada imkoniyati beriladi (Double Dealing (DD) harakati):
+---+---+ +---+---+ +---+---+ → | → | | +---+---+ +---+---+ +---+---+
DD bu variant juda qimmatli bo'lishi mumkin, chunki biz keyinroq bilib olamiz. Raqibga qo'shimcha imkoniyatlar berish hech qachon yaxshi harakat bo'lishi mumkin emas, shuning uchun optimal o'yinni maqsad qilib 2 qutili zanjirni faollashtirishda hech qachon Half-Hearted Handout o'ynamaslik kerak. Optimal bo'lmagan qiziqarli o'yinda raqibning mahoratini aniqlash uchun yarim yurakli harakatlarni sinab ko'rish yoki orqada qolsa, raqibni chalkashtirish mumkin (lekin optimal o'ynashga harakat qilsa emas).

Agar zanjir ochilsa, unda kamida bitta 3 qutisi mavjud. Bu qutini va boshqa qutilarni ham to'ldirish mumkin, lekin buni qilish kerakmi?

Bir tomondan, biz iloji boricha ko'proq qutilarni olishni xohlaymiz. Boshqa tomondan, biz keyinchalik boshqa joyda narxini to'lashni xohlamasligimiz va shu bilan raqib olish uchun yanada katta zanjirni ochishimiz mumkin. Biz, albatta, qilishimiz kerak bo'lgan narsa, ikkita qutidan tashqari barchasini ilgari asoslangan sifatida olishdir, ular bepul, salbiy yon ta'siri yo'q. Shundan so'ng, qolgan 2 qutilarini ham olish yoki DD (Double Dealing) haqida o'ylashimiz mumkin. Quyida bu haqda ko'proq gaplashamiz.
≥ 3 qutili zanjirlar uzun zanjirlar . deb ataladi. Bularga ham chiziqli va loopy zanjirlar kiradi.

Agar kamida 3 qutili uzun zanjirlar qolgan bo'lsa, ulardan birini ochish, qanday bo'lishidan qat'i nazar, harakatning kamida bir tomonida kamida 2 qo'shni quti borligini anglatadi. Shunday qilib, boshqa o'yinchi o'yinning qolgan qismini aniqlashda juda muhim bo'lgan Double Dealing mumkin.

Mumkin bo'lgan eng kichik loop 4 qutiga ega:
+---+---+ | | + + + | | +---+---+

Keling, buni sinab ko'raylik. Mumkin bo'lgan eng kichik ochilgan loop
+---+---+ | | +---+ + | | +---+---+
Albatta, biz barcha 4 qutilarni olib, keyin boshqa joyda o'ynashimiz mumkin edi, lekin har qanday holatda ham boshqa joyda o'ynashdan qochishni istasak nima bo'ladi? Agar biz ikkita qutini olsak,
+---+---+ | | | +---+---+ | | +---+---+
ga etib boramiz, lekin yana bir harakat qilishimiz kerak. Shunday qilib, biz bu erda to'xtay olmadik, chunki chegaradagi barcha chiziqlar allaqachon chizilgan, shuning uchun biz
+---+---+ | | | +---+---+ | | | +---+---+
ga borishni davom ettirishimiz kerak va keyin biz boshqa joyga harakat qilishga majburmiz, bu esa raqibga yanada katta zanjirni topshirishi mumkin.

Biz boshqa joyda o'ynashga majbur bo'lmaslik uchun qutini to'ldirmaydigan harakatni o'ynashni xohlaymiz. Faqatgina mumkin bo'lgan harakat - yaratish uchun ochilgan loopning o'rtasida.
+---+---+ | | +---+---+ . | | +---+---+
Bu harakat qutini to'ldirmaydi va shuning uchun boshqa o'yinchi keyingi o'ynaydi. Biz bu harakatni Double Double Dealing (DDD) deb ataymiz. Narx 4 quti o'rniga 2 qurbon qilishdir. Raqib uchun 4 qutini olib, keyin boshqa joyda yaxshidir.

Biz kvadratni tugatmaydigan harakatni o'ynashimiz mumkin bo'lsa, biz xohlagancha ko'p qutilarni olishimiz mumkin. Bu shuni anglatadiki, biz 4 qutidan tashqari barchasini olishimiz mumkin, masalan,
+---+---+---+---+ +---+---+---+---+ | | | | | + +---+---+ + beradi, Misol uchun, + +---+---+ + | | | | +---+---+---+---+ +---+---+---+---+
ni ochib, 8 − 4 = 4 qutini olib, masalan,
+---+---+---+---+ | | | | | + +---+---+---+ . | | | +---+---+---+---+
Endi qolgan 4 qutini olish yoki
+---+---+---+---+ | | | | | + +---+---+---+ . | | | | +---+---+---+---+
o'ynab, raqibga qurbon qilish to'g'risida qaror qabul qilishimiz kerak Keyinroq bu haqda ko'proq.

Agar ochiq chiziqli va / yoki ochiq loopy zanjirlar mavjud bo'lsa, unda bitta ochiq chiziqli zanjirning 2 qo'shni qutisidan tashqari barcha bu zanjirlarning barcha qutilarini to'ldiring yoki ochiq chiziqli zanjir bo'lmasa, ochiq loopy zanjirlardan birining 4 qutisidan tashqari. Ushbu katakchalar tugallangandan so'ng, DD / DDD yoki yo'qmi haqida o'ylashni boshlash mumkin.
Biz o'yin ko'proq yoki kamroq tasodifiy harakatlar bilan boshlanishini bilib oldik, bundan tashqari ikkala o'yinchi ham iloji boricha uzoqroq 3-qutilarni yaratishdan qochishadi, ya'ni zanjirlarni ochishdan qochishadi. Bu muqarrar bo'lganda, biz uni endgame.ning boshlanishi sifatida qabul qilamiz. Biz endgameni tushuntirishni boshlaymiz, chunki bu barcha o'yinlarning eng oson qismi.

Boshqa barcha o'yinlarda bo'lgani kabi, oxiriga qanchalik yaqin bo'lsa, optimal o'yin ostida kim g'alaba qozonishini va qancha g'alaba qozonishini taxmin qilish osonroq bo'ladi. Shuning uchun biz tahlilimizni o'yin oxiridan boshlaymiz. Endgameda barcha harakatlar yo ochiq zanjirlar yoki to'liq qutilar yoki DD / DDD harakatlaridir. O'yinchi zanjirni ochishi kerak bo'lsa, strategiyaning birinchi g'oyasi raqibga eng kam qutilarni berish uchun mavjud zanjirlarning eng kichikini ochish bo'lishi mumkin. Keling, buni bir nechta misollarda sinab ko'raylik.

Faraz qilaylik, 3 va 4 qutili ikkita zanjirdan tashqari barcha qutilar to'ldirilgan:
+ +---+---+ | | | | + +---+---+ | +---+---+---+ +---+---+---+
Keyingi harakatlanayotgan A o'yinchisi qisqa zanjirni (A1 kabi har qanday harakat bilan) boshqa B o'yinchisi ushbu zanjirni talab qilishi va 3 ochko olishi uchun va A keyinchalik A:B = (0+4):(3+0)=4:3 dan hisob bilan qutilar bilan katta zanjirni olishi uchun ochadi.
+A9-+---+---+ | | | | +A8-+---+---+ | B5 A6 A7 +---+---+---+ B2 A1 B3 B4 +---+---+---+
Aytgancha, A1 harakati biz ilgari loony harakat deb ta'riflagan narsa, raqibga qurbonlik qilish imkoniyatini beradigan harakat. A bu erda qochib qutula olmaydi.
Va bu keyingi diagrammada sodir bo'ladi. B o'yinchisi B2 harakati bilan faqat bitta qutini oladi (keyingi diagrammada), keyin B3 bilan Double Dealing o'ynaydi. Keyin A A4 bilan 2 qutini olishi kerak, A5 kabi ba'zi harakatlar bilan katta zanjirni ochishga majbur bo'ladi va B qolgan 4 qutini A:B = (2+0):(1+4)=2:5 yakuniy hisobi bilan oladi.
+B9-+---+---+ | | | | +B8-+---+---+ | A5 B6 B7 +---+---+---+ B2 A1 A4 B3 +---+---+---+Bu vaziyatda B uchun ikkita qutini qurbon qilish foydali ekanligini ko'ramiz.

Faraz qilaylik, 3 qutili bitta zanjir va 4 qutili bitta halqadan tashqari barcha qutilar to'ldirilgan.
+---+---+---+ | | | + + +---+ | | | +---+---+---+ +---+---+---+Player A move next.

Agar A1 o'yinchisi B butun zanjirni olganidan keyin A o'yinchisi loopni oladi va bu ikki zanjirdan hisob A:B = (0+4):(3+0) = 4:3 bo'ladi.
+---+---+---+ | A7 | | +A6-+A8-+---+ | B5 | | +---+---+---+ B2 A1 B3 B4 +---+---+---+
Agar A1 o'yinchisi B DD o'ynasa,
+---+---+---+ | B7 | | +B6-+B8-+---+ | A5 | | +---+---+---+ B2 A1 A4 B3 +---+---+---+dan keyin bu ikki zanjirdan hisob A:B = (2+0):(1+4) = 2:5 bo'ladi, shuning uchun bu erda ham B uchun DD va A:B = 2:5 ga erishish foydalidir.

Agar A1 o'yinchisi B butun loopni olsa, A o'yinchisi qisqa zanjirni oladi va bu ikki zanjirdan hisob A:B = (0+3):(4+0) = 3:4 bo'ladi.
+---+---+---+ | B3 | | +B2-+B4-+---+ | A1 | | +---+---+---+ B5 A6 A7 A8 +---+---+---+
Agar A1 o'yinchisi B bilan DDD o'ynasa, biz
+---+---+---+ | B2 | | +A3-+A4-+---+ | A1 | | +---+---+---+ B6 A5 B7 B8 +---+---+---+va A:B = (4+0):(0+3) = 4:3 ning ushbu ikki zanjiridan hisob olamiz. Bu holda B uchun DDD o'ynamaslik va shu bilan A:B = 3:4 olish yaxshiroqdir. Agar A avval qisqa chiziqli zanjirda o'ynasa, A faqat A: B = 2:5 ni bajarishi mumkin. Holbuki, A birinchi bo'lib katta loopni ochganda, A A: B = 3:4 ning yaxshiroq natijasiga erishishi mumkin.

Agar A uzun zanjirni ochishi kerak bo'lsa (>2 quti bilan), u holda B o'yinchisi ushbu zanjirning qutilarini olish oxirida DD / DDD imkoniyatiga ega bo'ladi va shu bilan keyingi zanjirni ham olish va bu zanjirda DD / DDD va hokazo o'yin oxirigacha davom etadi. Biz buni "nazoratda bo'lish" deb ataymiz, chunki A o'yinchisi B o'yinchisi xohlamasa, DD / DDD imkoniyatiga ega bo'lmaydi. A o'yinchisi qila oladigan narsa DD / DDD narxini yuqori qilishdir. Agar A chiziqli zanjirni ochsa, B uchun DDni olish narxi 2 qutining qurbonligidir. Agar A loopy zanjirni ochsa, B uchun DDD narxi 4 tosh. Bu shuni ko'rsatadiki, zanjirlarni qiymat bo'yicha saralashda, chiziqli zanjirlar uchun 2 qutini va loopy zanjirlar uchun 4 qutini olib tashlash orqali qiymat tuzatish kerak.

Ushbu misolda biz zanjirlarni ochish tartibi haqida ko'proq ma'lumotga ega bo'lishni istaymiz. Faraz qilaylik, 3 va 4 qutili ikkita chiziqli zanjir va bu erda 4 qutili bitta loopdan tashqari barcha qutilar to'ldirildi:
+---+---+ +---+ | | | + + +---+ + | | | | +---+---+---+ + | +---+---+ +---+
A o'yinchisi keyingi o'tadi. Agar 3 qutili chiziqli zanjir bo'lsa, A 4 qutili katta chiziqli zanjirni ochmasligi aniq.

B o'yinchisi uchun maqbul o'yin to'g'risida qaror qabul qilishdan oldin, boshqa 2 zanjirdan qaysi biri birinchi bo'lib ochilishi kerakligini tekshirib ko'raylik:
+---+---+ +---+ | | | + + +---+ + | | | | +---+---+---+ + | | | | +---+---+---+---+
O'yinchilar C va D bo'lsin, C esa keyingi harakatga o'tsin.

+---+---+ +---+ | | | + + +---+ + | C1 | | | +---+---+---+ + | | | | +---+---+---+---+loopni ochadi
Agar C1 o'yinchisi D D2 bilan DDD o'ynasa,
+---+---+C5-+---+ | D2 | D6 | +C3-+C4-+---+D7-+ | C1 | | | +---+---+---+D8-+ | | | | D9 +---+---+---+---+
dan keyin bu ikki zanjirdan hisob C:D = (4+0):(0+4) = 4:4. Agar D DDD o'ynamasa, lekin loopni olsa,
+---+---+D5-+---+ | D3 | C6 | +D2-+D4-+---+C7-+ | C1 | | | +---+---+---+C8-+ | | | | C9 +---+---+---+---+
dan keyin bu ikki zanjirning hisobi ham C:D = (0+4):(4+0) = 4:4.

+---+---+C1-+---+ | | | + + +---+ + | | | | +---+---+---+ + | | | | +---+---+---+---+
Agar C1 o'yinchisi D butun zanjirni olganidan keyin
+---+---+C1-+---+ | C8 | D2 | +C7-+C9-+---+D3-+ | D6 | | | +---+---+---+D4-+ | | | | D5 +---+---+---+---+
dan keyin hisob C:D = (0+4):(4+0) = 4:4 bo'ladi. Agar C1 o'yinchisi D D4 bilan DD o'ynasa,
+---+---+C1-+---+ | D8 | D2 | +D7-+D9-+---+D3-+ | C6 | | | +---+---+---+C5-+ | | | | D4 +---+---+---+---+dan keyin hisob C:D = (2+0):(2+4) = 2:6 bo'ladi. C1dan keyin D bajarishi mumkin bo'lgan eng yaxshi narsa C: D = 2:6.

Keyingi (C) o'ynaydigan o'yinchi faqat C: D = 4:6 ga yetadigan chiziqli zanjirdan ko'ra, C: D = 4:6 ga yetadigan loopni ochishi yaxshidir. Agar biz zanjirlarni kattaligi bo'yicha saralasak, qaysi birini birinchi ochishni hal qilish uchun - 2, keyin (4−2) = 2 < 4 would give the correct result. We can now decide on the optimal play for B in:
+---+---+- +---+ | | | + + +---+ + | | | | +---+---+---+ + A1 | +---+---+ +---+

Agar B zanjirni olsa,
+---+---+A9-+---+ | A7 | B10 | +A6-+A8-+---+B11+ | B5 | | | +---+---+---+B12+ B2 A1 B3 | B13 +---+---+B4-+---+
dan keyin ushbu 3 zanjirdagi hisob A:B = (0+4+0):(3+0+4) = 4:7. Agar B o'rniga B3 bilan DD o'ynasa,
+---+---+B9-+---+ | B7 | B10 | +B6-+B8-+---+B11+ | A5 | | | +---+---+---+B12+ B2 A1 A4 | B13 +---+---+B3-+---+
dan keyin ushbu 3 zanjirdagi hisob A:B = (2+0+4):(1+4+0) = 6:5. Shunday qilib, B A1dan keyin erishishi mumkin bo'lgan eng yaxshi narsa A:B = 4:7 B tomonidan DDD o'ynamaslik orqali olingan. Ikkala holatda ham biz oldinroq loopni ochish kerakligini aniqladik.

+---+---+ +---+ | | | + + +---+ + | A1 | | | +---+---+---+ + | +---+---+ +---+

Kichik zanjirni DD bilan kerakligi aniq, bu
+---+---+B9-+---+ | B3 | A10 | +B2-+B4-+---+A11+ | A1 | | | +---+---+---+A12+ B5 A6 B8 | A13 +---+---+A7-+---+A:B = (0+1+4):(4+2+0) = 5:6 ning ushbu 3 zanjiri bo'yicha hisob beradi.

Shunga qaramay, kichik zanjirni DD bilan kerak, bu
+---+---+A9-+---+ | B2 | B10 | +A3-+A4-+---+B11+ | A1 | | | +---+---+---+B12+ A5 B6 A8 | B13 +---+---+B7-+---+ga olib keladi A:B = (4+2+0):(0+1+4) = 6:5.

DDD-ni loopda o'ynashning yuqori narxi tufayli B uchun eng yaxshisi A:B = 5:6 skoriga erishish uchun butun loopni olishdir.

Bizda 3 va 4 qutili ikkita chiziqli zanjir va 4 qutili pastadir mavjud. A uchun loopni ochish va A:B = 5:6 skoriga erishish yaxshidir. Agar A zanjirni 3 quti bilan ochsa, u faqat A:B = 4:7 ga etadi. B uchun zanjirni 4 qutili zanjirdan oldin 3 quti bilan ochish yaxshiroq bo'lmasligi aniq. Shuning uchun, keyingi ochishni aniqlash uchun zanjirlarni oddiygina kattaligi bo'yicha saralash ishlamaydi. Ammo ularni o'lchamlari bo'yicha saralash − 2 chiziqli zanjirlar uchun va o'lcham -4 uchun loopy zanjirlar uchun ishlaydi, chunki (4-4) = 0 < 1 = 3 − 2 indicating that the loop should be opened first.

Yuqoridagi misollardan olingan tajriba bilan biz hozir zanjirlarning ochilish va tugallanish tartibini aniqlash muammosini hal qilmoqdamiz. Zanjirlarning ushbu tartibi o'yinchilardan biri DD / DDD o'ynashini, kim o'yinda g'alaba qozonishini va qancha miqdorda g'alaba qozonishini aniqlash uchun quyida ishlatiladi. Yaxshi xabar shundaki, so'nggi o'yinda bu ochilish zanjirlari ketma-ketligi kimning navbati yoki oldin DD / DDD o'ynaganiga bog'liq emas. Buning sababi shundaki, o'yinning istalgan nuqtasida kim tomonidan va qaysi tartibda emas, balki faqat chizilgan chiziqlar muhim ahamiyatga ega. Hatto hozirgi hisob kelajakdagi optimal o'yinga ta'sir qilmaydi. Qiyin muammoni osonroq muammolarga ajratish allaqachon muvaffaqiyatdir. Bu holda, endgameda kim qaysi harakatni amalga oshirayotganini aniqlashning qiyin vazifasi ikki muammoga bo'lindi: zanjirlarni ochish tartibi muammosi va kim DD / DDD o'ynaydi va qachon. Boshlashdan oldin, biz so'nggi o'yindagi umumiy tendentsiya haqida o'ylashimiz kerak.

Raqibga ochiq zanjir beriladi. Shuning uchun zanjir eng kam "qiymatga" ega bo'lishi kerak, bu erda qiymat bir qarashda qutilar soni. Shuning uchun, so'nggi o'yin davomida ochilgan zanjirlarning "qiymati" faqat ko'tarilishi yoki doimiy bo'lib qolishi mumkin, ammo kamaymaydi. Yuqoridagi misolimizda biz zanjirni raqib olish uchun eng kam qutilar bilan ochish ishlamasligini ko'rdik. Ammo biz zanjirlarni qandaydir "qiymat" bo'yicha saralashni xohlaymiz, chunki har bir o'yinchi raqib uchun eng kam qimmatbaho zanjirni ochishni xohlaydi. Raqib uchun zanjirning qiymati nafaqat qutilar sonidan iborat; shuningdek, ochilgan zanjir DD / DDD uchun mos keladimi yoki yo'qmi muhim ahamiyatga ega. DD uchun yaroqlilikni sozlash uchun yaxshi nomzod, agar zanjir halqa bo'lsa, qutilar sonidan 2 ni olib tashlashdir. Bu chiziqli zanjirlardan 2 va loopy zanjirlardan 4 olib tashlashga teng. Shunday qilib, zanjirlarni "qiymat" bo'yicha saralash uchun, bu erda biz "qiymat" = # qutilarni olamiz, agar zanjir loop bo'lmasa va "value" = # qutilari − 2 agar zanjir loop bo'lsa.
Biz har bir qutida kamida 2 tomoni chizilgan taxta pozitsiyalaridan boshlaymiz. Buning uchun biz barcha zanjirlarni tartiblashtiradigan ikkita qoidani shakllantirishimiz mumkin.
Qoida 2: Zanjirlarni buyurtma qilish uchun oxirgi zanjir uchun eng katta chiziqli zanjirni oling va agar chiziqli zanjir bo'lmasa, eng katta loopni oling.

Boshqaruvchi o'yinchi zanjirlarni ochmaydi va shuning uchun zanjirlarni saralamaydi. Shunday qilib, zanjirlarni saralash har qanday o'yinchi raqib uchun nazoratni olish yoki ushlab turishni (ya'ni DD / DDD harakatlarini) iloji boricha qimmatga tushirishni xohlaydi. DD harakati 2 qutiga va DDD harakati 4 qutiga tushadi. Bu narx oxirgisidan tashqari barcha zanjirlar uchun to'lanishi kerak. Shuning uchun, raqib uchun umumiy xarajatlarni maksimal darajada oshirish uchun, zanjirlarni saralashda oxirgi zanjir iloji bo'lsa, chiziqli bo'lishi kerak va loop emas. ∎
Qoida 3: Agar oxirida barcha qutilarda kamida 2 tomon chizilgan bo'lsa, qolgan barcha zanjirlarni tartiblash uchun ularni tartiblang (qutilar soni − 2 agar u loop bo'lsa).

Avvaliga 1 qutili zanjirlar, keyin 2 qutili zanjirlar va keyin uzun zanjirlar ochilishi kerak. Barcha chiziqli zanjirlardan 2 qutini olib tashlash orqali 1-qutili zanjir 1−2 = −1 va 2-qutili zanjir 2-2 = 0 qiymatiga ega bo'ladi. Bu qiymatlar uzun zanjirlar qiymatlaridan kichikroq, shuning uchun 2 qutini olib tashlash qoidasi qisqa zanjirlar uchun ham to'g'ri saralash natijasini beradi.
Keyingi o'yinchi nazoratni o'z zimmasiga olish yoki ushlab turishi uchun zanjirning qiymati uning qutilari soni − 2 agar chiziqli zanjir bo'lsa va -4 agar u loop bo'lsa. Zanjirlarni saralash uchun, agar loop bo'lsa, faqat 2 olib qo'yilgan bo'lsa, bir xil natija olinadi.
Agar raqib nazoratga ega bo'lmasa va keyingi navbatda nazoratni qo'lga olmasa-chi? Ushbu tartibga asoslanib, raqib bir xil "qiymatli", ammo kamroq qutilarga ega chiziqli zanjirni olishdan ko'ra, ikkita quti bilan ochiq loopda keyingi harakatga o'tsa, raqibga foyda keltirmaydimi? Yo'q! Agar raqib butun loopni yakunlasa, keyin bu o'yinchining navbati kelganida, bitta loop kamroq bo'ladi va nazoratni o'z zimmasiga olish uchun 2 quti arzonroq bo'ladi. ∎
Biz bu ta'sirni Misol 3 holati 2.1da ko'rdik, bu erda A o'yinchisi A1 bilan loopni ochgandan so'ng, B o'yinchisi butun loopni oladi, ammo natijada A keyinchalik A7 bilan nazoratni o'z zimmasiga olish va eng yaxshi natijani olish uchun arzon bo'ldi.
Agar barcha qutilar zanjirga tegishli bo'lsa, yuqoridagi qoidalar aniq, ya'ni barcha qutilarda kamida 2 tomoni chizilgan bo'lsa. Ammo 0 va 1-qutilari bo'lsa-chi?

Qoida 4: Qiymat bo'yicha saralangan zanjirlar ketma-ketligini yaratish uchun butun taxta tugaguniga qadar harakatlarning quyidagi tsiklini bajaring.
- Qiymati (qutilar soni, yoki agar u loop bo'lsa, qutilar soni −2) minimal bo'lgan zanjirlardan birini oching, bitta istisnodan tashqari: Agar hali ham kamida bitta loop mavjud bo'lsa, bog'langan yoki uzilgan bo'lsa va faqat bitta uzilgan chiziqli zanjir bo'lsa va faqat chiziqli zanjirlarning bog'langan daraxti bo'lmasa, oxirgi uzilgan chiziqli zanjirni ochmang.
- Ochilgan zanjirni qutilarni sanab chiqmasdan tugating. Chiziqli zanjirning oxirida chiziqlarni chizish 1-qutini 2-qutiga o'zgartirishi va shu bilan ikkita chiziqli zanjirni birlashtirishi yoki loopni kesib tashlashi mumkin.
Agar so'nggi o'yinda hali 0-qutilar va 1-qutilar mavjud bo'lsa, unda bunday qutini nuqta deb o'ylash mumkin va zanjirlarni bunday nuqtalarda tugaydigan yoki taxta chetida tugaydigan chiziqlar deb o'ylash va keyin sun'iy qo'shimcha nuqta olish mumkin.
Nuqtalar va ularning bog'lovchi chiziqlari matematikada graph deb ataladi.
"Grafik tilida" shakllantirilgan 4-qoidadagi istisno shunday bo'ladi: Agar qolgan grafikda loopni o'z ichiga olgan uzilgan qism bo'lsa va loop bo'lmagan uzilgan qismi bo'lmasa (va shuning uchun grafiklar tilida "daraxt" deb ataladi) bo'lsa, qolgan grafikdan uzilgan chiziqga mos keladigan chiziqli zanjirni ochmang.

1-qutida 'T' yozilgan:
+---+---+---+ + | T | | + + + + + | | | | + + +---+---+ | | | + +---+---+ +
Ushbu taxtaga mos keladigan grafik 4 nuqtali T kabi bo'ladi, bu erda − va | T uchrashuvida va T-ning 3 uchida 3 ochko.
1-qutining chap tomonida ikkita eng qisqa zanjirlardan biri mavjud. Uni ochib,
+---+---+---+ + +---+---+---+ + | | | | | | | + + + + + +---+ + + + | | | | | | | | +---+ +---+---+ +---+ +---+---+ | | | | | | + +---+---+ + +---+---+---+ +
tugatib, taxta 2 zanjirni tugatish bilan yakunlanadi, biri 3 va biri 9 qutili.

1-qutida 'P' yozilgan:
+---+---+---+---+ | | + +---+---+ + | P | + +---+---+---+ | | +---+---+---+ +
1-qutining ustidagi yoki o'ng tomonini chizish raqibga berishni istamaydigan 12 qutili
+---+---+---+---+ | | +---+---+---+ + | | + +---+---+---+ | | +---+---+---+ +
bitta katta chiziqli zanjirni yaratadi va ochadi. 1-qutining ostidagi chiziqni chizish taxtani 4 qutili ochiq chiziqli zanjirga va 8 qutili halqaga bo'ladi.
+--+--+--+--+ | | + +--+--+ + | | +--+--+--+--+ | | +--+--+--+ +
Yuqoridagi 4-qoidada istisno tuzildi. 6-misol ushbu istisnoni tasvirlaydi.
Misol 6: "P" grafigi va uzilgan chiziqli zanjir
Ikkita chiziqli zanjirni ochish mumkin, biri o'ngda, ikkinchisi pastki tomonda.
+---+---+---+---+ + | P | | + + +---+ + + | | | | + +---+---+---+ + | | | +---+---+---+ + +

21 ta harakat amalga oshirildi, shuning uchun agar A o'yinchisi boshlangan bo'lsa, B o'yinchisi keyingi harakat qiladi.
Agar B1 bilan eng kichik zanjirni ochgandan so'ng, A o'yinchisi darhol nazoratni o'z zimmasiga olsa, biz
+---+---+---+---+B1-+ | B5 B12 | | +A6-+ +---+ +A2-+ | | | | +A7-+---+---+---+B4-+ | A8 A9 B11 | | +---+---+---+A10+A3-+
ni olamiz va A:B = (1+4+6):(2+2+0) = 11:4 bo'ladi, bu erda (2+2+0) B o'yinchisi 3 ochilgan zanjirdan 2, 2 va 0 qutilarida oladi. B faqat B5 bilan 2-chiziqli zanjirni ochishi mumkinligi sababli, A o'yinchisi A10 bilan faqat 2 narxi bilan nazoratni davom ettirishi va loopni bepul olishi mumkin.

B quyida B1 bilan uzun zanjirni ochib, bu zanjir tugallangandan so'ng, oxirgi kvadratni (lar) olgan kishi zanjirni ochishi kerak. Bizning 2-qoidamizga ko'ra, B o'yinchisi nazoratni olish / ushlab turish qimmatga tushishi uchun B8 bilan keyingi loopni ochadi. Ushbu strategiya ishlaydi, chunki loopda nazoratni olish / saqlash A o'yinchisi uchun mantiqqa to'g'ri kelmaydi, chunki u 4 qutiga tushadi, lekin oxirgi zanjirda faqat 3 qutisini yutadi.
+---+---+---+---+A14+ | B1 A13 B8 | | +A2-+A12+---+A9-+B15+ | | A11 A10 | | +A3-+---+---+---+B16+ | A4 A5 B7 | | +---+---+---+A6-+B17+
Hisob A:B = (4+6+0):(2+0+3) = 10:5
Agar A birinchi zanjirda DD:
+---+---+---+---+B14+ | B1 B13 A8 | | +A2-+B12+---+B9-+A15+ | | B11 B10 | | +A3-+---+---+---+A16+ | A4 A5 A6 | | +---+---+---+A7-+A17+
o'ynamasa, A:B = (6+0+3):(0+6+0) = 9:6 A uchun yomon bo'ladi. Buning sababi shundaki, ochilgandan keyin loopda (yuqorida B9) 6-3=3 ochkoga teng va birinchi uzun zanjirda nazoratni qo'lga olish atigi 2 ochko turadi, shuning uchun birinchi zanjirda nazoratni o'z zimmasiga olish kerak. 10:5 A o'yinchisi uchun 9:6 dan yaxshiroq.
1 va 2 holatlarini va 11:4 va 10:5 hisoblarini taqqoslaganda, B o'yinchisi avval uzun zanjirni ochishi kerakligi aniq. Buning sababi shundaki, agar B birinchi bo'lib uzilgan chiziqli zanjirni ochsa, unda loop oxirgi marta yakunlanadi, ya'ni A o'yinchisi nazoratni saqlab qolish uchun DDD o'ynashda 4 ochko to'lashi shart emas. Biz oldingi 2-qoidamizni buzamiz. Umuman olganda, agar uzilgan zanjirda m qutilari bo'lsa, bog'langan chiziqli zanjirda n qutilar va loopda p qutilari bo'lsa, unda B o'yinchisi uzilgan zanjirni ochib, avval B 4 marta DD'dan 2 ball beradi, B biriktirilgan chiziqli zanjirni ochganda B oladi
min (p + maks (0,m-4),min (6,m + 2))
ko'p fikrlar. Bu olishi mumkin bo'lgan eng past qiymat p eng past qiymatga ega bo'lsa, bu 4 (loop kamida 4 qutiga ega) vam eng past qiymatiga ega bo'lsa, bu 3 (eng qisqa uzun chiziqli zanjir, agar eng qisqa zanjirda faqat 2 qutisi bo'lsa, ular darhol Hard-Hearted Handout bilan o'ynaladi va formula boshqacha bo'ladi). p = 4 va m = 3 uchun B o'yinchisi oladi
min(4 + max(0,-1),min(6,5)) = min(4+0,5) = 4
va p > 4 yoki m > 4 uchun B o'yinchisi 4 ochkodan ko'proq ball oladi.

Agar turli zanjirlar bir xil eng past qiymatga ega bo'lsa, bizning dasturimiz bog'langan zanjirni ochish uchun qoidadan foydalanadi. Orqasida fikr shundaki, ushbu ochiq zanjir orqali nazoratni olish / ushlab turish faqat qimmatroq bo'lishi mumkin bo'lgan loop kirish imkoniyati mavjud.
O'yinlarda odatda so'nggi o'yinning boshida DD / DDD orqali nazoratni o'z zimmasiga oladi. Ammo 3 qutilari va 8 qutisidan kam bo'lgan looplar bilan ko'p zanjirlar bo'lsa, DD / DDD o'ynashni va nazoratni olmaslik yaxshi bo'lishi mumkin. Shuning uchun bizga nafaqat bosh qoida emas, balki umumiy algoritm kerak.

Dots o'yini bo'yicha adabiyotlarda, DD / DDDning birinchi o'yini nazorat qilish . deb ham ataladi. Bu nimani anglatadi, o'yinchi so'nggi uzun zanjirni kim oladi, bu o'yinni nazorat qilish va quyida ko'rib chiqamizki, DD / DDD o'ynab, uni g'alaba qozonish bilan bir xil bo'lmasligi mumkin.
Agar o'yinchi DD / DDD imkoniyatiga ega bo'lsa, unda bu o'yinchi 2 ochko (DD) yoki 4 ochko (DDD) narxida raqib bilan rollarni almashtirish imkoniyatiga ega. Agar qolgan zanjirlarda maqbul o'ynashdan olinadigan hisobni bilsangiz, u holda 2 (agar hozirgi vaqtda o'ynalgan zanjir chiziqli bo'lsa) yoki 4 qiymati (agar hozirgi vaqtda o'ynalgan zanjir loop bo'lsa) qiymatida rollarni almashtirish maqsadga muvofiqmi yoki yo'qligini hal qilish mumkin. Joriy zanjirdan daromad olish bilan birgalikda joriy zanjirni ochishdan oldin hisobni aniqlash mumkin. Ushbu hisob-kitob ochilgan zanjirlar ketma-ketligini bilsangiz, o'yin oxiridan boshlab orqaga qarab amalga oshirilishi mumkin. Bunday ketma-ketlik yuqoridagi 4-qoida bilan aniqlanishi mumkin.
Qoida 5: Quyidagi psevdo-koddan foydalanib DD / DDD yoki qilmaslik to'g'risida qaror qabul qiling.
Quyidagi psevdo-kompyuter kodida o'zgaruvchi A - keyingi zanjirni ochgan o'yinchi tomonidan o'yinning qolgan qismida olingan ochkolar soni, B o'zgaruvchisi esa boshqa o'yinchi tomonidan olingan ochkolar soni. Qolgan qutilar soni A + B. Biz orqaga qarab hisoblaymiz va qulaylik uchun zanjirlarni orqaga qarab belgilaymiz: o'yinda oxirgi ochilgan zanjir 1 zanjiri, undan oldingi zanjir 2 zanjir va hokazo. Hozirgi zanjir k zanjiri. Har qanday zanjir j n_j qutiga ega. PlayDD o'zgaruvchisi DD / DDD j zanjirida o'ynaydimi yoki yo'qligini qayd qiladi.
Quyidagi psevdo-kod satr(lar)
- (1)-(3) oxirgi zanjirni natijasida 3 o'zgaruvchisini ishga tushiradi.
- (4)-(22) update A, B, playDD for chain j, where j runs backwards from the lastbut but one chain (j=2) to present chain k.
- (5)-(13) if chain j is linear the cost is 2
- (14)-(22) if chain j is a loop the cost is 4
- (6)-(9), (15)-(18) if the gain B−A is larger than the cost (2 or 4) then play DD and reduce B by the qiymati va uni A ga qo'shing. Har qanday holatda B olish n_j.
(1) A = 0 (2) B = n_1 (3) playDD = yolg'on (4) j dan 2 gacha bo'lgan har bir zanjir uchun k: (5) Agar zanjir j chiziqli: (6) Agar B > (A + 2): (7) playDD = haqiqiy: (8) B = B + n_j - 2 (9) A = A + 2 (10) Aks holda: (11) playDD = yolg'on: (12) B = A + n_j (13) A = B (14) Aks holda → Agar zanjir j - halqa: (15) Agar B > (A + 4): (16) playDD = haqiqiy (17) B = B + n_j - 4 (18) A = A + 4 (19) Aks holda (20) playDD = yolg'on (21) B = A + n_j (22) A = B
Hisoblashdan so'ng A - joriy zanjirni ochgan oʻyinchining hisobi B - raqib uchun hisob va playDD raqib hozir DD / DDD kerakmi yoki yo'qligini aytadi. ∎ (5-qoidaning oxiri)
Ushbu psevdokod dasturchi bo'lmaganlar uchun qiyin bo'lib tuyulishi mumkin, ammo uni boshida bajarish oson, chunki bu faqat nazoratni saqlashning foydasi uning qiymatidan, ya'ni DD / DDD narxidan ustunligini tekshirishni anglatadi.

Biz bilamizki, eng past qiymat zanjirlari birinchi bo'lib ochiladi. Bu DD / DDD o'yin oxiriga qadar yanada foydali bo'ladi deganimi?

Deyarli barcha holatlarda, ha. Ammo biz 6-misolda, 2-holatda ko'rdikki, ba'zi past qiymatli zanjirlar faqat yuqori qiymatli chiziqli zanjirlar tugagandan keyin kirish mumkin. Natijada, loop ochilganda DDD uchun etarli rag'bat bo'lmasa-da (oxirgi zanjirda faqat 3 quti bor edi, DDD esa 4 qutiga tushadi), rag'batlantirish faqat 2 qiymatiga ega bo'lgan oldingi DDni uchun etarli edi.

Faraz qilaylik, kimdir DD / DDD o'ynashni to'g'ri baholamoqda. Ular uni o'ynashga va oxirgi zanjirni olishga qaror qilishadi.

Yo'q. Masalan, har biri 3 qutiga ega bo'lgan 5 ta chiziqli zanjirimiz bor. Oxirgisini olish 3 qutisini rag'batlantiradi, bu 3 DD uchun to'lash uchun etarli bo'lib, har biri 2 narxiga ega bo'lib, 1 qutini oladi. Bu shuni anglatadiki, birinchi zanjir umuman tugallanadi va yana 3 DD o'yinlari hisob beradi (3 + 2 + 2 + 2 + 0) : (0 + 1 + 1 + 1 + 3) = 9:6 oxirgi zanjirni olmagan o'yinchi uchun.

Yo'q. Katta taxtada 0-qutilar va 1-qutilar orqali bog'langan ko'plab zanjirlar mavjud bo'lsa, ulardan bir nechtasi bir xil miqdordagi qutilarga ega bo'lishi mumkin va keyin boshqa zanjirlar keyinchalik birinchi zanjirlarni tugatish orqali kirish mumkin bo'lgan optimal birini tanlash uchun yanada aniqlangan nazariya yoki qidirish kerak bo'lishi mumkin.

Qoida 6: Birinchi o'yinchi nuqtalar sonini + uzun chiziqli zanjirlar sonini teng qilishga harakat qilishi kerak, ikkinchi o'yinchi esa bu qiymatni toq qilishga harakat qilishi kerak.

Boshlash uchun ba'zi o'zgaruvchilarni kiritamiz, bu erda '#' 'raqam' degan ma'noni anglatadi:
NT = # burilishlar (# marta o'yinchi ketma-ket harakatlar o'ynagan)
nd = # nuqta
r = # nuqta satrlari
c = # nuqta ustunlari
nl = # satrlar soni
Qutilar nb = #
uzun zanjirlarning nc = #
nz = # end o'yinda birinchi uzun zanjirni ochgan burilish

nb = (r−1)(c−1) = rc − r − c + 1
nd = rc
nl = # gorizontal chiziqlar + # vertikal chiziqlar
= r(c−1) + c(r-1)
= 2rc − r − c
va shuning uchun
nl = nb + nd -1 .
Bu munosabat Eulerning o'zboshimchalik grafiklar uchun amal qiladigan identifikatsiyasiga teng, ya'ni har qanday sonli nl chiziqlar bilan bog'langan har qanday sonli n, nafaqat vertikal va gorizontal ravishda, atrofdagi nf yuzlari, bu erda bizning holatimizda nf = nb + 1, chunki bizning to'rtburchak nuqta panjaramiz qo'shimcha atrofdagi yuzga ega bo'lib, u ham Eulerning identifikatorida hisobga olinadi:
nl − nd + 2 = nf (= nb + 1).

nt = nl − ((# marta chiziq chizish kamida 1 qutini to'ldirgan)
− 1 {Eng so'nggi qutini to'ldirish boshqa harakat bermaydi.})
= nl − (nb − (# 2 qutini to'ldiradigan harakatlar) − 1)
= nl − nb + 1 + (# 2 qutini to'ldiradigan harakatlar)
= nd {bizning oldingi munosabatimizdan foydalangan holda nl = nb + nd -1}
+ (# DD chiziqli zanjirlarda) + (# looplar) + (# DDD in loops)
Oxirgi qator loopni tugatganda oxirgi harakat har doim ikkita qutini yakunlaydi va agar DDD loopda o'ynalsa, boshqa harakat 2 qutini ham yakunlaydi. Biz olingan munosabatni chaqiramiz
Navbatlar soni formula:
nt = nd + (# DD, chiziqli zanjirlarda) + (# looplar) + (# DDD in loops)
Bu hech qanday taxminlarga asoslanmagan aniq formuladir.

Oxirgi o'yinda birinchi uzun zanjir ochilgandan so'ng, agar DD va DDD o'ynamagan bo'lsa, qolgan burilishlar soni uzun zanjirlar soniga teng bo'ladi, chunki har bir o'yinchi bitta zanjirni tugatadi. Shuning uchun, agar (# DD) = (# DDD) = 0 bo'lsa
nz {# oxirida birinchi uzun zanjirni ochadigan burilish}
= nd + (# loops) − (# uzun zanjirlar)
= nd − (# uzun chiziqli zanjirlar)
DD / DDD ijro etilsa, nz uchun formula ham amal qiladi.
Matnlanishi:
DD / DDDning har qanday o'yini ilgari sodir bo'lgan narsalarni o'zgartira olmadi, ya'ni oxirigacha birinchi uzun zanjirning ochilishiga olib keladigan nz burilishlari. O'ynagan har bir DD va DDD uchun, endgamedagi burilishlar soni 1 ga oshadi (iltimos, tekshiring), shuning uchun oxiridagi burilishlar sonini burilishlarning umumiy sonidan olib tashlaganda, keyin (# DD) va (# DDD) har biri bekor qilinadi va biz NZ uchun bir xil qiymatni olamiz, go'yo hech qanday DD / DDD o'ynamaydi.
Shunday qilib, hech bir o'yinchi bu harakatni amalga oshirishni xohlamaydi, ya'ni birinchi o'yinchi nzning g'alati bo'lishini istamaydi va shuning uchun nz teng bo'lishini xohlaydi. 2×(# uzun chiziqli zanjirlar) teng sondir, shuning uchun uni nz-ga qo'shish nzning toq yoki hatto bo'lishini o'zgartirmaydi, natijada
Long Chain Rule: Birinchi o'yinchi (# nuqta) + (# uzun chiziqli zanjirlar) qilishga harakat qiladi, ikkinchi o'yinchi esa uni odd qilishga harakat qiladi. ∎

DOTS o'yini bo'yicha ba'zi nashrlarda Uzoq zanjir qoidasini olish uchun ikkita keraksiz taxmin qilingan.
1. Taxmin: Agar ikkala o'yinchi ham endgameni maqbul o'ynasa, kim oxirgi harakatni o'ynasa, oxirgi va eng katta zanjirning yuqori qiymati va yana harakat qilish va raqib uchun boshqa zanjir ochish shart emasligi sababli g'alaba qozonadi.
Shunday qilib, birinchi o'yinchi nt = (# of turns) birinchi va oxirgi harakatni amalga oshirish va g'alaba qozonish uchun g'alati bo'lishini xohlaydi.
2. Taxmin: Oxirgi zanjirdan tashqari barcha uzun zanjirlar DD / DDD bilan o'ynaladi. Shunday qilib, (# looplar) + (# of DDD in loops) teng va e'tiborsiz qoldirilishi mumkin va nt = nd + (# of DD) bo'ladi nt = nd + (# uzun chiziqli zanjirlar) − 1. Shuning uchun birinchi o'yinchi bu nt oxirgi harakatni amalga oshirish uchun g'alati bo'lishini istaydi, bu qachon (# nuqta) + (# uzun chiziqli zanjirlar) teng bo'ladi - Uzoq zanjir qoidasi. ∎
Ammo biz bilamizki, bu 2 taxmin Uzoq zanjir qoidasi haqiqat bo'lishi uchun zarur emas. Keyingi misol buni namoyish etadi.

Uzoq zanjir qoidasi oxirida birinchi ochilgan uzun zanjirda qaysi o'yinchi birinchi bo'lib o'ynashini hal qilish uchun zarur va etarli shartni beradi. Ushbu futbolchi P DD / DDD yoki DDD o'ynashni tanlashi mumkin. Bizda 2 ta holat bor.
Agar birinchi uzun zanjir chiziqli bo'lsa , unda kamida 3 qutisi bor va DD 2 qutiga teng.
• Agar DD uchun rag'batlantirish <2 bo'lsa, u holda P o'yinchisi DD o'ynamaydi va butun birinchi zanjirni oladi va raqib qolgan zanjirlardan eng ko'pi bilan 1 ta qutini oladi, shuning uchun P endgameda raqibdan kamida 3−1 = 2 ko'proq qutini oladi.
• Agar rag'batlantirish 2 bo'lsa, u holda P DD o'ynaydi yoki birinchi uzun zanjirda DD o'ynamaydimi va shuning uchun endgameda ≥3 quti ko'proq yutadi.
• Agar rag'batlantirish >2 bo'lsa, P DD o'ynaydi va oxirida >3 quti ko'proq oladi.
Agar birinchi uzun zanjir loop bo'lsa , unda eng yomon holatda birinchi zanjirda 4 quti mavjud va rag'batlantirish 4 bo'ladi va keyin DDD o'ynaydimi yoki yo'qmi, har ikkala o'yinchi ham endgameda bir xil miqdordagi ochkolarni oladi. Ammo agar rag'batlantirish >4 bo'lsa, unda DDD ko'proq ball beradi va agar rag'batlantirish <4 bo'lsa, DDD o'ynamaslik ko'proq ball beradi, chunki loopda kamida 4 quti mavjud. Va agar birinchi uzun zanjir 4 dan ortiq qutiga ega bo'lgan halqa bo'lsa, P bu qo'shimcha ochkolarni oxirgi o'yinda ustunlik sifatida oladi, hatto rag'batlantirish 4 bo'lsa ham.

• Agar 1-zanjirlar soni teng bo'lsa va chiziqli 2-zanjirlar soni teng bo'lsa, unda endgame boshidagi ball farqi nolga teng.
• Agar 1-zanjirlar soni juft bo'lsa va chiziqli 2-zanjirlar soni toq bo'lsa, unda endgame boshidagi hisob 2 bo'ladi.
• Agar 1-zanjirlar soni toq bo'lsa, unda barcha 1-zanjirlarni tugatgandan so'ng, ball farqi 1 bo'ladi. Keyin har bir tugallangan 2-zanjir faqat 1 qutiga etakchilik qilayotgan ikkala o'yinchi o'rtasida aylanib ketadi.




Keyingi o'yinchi A o'yinni boshlaydi. Ushbu taxtada 5×3 = 15 ta harakat toq sonli bo'ldi. 16-harakat biz chiqargan formulani qondiradigan birinchi uzun zanjirni ochadi: 16 = (# nuqta) − (# chiziqli uzun zanjir) = 20 − 4. Kim bu harakatni qilsa, bu holda B o'yinchisi, agar A o'yinchisi DDni to'g'ri o'ynasa, yutqazadi.
+-B-+ + + + | | | | | + + + + + | | | | | + + + + + | | | | | + + + + +
A o'yinchisi boshlandi va B o'yinchisi zanjirni ochishi kerak edi.

Agar A DDni 3 marta o'ynasa, yakuniy hisob A:B = 6:6.
+---+---+---+---+ | A | A | A | A | +---+---+---+---+ | B | B | B | A | +---+---+---+---+ | B | B | B | A | +---+---+---+---+
So'nggi 3 zanjirdagi hisob 5:4, shuning uchun birinchi zanjirda DD va bir ochko olish uchun 2 ball bilan to'lash optimal emas.

A uchun butun birinchi zanjirni olib, A:B = 7:5 yakuniy hisobini olish yaxshiroqdir.
+---+---+---+---+ | A | B | B | B | +---+---+---+---+ | A | A | A | B | +---+---+---+---+ | A | A | A | B | +---+---+---+---+

Ikkala taxmin ham buzilgan. A g'alaba qozonmoqda, lekin so'nggi zanjirni ololmaydi. DD har bir uzun chiziqli zanjirda o'ynalmaydi.

Biz (# nuqta) + (# uzun chiziqli zanjirlar) = 20 + 4 = 24 bo'ladi, bu teng va birinchi o'yinchi qoida bashorat qilganidek g'alaba qozonadi. Shunday qilib, bu qoida keraksiz taxminlar va noto'g'ri talqinlar bilan muqobil isbotdan yaxshiroqdir.


Yo'q, ikkalasi ham bir xil darajada yaxshi bo'lishi mumkin. 3 qutili faqat ikkita uzun zanjir bilan A A:B = 4:2 hisobini berib DD kerak.
+-B-+ + +---+---+ | | | | A | A | + + + +---+---+ | | | → | B | A | + + + +---+---+ | | | | B | A | + + + +---+---+
Shunday qilib, bu ikki zanjirdan oldin DD uchun rag'bat 4 − 2 = 2 bo'lib, bu DD narxiga teng. Shuning uchun ikkala pyesa ham bir xil hisobni beradi: A:B = (0+1+3):(3+2+0) = 4:5 = (2+2+0):(1+1+3)
+---+---+---+ +---+---+---+ | B | A | A | | B | B | B | +---+---+---+ +---+---+---+ | B | B | A | = | A | A | B | +---+---+---+ +---+---+---+ | B | B | A | | A | A | B | +---+---+---+ +---+---+---+


Ha. Yuqorida 3 qutili zanjirni qo'shish hisobni 4:2 dan 4:(2+3) = 4:5 ga qanday o'zgartirganini ko'rdik. Ushbu 3 zanjirdan oldin DD uchun rag'batlantirish 5−4 = 1 < 2 bo'ladi, shuning uchun DD qiymatidan kamroq bo'ladi, bu 2. Shunday qilib, 3 qutidan iborat to'rtta zanjir bilan birinchisi DD bilan o'ynamaydi. Agar 3 qutili yana bir zanjir bo'lsa, hisob (4+3):5 = 7:5 = (4+1):(5+2) bo'ladi, shuning uchun 3 qutidan iborat 5 zanjirda ikkinchi o'ynashga rag'batlantirish 7−5 = 2 bo'ladi, shuning uchun DD har ikkala holatda ham (2+5):(1+7) = 7:8 = 7 bo'ladi: (3+5).
+-B-+---+---+---+ | A | B | B | B | +---+---+---+---+ | A | A | A | B | +---+---+---+---+ | A | A | A | B | +---+---+---+---+
3 qutilari bilan ko'proq zanjirlar qo'shib DDning o'yini va o'ynamasligi o'rtasida ko'proq o'zgarishlar bo'lishi mumkin.

O'quvchi Uzoq zanjir qoidasini looplarni o'z ichiga olgan ko'proq misollar bilan tekshirishga da'vat etiladi.

On this website by David Wilson the following position is shown which has just one move for the next player to win.
+ + + + | + + +---+ +---+---+---+ | + +---+ +

Ushbu kengashda teng sonli nuqta va hatto uzun zanjirlar soni mavjud. So'nggi uzun zanjirda DD harakati o'ynalmaydi, shuning uchun DD harakatlarining odd soni odatda o'ynaladi va shunday qilib # of points + # of DD odd shuning uchun burilishlar soni odd bo'ladi, shuning uchun birinchi o'yinchi oxirgi zanjirni oladi va g'alaba qozonadi. Bu "Uzoq zanjir qoidasi" ga mos keladi: "Birinchi o'yinchi # nuqta + # uzun (chiziqli) zanjirlarni teng qilishga harakat qilishi kerak va ikkinchi o'yinchi uni g'alati qilishga harakat qilishi kerak."

2-o'yinchi nuqtalar sonini o'zgartira olmaydi, aksincha 2 qutini qurbon qilish va B deb belgilangan harakatni orqali DD harakatlari sonini o'zgartira olmaydi, bu 2-o'yinchining bu vaziyatda ega bo'lgan yagona g'alaba qozongan harakatidir:
+ + + + | + + +---+ +---+---+---+ | B + +---+ +
Bu harakat uzun zanjirlar sonini 2 dan 1 ga kamaytiradi va shunday qilib, # nuqta + # uzun (chiziqli) zanjirlarni toq qiladi va shunday qilib 2nd o'yinchiga bir ochko bilan g'alaba qozonishga imkon beradi bir ochkoga yo'qotish.

Quyidagi variantlarning barchasi A:B = 4:5 ga olib keladi, shuning uchun B uchun 1 ochko g'alaba.
+A8-+B4-+A5-+ B9 | B13 B14 +A3-+A12+---+ A11 B10 B15 B16 +---+---+---+ | B A2 A7 +A1-+---+B6-+ +A5-+A10+B6-+ B13 | B9 A11 +A12+A3-+---+ B4 B14 B15 B16 +---+---+---+ | B A2 B8 +A1-+---+A7-+ +A5-+B4-+B6-+ A10 | B13 B14 +B9-+A13+---+ A11 A3 B15 B16 +---+---+---+ | B A2 B8 +A1-+---+A7-+

1-qoidaning bu buzilishi DD o'ynashdan kam g'alati emas. Yuqorida bilib olganimizdek, rollarni almashtirish uchun DD va 2 ball narxini to'lash odatiy holdir. Shunday qilib, bu qurbonlik DD harakati bilan bir xil ta'sirga ega bo'lsa, minimal va yaxshi.
Ushbu sahifaning yuqoridagi qismida texnik atamalar joriy etildi va qoidalar ishlab chiqildi. Endgame batafsil tavsiflangan va o'yinning birinchi qismi uchun Uzun zanjir qoidasi yo'l-yo'riq beradi. Agar siz o'yinning birinchi qismi haqida ko'proq ma'lumotga ega bo'lishni istasangiz, iltimos, havolalarda [2] va [3] ni tekshiring. Quyidagi qarorlar daraxti ushbu veb-sahifani umumlashtiradi.

Quyidagi havolalar ishlashi uchun yuqoridagi matnni tugmasini bosish kerak
- Agar kamida bitta 3-quti (to'ldirilishi mumkin bo'lgan quti) bo'lsa, unda ushbu 3-qutilarga biriktirilgan barcha zanjirlarni aniqlang.
- Agar ushbu zanjirlardan biri chiziqli bo'lsa va kamida 2 qo'shni qutiga ega bo'lsa, unda ushbu chiziqli zanjirning bu ikkita qo'shni qutisidan tashqari barcha chiziqli va barcha loopy ochiq zanjirlardan barcha qutilarni to'ldiring. Keyin DD va DD yoki oxirgi 2 qutini to'ldirish yoki to'ldirishni tahlil qiling.
- Agar barcha ochiq zanjirlar uzunligi 1 bo'lsa yoki loopy bo'lsa, avval uzunligi 1 bo'lgan barcha ochiq zanjirlarni to'ldiring va agar kamida bitta ochiq loopy zanjir bo'lsa, ochiq loopy zanjirlardan birining oxirgi 4 qutisidan tashqari barcha ochiq loopy zanjirlarni to'ldiring. Keyin DDD yoki oxirgi 4 qutini to'ldirishni tahlil qiling.
- Agar toʻldirib boʻladigan kataka boʻlmasa, u
- Agar har bir harakat 3-qutini yaratsa, unda
- Agar eng qisqa zanjir 2-zanjir
+---+---+ +---+---+
bo'lsa, unda 2 chizilmagan chiziqlar har qanday joyda bo'lishi mumkin, lekin bir xil qutida bo'lmasligi mumkin, unda erishish uchun o'rtada o'ynang (bu holda):+---+---+ | +---+---+
- Aks holda, keyingi zanjirni aniqlang va bu zanjirning istalgan joyida o'ynang.
- Agar eng qisqa zanjir 2-zanjir
- Agar 3-qutini yaratmaydigan harakat bo'lsa, unda
- agar o'yinda eng ko'pi bilan 1 uzun zanjir (chiziqli yoki loopy) bo'lsa, masalan, nuqta to'rtburchak kichik yoki ingichka bo'lgani uchun, unda hech qanday DD / DDD harakatlari o'ynalmaydi va keyin oxirgi navbatni olgan o'yinchi g'olib chiqadi va Turn soni formula tufayli birinchi o'yinchi # nuqta + # loops toq va ikkinchi o'yinchi juft qilishga harakat qilishi kerak. Nuqtalarning # soni sobit bo'lganligi sababli, faqat teng mos ravishda toq sonli looplarni olishga harakat qilish mumkin. Agar bu imkonsiz bo'lsa, unda birinchi bo'lib kim o'ynaydi o'zgartiring.
- agar o'yinda kamida ikkita uzun zanjir bo'lishi aniq bo'lsa, lekin qancha ekanligi aniq bo'lmasa, unda Long Chain Rule ga rioya qiling va birinchi o'yinchi sifatida # nuqta + # uzun chiziqli zanjirlar juft va ikkinchi o'yinchi sifatida summani odd qilishga harakat qiling, aks holda
- agar o'yinda qancha uzun chiziqli zanjirlar paydo bo'lishi aniq bo'lsa va agar Uzoq zanjir qoidasi o'yinni yo'qotishni bashorat qilsa, unda uzun chiziqli zanjirlar sonini kamaytirish uchun qurbonlik harakatini o'ylab ko'ring.
- Agar har bir harakat 3-qutini yaratsa, unda

[1] Vikipediya: Nuqta va qutilar, boshqa havolalarga qarang.
[2] Berlekamp, Elwyn R.; Konvey, Jon H.; Guy, Richard K. (1982), 'Chapter 16: Dots-and-Boxes', Winning Ways for your Mathematical Plays, Volume 2: Games in Particular, Academic Press, pp. 507–550.
[3] Berlekamp, Elwyn (2000), The Dots-and-Boxes Game: Sophisticated Child's Play, AK Peters, Ltd, ISBN 1-56881-129-2.
[4] Wilson, Devid, Dots-and-Boxes tahlil natijalari, Viskonsin universiteti

Quyidagi havolalar ishlashi uchun yuqoridagi matnni tugmasini bosish kerak
- # ...
- soni ...
- Box
- burchak sifatida 4 qo'shni nuqta bilan kichik kvadrat
- ?-Box
- 0-box, 1-box, 2-box, 3-box, 4-box - 0, 1, 2, 3, 4 tomonlari chizilgan qutilar.
- Zanjir
- bog'langan 2-qutilar dan tashkil topgan ketma-ketlik. linear zanjirlar va loopy zanjirlar mavjud.
- Double-Crossed Move
- bir vaqtning oʻzida ikkita qoʻshni qutini yakunlaydigan harakat. Double Dealing harakatidan so'ng chiziqli zanjirda yoki loop tugagandan so'ng darhol o'ynaladi.
- DD
- abbreviation of Double Dealing
- DDD
- abbreviation of Double Double Dealing
- Double Dealing
- a move leading to
- Double Double Dealing
- a move in middle of an open loop with 4 remaining boxes, createing, example,
+---+---+ +---+---+---+---+ | | | | | +---+---+ yoki +---+---+---+---+ yoki | | +---+---+ +---+---+ +---+---+---+ | | | | | +---+---+---+ yoki +---+---+ + | | | | +---+---+ +---+
- Endgame
- keyingi harakatda 3-quti yaratish muqarrar bo'lganda boshlanadi o'yinning yakuniy bosqichi
- Euler's identity
- a general relation for any graph in the plane, not only the Dots game, where lines are not cross: (# satrlar) − (# nuqta) + 2 = (# yuzlar) bu erda yuzlar "tashqi yuzni" o'z ichiga oladi, shuning uchun biz uchun (# yuzlar) = (# qutilar) + 1.
- Graph
- matematikada bir qator nuqtalar bir qator chiziqlar bilan bog'langan tushuncha
- Hard-Hearted Handout
- Drawing the middle line in
+---+---+ +---+---+ +---+---+ yoki | yoki | | +---+---+ +---+ + + + +
or rotated and mirrored versions of them result result in+---+---+ +---+---+ +---+---+ | yoki | | yoki | | | +---+---+ +---+ + + + +
or rotated and mirrored versions of them- Yarimparvoz tarqatma material
- zanjir chegarasida chiziq chizish ikki quti bilan
ga olib boruvchi+---+---+ +---+---+ | yoki | | +---+---+ +---+ +
- Chiziq
- ikkita qo'shni nuqtani gorizontal +---+ yoki vertikal bog'laydigan chiziq segmenti
- Chiziqli zanjir
- 2 uchi bo'lgan zanjir, to'g'ri shart emas
- Uzun zanjir qoidasi
- Birinchi o'yinchi # nuqta + # dan uzun zanjirlar juft qilishga harakat qilishi kerak, ikkinchi o'yinchi esa bu qiymatni odd qilishga harakat qilishi kerak.
- Uzun zanjir
- ≥ 3 qutili zanjir
- Loony harakati
- raqibga qurbonlik qilish imkoniyatini beradigan harakat
- Loop
- abbreviation for loopy chain
- Loopy chain
- a chain without ends
- Move
- chizish line
- Aylanishlar soni Formula
- an aniq formula Uzun zanjir qoidasi uchun asos bo'lgan va birinchi o'yinchi bo'lish yoki yo'qligini hal qilish uchun kam sonli nuqtalar uchun foydali bo'lgan o'yindagi burilishlar sonini beradi
- Zanjirni ochish
- zanjir ichida yoki uning uchlaridan birida (agar u chiziqli zanjir bo'lsa) harakatni amalga oshirish va shu bilan 3-quti yaratish.
- Qoida 1
- Eng aniq o'yin - raqib uni yakunlab olishi mumkin bo'lgan 3-quti yaratishdan saqlanishdir.
- Qoida 2
- Zanjirlarni buyurtma qilish uchun oxirgi zanjir uchun eng katta uzun chiziqli zanjirni oling va agar uzun chiziqli zanjir bo'lmasa, eng katta loopni oling.
- Qoida 3
- Agar oxirida barcha qutilarda kamida 2 tomon chizilgan bo'lsa, boshqa barcha zanjirlarni buyurtma qilish uchun ularni (# qutilar) − 2 (agar loop bo'lsa) bo'yicha saralang.
- Qoida 4
- Keyingi o'yinchi uchun qiymat bo'yicha tartiblangan zanjirlar ketma-ketligini yaratish uchun, eng past qiymatni birinchi bo'lib butun taxta tugaguniga qadar harakatlar ketma-ketligini bajaring (text ga qarang).
- Qoida 5
- DD/DDD yoki qilmaslikni hal qilish uchun taqdim etilgan psevdo-koddan foydalaning (text ga qarang.
- Qoida 6
- {}Uzun zanjirli qoida
- Nazoratni olish
- DD/DDD bilan bir xil bo'lib, bu muhim yon ta'siri sifatida keyingi zanjirlarda DD/DDD o'ynashni takrorlash imkoniyatini beradi
- Turn
- bir o'yinchining ketma-ket harakatlari ketma-ketligi
Follow or subscribe for updates: