300000
Tổng số trận thắng: 33069
Chấm
Nếu bạn chỉ quan tâm đến việc lựa chọn nước đi nào để chơi mà không phải tại sao thì hãy chuyển sang phần 'Cây quyết định' ở phía dưới. 'Mục lục' bên dưới liệt kê tất cả các thuật ngữ xuất hiện trong trò chơi và có vai trò như một phần giới thiệu nhanh.


A ô là một hình vuông nhỏ có 4 chấm cạnh nhau tạo thành các góc. Một ô có thể có 0, 1, 2, 3, 4 mặt và được gọi là ô 0 cạnh, ô 1 cạnh, ô 2 cạnh, ô 3 cạnh, ô 4 cạnh.
A đoạn là đoạn thẳng liên kết hai dấu chấm cạnh nhau.
Vẽ xong một đường còn được gọi là Thực hiện một lượt chơi.
Nếu có một đường thẳng ngăn cách giữa ô 2 cạnh và ô 3 cạnh thì khi bạn vẽ đường thẳng ấy, bạn sẽ làm được 3 điều: bạn sẽ hoàn thành ô 3 cạnh và ghi được một điểm, bạn sẽ đổi ô 2 cạnh thành ô 3 cạnh và được đi thêm lượt nữa để hoàn thành ô 3 cạnh mới. Loại "Phản ứng dây chuyền" này rất thường xuyên xảy ra.
Tất cả ô 2 cạnh được kết nối tạo thành một chuỗi. Một chuỗi có thể có 2 đầu và sau đó được gọi là chuỗi tuyến tính, cho dù chuỗi đó có phải là một đường thẳng hay không, như
Một chuỗi không có đầu được gọi là chuỗi vòng lặp hoặc đơn giản là vòng lặp , cho dù nó có giống hình tròn hay không, như thế này
+---+---+---+ | | + +---+ + | | | +---+ + + | | +---+---+
Thực hiện một lượt chơi bên trong một chuỗi hoặc trên một trong các đầu của nó được gọi là mở một chuỗi trong tài liệu toán học về trò chơi này.

Nếu người chơi vẽ một trong các đường chưa vẽ trong chuỗi chẳng hạn như nước đi A1 vào
+---+---+---+ | | + +A1-+ + | | +---+---+
khi đó ít nhất một ô 2 cạnh trở thành ô 3 cạnh (trong trường hợp này vị trí của hai ô là ở trên và ở dưới nước đi A1), người chơi khác có thể nối các ô tiếp theo thành 4 cạnh, và ghi được 1 hoặc 2 điểm, đồng thời chuyển đổi ô 2 cạnh thành ô 3 cạnh (trong trường hợp này vị trí của hai ô là ở bên trái nước đi B1 và bên phải nước đi B2 trong
+---+---+---+ | B1 | + +A1-+ + . | B2 | +---+---+
Mỗi khi hoàn thành một ô, người chơi phải thực hiện lượt chơi khác để hoàn thành ô tiếp theo và cả các ô khác trong chuỗi. Sau khi hoàn thành ô cuối cùng, người chơi phải vẽ 1 đường mới ở vị trí khác trừ khi tất cả các ô trên bảng đã được hoàn thành.

Quy tắc 1: Cách chơi rõ ràng nhất là tránh tạo ra ô 3 cạnh vì đối phương có thể cướp lượt hoàn thành ô đó và ghi điểm. Đây là một quy tắc đơn giản và hữu ích tuy nó không hoàn hảo như chúng ta sẽ thấy ở phần cuối của trang web này. Tại một số thời điểm, khi khoảng một nửa số đường được vẽ, việc tạo ra một các ô 3 cạnh là khó tránh khỏi. Điều gì xảy ra sau đó? Bởi vì các chuỗi có 1, 2 hoặc ≥ 3 ô được hoàn thành khác nhau nên chúng ta phải xem xét chúng riêng lẻ.


+---+ | ? +---+
Câu trả lời là có, người chơi nên ưu tiên làm điều đó. Cho dù người chơi hoàn thành ô và sau đó chơi lượt A hay là không hoàn thành ô và chơi lượt A thì cũng không ảnh hưởng đến những gì đối thủ làm, ngoại trừ bạn hoặc đối thủ hoàn thành được ô, vì vậy tốt hơn hết là bạn nên là người vẽ ô.

Chuỗi có hai ô trông giống như
+---+---+ +---+---+ +---+---+ hoặc | hoặc | | +---+---+ +---+ + + + +
hoặc như các phiên bản xoay chiều và phản chiếu của chúng. Vẽ đường ở giữa thì
+---+---+ +---+---+ +---+---+ | hoặc | | hoặc | | | +---+---+ +---+ + + + +
và được gọi trong tài liệu về trò chơi là Kiểu chơi Mạnh Mẽ .

Câu trả lời là có, người chơi nên hoàn thành cả hai ô vì thông thường người chơi sẽ vẽ xong từng ô theo dây chuyền.
Vẽ một đường thẳng trên đường viền của chuỗi 2 hộp (một trong ba chuỗi 2 hộp được hiển thị ở trên) dẫn đến
+---+---+ +---+---+ | hoặc | | +---+---+ +---+ +
và được gọi là Half-Hearted Handout.
Một động thái trên biên giới của các vị trí trên dẫn đến
+---+---+ | | . +---+---+
Một động thái như vậy được gọi trong tài liệu Giao dịch kép (DD). Để làm rõ, có một sự khác biệt rõ ràng giữa hai nước đi sau:
+---+---+ +---+---+ 1) to | +---+---+ +---+---+
và
+---+---+---+ +---+---+---+ 2) | to | | +---+---+---+ +---+---+---+
mặc dù cả hai chuỗi 2 hộp kết quả đều trông giống nhau. Sự khác biệt lớn là nước đi ở 2) hoàn thành một ô và do đó cho phép người chơi di chuyển lại và chơi DD trong khi dưới 1) không có hộp nào được hoàn thành và do đó người chơi không thể chơi DD ngay sau đó. Trong khi nước đi 2) là nước đi bình thường, nước đi 1) được gọi là Half-Hearted Handout.
Vẽ đường ở giữa để hoàn thành cả hai hộp được gọi là Double-Crossed Move. Một vòng lặp luôn được hoàn thành bằng một nước đi như vậy nhưng trong một chuỗi tuyến tính, nó chỉ có thể xảy ra khi đối thủ thực hiện một nước đi DD để giành quyền kiểm soát như được giải thích bên dưới. Sau một nước đi DD của người chơi A, người chơi tiếp theo B không có lựa chọn nào khác ngoài việc chơi ở giữa, nước đi chéo đôi. Mặc dù nước đi đó sẽ cung cấp cho B 2 hộp, nhưng chi phí sẽ cao hơn nếu B phải chơi tiếp theo trong một chuỗi dài hơn sẽ hoàn toàn chuyển sang A. Trong tình huống như vậy, người chơi B thực hiện một nước đi chéo đôi bị lừa, tức là 'giao nhau kép', do đó tên này cho nước đi đó.

Vẽ một đường DD đồng nghĩa với việc hy sinh 2 ô cho đối phương vì họ có thể vẽ 1 đường ở giữa Bài Mạnh Mẽ và vẽ tiếp ở viền. Nếu bạn muốn biết lý do vì sao có việc hy sinh 2 ô này thì hẵng đọc để tìm hiểu!
Một nước đi như nước đi Half-Hearted Handout trước DD, cho phép đối thủ lựa chọn hy sinh được gọi là một nước đi điên rồ. Động thái điên rồ này có thể và nên tránh. Các động tác lười biếng khác, chẳng hạn như mở một chuỗi với 3 hộp trở lên có thể là không thể tránh khỏi.

Chúng ta hãy xem xét tất cả những khác biệt. Nếu người ta lấy một hộp của chuỗi 2 hộp thì người ta nên lấy hộp thứ hai như chúng ta đã tìm thấy trước đó. Nếu một người lấy cả hai hộp, người đó sẽ nhận được 2 điểm, nhưng sau đó người ta phải di chuyển đến một nơi khác. Điều này có thể tốn kém vì người ta có thể phải mở một chuỗi với nhiều ô cho phép đối thủ lấy nhiều ô vuông hơn. Nếu một người chơi trên đường viền, người ta không hoàn thành một ô vuông và do đó người ta không cần phải chơi ở nơi khác. Nhưng chơi ở biên giới mang lại cho người chơi tiếp theo cả hai ô như vừa thảo luận. Do đó, cả hai vở kịch đều có thể. Chúng ta sẽ quay lại câu hỏi này sau để xác định nước đi nào tốt hơn trong một tình huống nhất định.

Nếu một người chơi vẽ đường ở giữa chuỗi (a Hard-Hearted Handout) thì người còn lại buộc phải hoàn thành cả hai ô và sau đó thực hiện một nước đi khác mạo hiểm hơn.
+---+---+ +---+---+ +---+---+ → | → | | | cùng với việc vẽ đường ở chỗ khác
+---+---+ +---+---+ +---+---+
Nếu người chơi nào vẽ đường ở viền chuỗi (Kiểu chơi Mạnh Mẽ) thì người chơi đó cho đối phương tùy chọn hoàn thành hai ô như trên hoặc vẽ ở viền (nước đi DD):
+---+---+ +---+---+ +---+---+ → | → | | +---+---+ +---+---+ +---+---+
Tùy chọn chơi DD này có thể rất có giá trị vì chúng ta sẽ tìm hiểu sau. Cung cấp cho đối thủ các tùy chọn bổ sung không bao giờ có thể là một động thái tốt hơn, vì vậy nhắm đến lối chơi tối ưu, người ta không bao giờ nên chơi Half-Hearted Handout khi kích hoạt chuỗi 2 hộp. Trong trò chơi vui nhộn không tối ưu, người ta có thể thử các bước di chuyển nửa vời để tìm ra kỹ năng của đối thủ hoặc để gây nhầm lẫn cho đối thủ nếu một người bị tụt lại phía sau (nhưng không phải nếu một người cố gắng chơi tối ưu).

Nếu mở một chuỗi được thì có ít nhất một ô có 3 cạnh. Người chơi có thể hoàn thành tất cả các ô này, nhưng liệu có nên làm vậy không?

Một mặt, chúng tôi muốn lấy càng nhiều hộp càng tốt. Mặt khác, chúng ta có thể không muốn trả giá khi chơi ở nơi khác sau đó và do đó mở ra một chuỗi thậm chí còn lớn hơn để đối thủ thực hiện. Điều chúng ta chắc chắn nên làm là lấy tất cả trừ hai ô như đã được biện minh trước đây, chúng miễn phí, không có tác dụng phụ tiêu cực. Sau đó, chúng ta có thể nghĩ đến việc lấy 2 ô còn lại hoặc chơi DD (Double Dealing). Chúng tôi sẽ nói thêm về điều đó dưới đây.
Chuỗi có ≥ 3 ô được gọi là chuỗi dài. Chúng bao gồm cả hai, chuỗi tuyến tính và chuỗi vòng.

Nếu chỉ còn lại chuỗi dài có ít nhất 3 ô, thì việc mở một trong số chúng, bất kể theo cách nào, đều có nghĩa là trên một mặt của nước đi có ít nhất 2 ô cạnh nhau. Vì vậy, người chơi khác có thể chơi nước Xử lý đôi - điều quan trọng trong việc xác định phần còn lại của trò chơi.

Vòng lặp nhỏ nhất có thể có 4 ô:
+---+---+ | | + + + | | +---+---+

Hãy để chúng tôi thử điều đó. Vòng lặp mở nhỏ nhất có thể là
+---+---+ | | +---+ + | | +---+---+
Tất nhiên chúng ta có thể lấy cả 4 hộp và sau đó chơi ở nơi khác, nhưng điều gì sẽ xảy ra nếu chúng ta muốn tránh chơi ở nơi khác bằng mọi giá? Nếu chúng ta lấy hai hộp, chúng ta sẽ đến
+---+---+ | | | +---+---+ | | +---+---+
nhưng chúng ta sẽ cần phải thực hiện một động tác khác. Vì vậy, chúng tôi không thể dừng lại ở đây vì tất cả các đường biên giới đã được vẽ nên chúng tôi phải tiếp tục đến
+---+---+ | | | +---+---+ | | | +---+---+
và sau đó chúng tôi buộc phải di chuyển đến nơi khác, điều này có thể trao một chuỗi thậm chí còn lớn hơn cho đối thủ.

Chúng ta muốn vẽ mà không phải hoàn thành 1 ô để tránh phải vẽ ở vị trí khác. Cách duy nhất có thể dùng là chơi ở giữa vòng lặp đã mở để tạo
+---+---+ | | +---+---+ . | | +---+---+
Nước đi này không hoàn thành 1 ô và do đó sẽ tới lượt người chơi còn lại. Chúng tôi sẽ gọi nước đi này là Xử lý nhân đôi viết tắt là DDD. Cái giá phải trả là hy sinh 4 ô thay vì 2 ô. Với lượt của đối thủ, tốt nhất họ sẽ hoàn thành 4 ô trước và vẽ ở vị trí khác sau.

Chúng ta có thể hoàn thành bao nhiêu ô tùy thích miễn là sau đó chúng tôi vẫn có thể chơi một nước đi không hoàn thành ô vuông. Điều này có nghĩa là chúng ta có thể hoàn thành tất cả trừ 4 ô, chẳng hạn như mở
+---+---+---+---+ +---+---+---+---+ | | | | | + +---+---+ + ví dụ như cho + +---+---+ + | | | | +---+---+---+---+ +---+---+---+---+
và lấy 8 - 4 = 4 ô cho kết quả, ví dụ:
+---+---+---+---+ | | | | | + +---+---+---+ . | | | +---+---+---+---+
Bây giờ chúng tôi sẽ phải quyết định xem nên lấy 4 ô còn lại hay hy sinh chúng cho đối thủ bằng cách chơi
+---+---+---+---+ | | | | | + +---+---+---+ . | | | | +---+---+---+---+
Tìm hiểu thêm về điều đó sau.

Nếu có chuỗi tuyến tính mở và / hoặc chuỗi vòng mở thì hoàn thành tất cả các hộp của tất cả các chuỗi này ngoại trừ 2 hộp lân cận của một chuỗi tuyến tính mở hoặc, nếu không có chuỗi tuyến tính mở thì ngoại trừ 4 hộp của một trong các chuỗi vòng mở. Sau khi các hộp này được hoàn thành, người ta có thể bắt đầu suy nghĩ xem có nên chơi DD / DDD hay không.
Chúng tôi biết rằng trò chơi bắt đầu với các bước di chuyển ít nhiều ngẫu nhiên ngoại trừ việc cả hai người chơi tránh tạo 3 hộp càng lâu càng tốt, tức là họ tránh mở chuỗi. Khi điều này trở nên không thể tránh khỏi, chúng ta coi đó là sự khởi đầu của endgame.. Chúng tôi bắt đầu giải thích kết thúc trò chơi vì nó là phần dễ nhất trong tất cả các trò chơi.

Giống như tất cả các trò chơi khác, càng về cuối trò chơi, việc dự đoán ai sẽ thắng trong số cách chơi tối ưu càng trở nên dễ dàng hơn. Do đó, chúng tôi bắt đầu phân tích từ phần cuối trò chơi. Trong phần Kết thúc, tất cả các nước đi sẽ là mở chuỗi hoặc hoàn thành ô hoặc là nước đi DD / DDD. : Khi người chơi phải mở một chuỗi thì chiến lược có thể là mở chuỗi nhỏ nhất trong số các chuỗi có sẵn để tới lượt của đối thủ sẽ vẽ được ít ô nhất. Hãy thử cách này trong một vài ví dụ.

Giả sử rằng tất cả các ô đều được hoàn thành ngoại trừ hai chuỗi có 3 và 4 ô:
+ +---+---+ | | | | + +---+---+ | +---+---+---+ +---+---+---+
Người chơi A đang di chuyển tiếp theo sẽ mở chuỗi ngắn hơn (với bất kỳ nước đi nào, như A1) để người chơi B khác giành lấy chuỗi đó và nhận được 3 điểm và A để lấy chuỗi lớn hơn với các ô sau đó với điểm số từ hai chuỗi này là A:B=(0+4):(3+0)=4:3.
+A9-+---+---+ | | | | +A8-+---+---+ | B5 A6 A7 +---+---+---+ B2 A1 B3 B4 +---+---+---+
Nhân tiện, nước đi A1 là những gì chúng tôi đã định nghĩa trước đó là nước đi loony, một nước đi cho phép đối thủ lựa chọn hy sinh. A không thể tránh điều đó ở đây.
Và đây là những gì xảy ra trong sơ đồ tiếp theo. Người chơi B chỉ lấy một ô với nước đi B2 (trong sơ đồ tiếp theo), sau đó chơi Double Dealing với B3. Sau đó, A cần lấy 2 ô với A4, buộc phải mở chuỗi lớn với một số nước đi, như A5, và B nhận được 4 ô còn lại với điểm số cuối cùng là A: B = (2 + 0) :( 1 + 4) = 2: 5.
+B9-+---+---+ | | | | +B8-+---+---+ | A5 B6 B7 +---+---+---+ B2 A1 A4 B3 +---+---+---+Chúng ta thấy rằng trong tình huống này, việc hy sinh hai ô là có lợi cho người ơi B.

Giả sử tất cả các ô đều được hoàn thành ngoại trừ một chuỗi có 3 ô và một vòng lặp có 4 ô.
+---+---+---+ | | | + + +---+ | | | +---+---+---+ +---+---+---+Tới lượt của người chơi A.

Nếu sau nước đi A1, người chơi B hoàn thành hết dây chuyền ô, người chơi A hoàn thành được vòng lặp thì điểm từ hai dây chuyền này là A: B = (0 + 4) : ( 3 + 0) = 4 : 3.
+---+---+---+ | A7 | | +A6-+A8-+---+ | B5 | | +---+---+---+ B2 A1 B3 B4 +---+---+---+
Nếu sau nước đi A1, người chơi B chơi DD thì sau đó
+---+---+---+ | B7 | | +B6-+B8-+---+ | A5 | | +---+---+---+ B2 A1 A4 B3 +---+---+---+điểm từ hai chuỗi này là A: B = (2 + 0) :( 1 + 4) = 2: 5 nên B cũng có lợi khi chơi DD và đạt A: B = 2: 5.

Nếu sau khi người chơi A1 B thực hiện toàn bộ vòng lặp, người chơi A nhận được chuỗi ngắn hơn và điểm số từ hai chuỗi này là A: B = (0 + 3) :( 4 + 0) = 3: 4.
+---+---+---+ | B3 | | +B2-+B4-+---+ | A1 | | +---+---+---+ B5 A6 A7 A8 +---+---+---+
Nếu sau khi người chơi A1 B chơi DDD với B2, chúng ta nhận được
+---+---+---+ | B2 | | +A3-+A4-+---+ | A1 | | +---+---+---+ B6 A5 B7 B8 +---+---+---+và điểm số từ hai chuỗi này là A:B = (4+0):(0+3) = 4:3. Trong trường hợp này, tốt hơn là B KHÔNG chơi DDD và do đó nhận được A: B = 3: 4. Nếu A chơi trong chuỗi tuyến tính ngắn hơn trước thì A chỉ có thể thực thi A: B = 2: 5. Trong khi khi A mở vòng lặp lớn hơn trước, A có thể đạt được kết quả tốt hơn là A: B = 3: 4.

Nếu A phải mở một chuỗi dài (với >2 hộp) thì người chơi B sẽ có tùy chọn chơi DD/DDD khi kết thúc việc lấy các hộp của chuỗi đó và do đó cũng nhận được chuỗi tiếp theo và chơi lại DD/DDD trong chuỗi đó, v.v. cho đến khi kết thúc trò chơi. Chúng tôi gọi đó là 'kiểm soát' vì người chơi A sẽ không bao giờ có tùy chọn chơi DD / DDD nếu người chơi B không muốn. Những gì người chơi A có thể làm là làm cho giá DD / DDD cao. Nếu A mở một chuỗi tuyến tính, giá để B lấy DD là sự hy sinh của 2 hộp. Nếu A mở một chuỗi vòng lặp thì giá để B chơi DDD là 4 viên đá. Điều này cho thấy rằng khi sắp xếp chuỗi theo giá trị, giá trị nên được sửa bằng cách trừ 2 ô cho chuỗi tuyến tính và trừ 4 ô cho chuỗi vòng lặp.

Trong ví dụ này, chúng ta tìm hiểu thêm về thứ tự các chuỗi như nào để mở chuỗi. Hãy giả sử rằng tất cả các ô đều được hoàn thành ngoại trừ hai chuỗi tuyến tính với 3 và 4 ô cùng một vòng lặp với 4 ô như sau:
+---+---+ +---+ | | | + + +---+ + | | | | +---+---+---+ + | +---+---+ +---+
Tới lượt của người chơi A. A chắc chắn sẽ không mở chuỗi tuyến tính lớn hơn với 4 ô nếu đã có một chuỗi tuyến tính có 3 ô.

Trước khi quyết định cách chơi tối ưu cho lượt người chơi B, hãy kiểm tra xem chuỗi nào trong số 2 chuỗi còn lại nên được mở trước:
+---+---+ +---+ | | | + + +---+ + | | | | +---+---+---+ + | | | | +---+---+---+---+
Ta có 2 người chơi C và D và người chơi C sẽ chơi trước.

+---+---+ +---+ | | | + + +---+ + | C1 | | | +---+---+---+ + | | | | +---+---+---+---+
Nếu sau nước đi C1, người chơi D chơi DDD với nước đi D2 thì sau đó
+---+---+C5-+---+ | D2 | D6 | +C3-+C4-+---+D7-+ | C1 | | | +---+---+---+D8-+ | | | | D9 +---+---+---+---+
điểm từ hai chuỗi này là C: D = (4 + 0) :( 0 + 4) = 4: 4. Nếu người chơi D không chơi DDD mà sử dụng vòng lặp thì sau đó
+---+---+D5-+---+ | D3 | C6 | +D2-+D4-+---+C7-+ | C1 | | | +---+---+---+C8-+ | | | | C9 +---+---+---+---+
điểm từ hai chuỗi này cũng là C: D = (0 + 4) :( 4 + 0) = 4: 4.

+---+---+C1-+---+ | | | + + +---+ + | | | | +---+---+---+ + | | | | +---+---+---+---+
Nếu sau nước đi C1 người chơi D hoàn thành cả chuỗi thì sau đó
+---+---+C1-+---+ | C8 | D2 | +C7-+C9-+---+D3-+ | D6 | | | +---+---+---+D4-+ | | | | D5 +---+---+---+---+
điểm là C: D = (0 + 4) :( 4 + 0) = 4: 4. Nếu sau nước đi C1 người chơi D chơi DD với nước đi D4 thì sau đó
+---+---+C1-+---+ | D8 | D2 | +D7-+D9-+---+D3-+ | C6 | | | +---+---+---+C5-+ | | | | D4 +---+---+---+---+số điểm sẽ là C: D = (2 + 0) :( 2 + 4) = 2: 6. Số điểm cao nhất sau khi người chơi D chơi nước C1 là C: D = 2: 6.

Người chơi tiếp theo (C) tốt nhất nên mở vòng lặp đạt C: D = 4: 4 hơn là chuỗi tuyến tính chỉ đạt C: D = 2: 6. Nếu chúng ta sắp xếp chuỗi theo kích thước - 2 để quyết định mở chuỗi nào trước thì (4−2) = 2 <4 sẽ cho kết quả chính xác. Bây giờ chúng ta có thể quyết định cách chơi tối ưu cho B trong:
+---+---+- +---+ | | | + + +---+ + | | | | +---+---+---+ + A1 | +---+---+ +---+

Nếu B lấy chuỗi thì sau đó
+---+---+A9-+---+ | A7 | B10 | +A6-+A8-+---+B11+ | B5 | | | +---+---+---+B12+ B2 A1 B3 | B13 +---+---+B4-+---+
điểm của 3 chuỗi này là A: B = (0 + 4 + 0) :( 3 + 0 + 4) = 4: 7. Nếu người chơi B chơi thay DD bằng nước đi B3 thì sau
+---+---+B9-+---+ | B7 | B10 | +B6-+B8-+---+B11+ | A5 | | | +---+---+---+B12+ B2 A1 A4 | B13 +---+---+B3-+---+
điểm của 3 chuỗi này là A: B = (2 + 0 + 4) :( 1 + 4 + 0) = 6: 5. Vì vậy, điểm cao nhất mà B có thể đạt được sau nước đi A1 với việc không chơi DDD là A: B = 4: 7. Trong cả hai trường hợp, chúng ta biết rằng vòng lặp sẽ được mở sau đó.

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

Người chơi chơi DDD cho chuỗi nhỏ sẽ dẫn đến
+---+---+B9-+---+ | B3 | A10 | +B2-+B4-+---+A11+ | A1 | | | +---+---+---+A12+ B5 A6 B8 | A13 +---+---+A7-+---+cho điểm 3 chuỗi A: B = (0 + 1 + 4) :( 4 + 2 + 0) = 5: 6.

Một lần nữa, người chơi chơi DDD cho chuỗi nhỏ sẽ dẫn đến
+---+---+A9-+---+ | B2 | B10 | +A3-+A4-+---+B11+ | A1 | | | +---+---+---+B12+ A5 B6 A8 | B13 +---+---+B7-+---+cho điểm 3 chuỗi A: B = (4 + 2 + 0) :( 0 + 1 + 4) = 6: 5.

Vì cái giá của việc chơi DDD trong một vòng lặp khá cao, nên tốt nhất người chơi B hoàn thành toàn bộ vòng lặp và giàn điểm A: B = 5: 6.

Chúng tôi có hai chuỗi tuyến tính với 3 và 4 hộp và một vòng lặp với 4 hộp. Tốt nhất là A nên mở vòng lặp và đạt điểm A: B = 5: 6. Nếu A mở chuỗi với 3 hộp thì nó chỉ đạt được A: B = 4: 7. Rõ ràng là B không thể tốt hơn nếu mở xích có 4 hộp trước xích với 3 hộp. Do đó, việc sắp xếp chuỗi đơn giản theo kích thước để xác định chuỗi nào sẽ mở tiếp theo không hoạt động. Nhưng sắp xếp chúng theo kích thước − 2 đối với chuỗi tuyến tính và kích thước -4 đối với chuỗi vòng lặp dường như hoạt động vì (4−4) = 0 < 1 = 3 − 2 indicating that the loop should be opened first.

Với kinh nghiệm thu được từ các ví dụ trên, chúng ta hiện đang giải quyết vấn đề về việc xác định thứ tự các chuỗi sẽ được mở và hoàn thành. Thứ tự chuỗi này được sử dụng để xác định thời điểm ai sẽ chơi DD / DDD, ai sẽ thắng trò chơi. Tin tốt là ở phần Kết thúc, chuỗi mở chuỗi này không phụ thuộc vào lượt của ai hoặc ai đã chơi DD / DDD trước đó. Lý do là tại bất kỳ thời điểm nào trong trò chơi, chỉ có các đường vẽ là quan trọng, không phải là vẽ bởi ai và không theo 1 thứ tự nào cả. Ngay cả điểm số hiện tại cũng không ảnh hưởng đến lối chơi tối ưu. Biến 1 vấn đề khó thành nhiều vấn đề dễ giải hơn đã là một thành công. Trong trường hợp này, nhiệm vụ khó nhằn cho việc xác định xem ai sẽ chơi nước nào trong phần Kết thúc được chia thành hai vấn đề: thứ tự mở chuỗi và người chơi nào cũng như khi nào họ chơi DD / DDD. Trước khi bắt đầu, chúng ta cần suy nghĩ về xu hướng chung trong phần Kết thúc.

Một chuỗi mở được trao cho đối thủ. Do đó, chuỗi phải có 'giá trị' ít nhất có thể trong đó giá trị, trong nháy mắt, giá trị là số hộp. Do đó, trong suốt quá trình kết thúc, 'giá trị' của các chuỗi đã mở chỉ có thể tăng hoặc không đổi nhưng không giảm. Trong ví dụ ở trên, chúng ta thấy rằng việc mở chuỗi với ít hộp nhất để đối thủ thực hiện không hiệu quả. Nhưng chúng tôi muốn sắp xếp các chuỗi theo một số 'giá trị' vì mọi người chơi đều muốn mở chuỗi ít giá trị nhất cho đối thủ. Đối với đối thủ, giá trị của một chuỗi không chỉ bao gồm số lượng hộp; điều quan trọng là liệu chuỗi đã mở có phù hợp để chơi DD / DDD trong đó hay không. Một ứng cử viên sáng giá cho việc điều chỉnh sự phù hợp với DD là trừ 2 khỏi số hộp nếu chuỗi là một vòng lặp. Điều này tương đương với việc trừ 2 từ chuỗi tuyến tính và 4 từ chuỗi vòng lặp. Vì vậy, để sắp xếp các chuỗi theo 'giá trị' trong đó chúng ta lấy 'value' = # các hộp nếu chuỗi KHÔNG phải là một vòng lặp và lấy 'value' = # của các hộp − 2 nếu chuỗi LÀ một vòng lặp.
Chúng tôi bắt đầu với các vị trí trên bảng nơi mỗi ô có ít nhất 2 cạnh. Để làm được điều đó, ta có thể xây dựng hai quy tắc sắp xếp thứ tự cho tất cả các chuỗi.
Quy tắc 2: Để sắp xếp chuỗi, lấy chuỗi cuối cùng và chuỗi tuyến tính lớn nhất; nếu không có chuỗi tuyến tính thì lấy chuỗi lớn nhất.

Người chơi giữ quyền kiểm soát để không mở chuỗi thì sẽ không sắp xếp được chuỗi. Vì vậy, người chơi nào sắp xếp chuỗi cũng muốn thực hiện việc giành hoặc giữ quyền kiểm soát (tức là chơi các nước đi DD / DDD) để gây nhiều sức ép cho đối với đối thủ càng tốt. Một bước đi DD sẽ mất đi 2 ô và một bước đi DDD sẽ mất 4 ô. Cái giá này phải được trả cho tất cả các chuỗi ngoại trừ chuỗi cuối cùng. Do đó, trong việc sắp xếp các chuỗi, để tối đa hóa tổng ô mà đối thủ phải bỏ ra, chuỗi cuối cùng phải là tuyến tính nếu có thể và không phải là một vòng lặp. ∎
Quy tắc 3: Nếu trong phần Kết thúc, tất cả các ô đã có ít nhất 2 cạnh thì để sắp xếp tất cả các chuỗi khác, hãy sắp xếp chúng theo (số ô - 2 nếu là một vòng lặp).

Đầu tiên nên mở xích 1 hộp, sau đó là xích 2 hộp và sau đó là xích dài. Bằng cách trừ 2 ô khỏi tất cả các chuỗi tuyến tính, chuỗi 1 hộp sẽ có vlaue là 1−2 = −1 và chuỗi 2 hộp có giá trị là 2−2 = 0. Các giá trị này nhỏ hơn giá trị của chuỗi dài, vì vậy quy tắc trừ 2 ô cho kết quả sắp xếp phù hợp đối với các chuỗi ngắn.
Đối với người chơi tiếp theo để giành hoặc giữ quyền kiểm soát, giá trị của một chuỗi là số lượng các hộp của nó − 2 nếu nó là một chuỗi tuyến tính và − 4 nếu nó là một vòng lặp. Để sắp xếp các chuỗi, người ta sẽ nhận được kết quả tương tự nếu người ta chỉ trừ 2 trong trường hợp một vòng lặp.
Điều gì sẽ xảy ra nếu đối thủ không có quyền kiểm soát và sẽ không giành quyền kiểm soát trong lượt tiếp theo? Liệu đối thủ sẽ không được hưởng lợi khi, dựa trên thứ tự này, đối thủ sẽ di chuyển tiếp theo trong một vòng lặp mở với hai hộp nhiều hơn là nhận được một chuỗi tuyến tính có cùng 'giá trị' nhưng ít hộp hơn? Không! Nếu đối thủ hoàn thành toàn bộ vòng lặp thì sau đó khi đến lượt người chơi này, sẽ có ít hơn một vòng lặp và sẽ rẻ hơn 2 ô để kiểm soát. ∎
Chúng ta đã thấy hiệu ứng đó trong ví dụ 3 trường hợp 2.1, trong đó, sau khi người chơi A mở vòng lặp với A1, người chơi B lấy toàn bộ vòng lặp nhưng kết quả là A sau đó có thể kiểm soát với A7 và đạt được kết quả tốt nhất có thể.
Các quy tắc trên đều rất rõ ràng nếu tất cả các ô thuộc một chuỗi, tức là nếu tất cả các ô đã được vẽ ít nhất 2 cạnh. Nhưng nếu có ô chưa có cạnh nào và ô chỉ có 1 cạnh thì sao?

Quy tắc 4: Để thiết lập các chuỗi được sắp xếp theo giá trị, hãy thực hiện chu kỳ các nước đi cho đến khi hoàn thành toàn bộ bàn DOT.
- Mở một trong các chuỗi mà giá trị (số o, hoặc nếu là một vòng lặp thì số ô −2) là nhỏ nhất với một ngoại lệ: Nếu vẫn còn ít nhất một vòng lặp, cho dù được kết nối hay không; và nếu chỉ có một chuỗi tuyến tính không được kết nối hay không sự kết nối chỉ gồm các chuỗi tuyến tính thì không mở chuỗi tuyến tính không được kết nối cuối cùng.
- Hoàn thành chuỗi đã mở mà không cần đếm ô. Việc vẽ các đường ở cuối một chuỗi tuyến tính có thể thay đổi một ô 1 cạnh thành 2 cạnh và do đó có thể hợp nhất hai chuỗi tuyến tính hoặc cắt bỏ một vòng lặp.
Nếu trong Phần Hồi Kết vẫn còn ô chưa có cạnh nào và ô có 1 cạnh thì người ta có thể coi ô đó là một điểm và nghĩ rằng các chuỗi là các đường kết thúc tại các điểm như vậy hoặc kết thúc ở viền của bàn DOT và sau đó nhận được một điểm bổ sung nhân tạo.
Các điểm cùng với các đường kết nối của chúng được gọi là đồ thị trong toán học.
1 ngoại lệ trong Quy tắc 4 được xây dựng bằng 'ngôn ngữ đồ thị': Không mở một chuỗi tuyến tính tương ứng với một đường không được kết nối với biểu đồ còn lại nếu biểu đồ còn lại có một phần không được kết nối chứa một vòng lặp và không có phần không được kết nối nào không chứa vòng lặp (và do đó được gọi là 'cây khung' trong ngôn ngữ của đồ thị).

ô có 1 cạnh có ghi chữ 'T':
+---+---+---+ + | T | | + + + + + | | | | + + +---+---+ | | | + +---+---+ +
Biểu đồ tương ứng với bảng này sẽ giống như một chữ T với 4 điểm, một trong đó - và | tại T gặp nhau và 3 điểm ở 3 đầu của T.
Ở bên trái của hộp 1 là một trong hai chuỗi ngắn nhất. Bằng cách mở nó và hoàn thành nó
+---+---+---+ + +---+---+---+ + | | | | | | | + + + + + +---+ + + + | | | | | | | | +---+ +---+---+ +---+ +---+---+ | | | | | | + +---+---+ + +---+---+---+ +
, người ta thấy rằng bảng sẽ được hoàn thành bằng cách hoàn thành 2 chuỗi, một với 3 và một với 9 hộp.

Ô 1 có ghi chữ 'P':
+---+---+---+---+ | | + +---+---+ + | P | + +---+---+---+ | | +---+---+---+ +
Vẽ mặt bên trên ô 1 cạnh hoặc bên phải hộp này sẽ tạo và mở một chuỗi tuyến tính lớn có 12 ô
+---+---+---+---+ | | +---+---+---+ + | | + +---+---+---+ | | +---+---+---+ +
cái nào sẽ không muốn đưa cho đối phương. Vẽ đường bên dưới ô 1 cạnh sẽ phân vùng bảng thành một chuỗi tuyến tính đã mở với 4 ô và một vòng lặp với 8 ô.
+--+--+--+--+ | | + +--+--+ + | | +--+--+--+--+ | | +--+--+--+ +
Trong Quy tắc 4 ở trên, một ngoại lệ đã được đưa ra. Ví dụ sau sẽ minh họa cho ngoại lệ này.
Ví dụ 6: Một biểu đồ 'P' cộng với một chuỗi tuyến tính không được kết nối
Có thể mở hai chuỗi thẳng, một ở bên phải và một ở dưới cùng.
+---+---+---+---+ + | P | | + + +---+ + + | | | | + +---+---+---+ + | | | +---+---+---+ + +

21 nước đi đã được thực hiện, vì vậy nếu người chơi A bắt đầu thì sẽ tới lượt của người chơi B.
Nếu sau khi mở chuỗi nhỏ nhất với nước đi B1, người chơi A giành quyền kiểm soát ngay lập tức, chúng ta nhận được
+---+---+---+---+B1-+ | B5 B12 | | +A6-+ +---+ +A2-+ | | | | +A7-+---+---+---+B4-+ | A8 A9 B11 | | +---+---+---+A10+A3-+
và điểm A: B = (1 + 4 + 6) :( 2 + 2 + 0) = 11: 4 trong đó (2 + 2 + 0) có nghĩa là người chơi B nhận được từ 3 chuỗi đã mở theo thứ tự đó 2, 2 và 0 ô. Bởi vì người chơi B chỉ có thể mở chuỗi tuyến tính thứ 2 với nước đi B5, người chơi A có thể giữ quyền kiểm soát với nước đi A10 với chi phí chỉ là 2 và nhận được vòng lặp miễn phí.

Sau khi người chơi B mở chuỗi dài hơn với nước đi B1 bên dưới và chuỗi này được hoàn thành, ai lấy được (các) ô vuông cuối cùng sẽ phải mở chuỗi. Theo Quy tắc 2, người chơi B sẽ mở vòng tiếp theo với nước đi B8 để khiến việc kiểm soát / giữ quyền kiểm soát trở nên tốn kém hơn. Chiến lược này hoạt động vì việc giành / giữ quyền kiểm soát trong vòng lặp không có ý nghĩa đối với người chơi A vì mất 4 ô nhưng sẽ chỉ thắng 3 ô trong chuỗi cuối cùng.
+---+---+---+---+A14+ | B1 A13 B8 | | +A2-+A12+---+A9-+B15+ | | A11 A10 | | +A3-+---+---+---+B16+ | A4 A5 B7 | | +---+---+---+A6-+B17+
Điểm là A: B = (4 + 6 + 0) :( 2 + 0 + 3) = 10: 5
Nếu người chơi A không chơi DD trong chuỗi đầu tiên:
+---+---+---+---+B14+ | B1 B13 A8 | | +A2-+B12+---+B9-+A15+ | | B11 B10 | | +A3-+---+---+---+A16+ | A4 A5 A6 | | +---+---+---+A7-+A17+
thì điểm A : B = (6 + 0 + 3) : ( 0 + 6 + 0) = 9 : 6 sẽ kém hơn đối với người chơi A. Lý do là chơi trong vòng lặp sau khi nó được mở (nước đi B9 ở trên) có giá trị 6−3 = 3 điểm và việc nắm quyền kiểm soát trong chuỗi dài đầu tiên chỉ mất 2 điểm, do đó, việc kiểm soát trong chuỗi đầu tiên có giá trị. 10: 5 tốt hơn 9: 6 cho người chơi A.
Khi so sánh trường hợp 1 và 2 và hai tỷ số 11: 4 và 10: 5, rõ ràng người chơi B nên mở chuỗi dài hơn trước. Lý do là nếu B mở chuỗi tuyến tính không được kết nối trước, thì vòng lặp sẽ được hoàn thành sau cùng, có nghĩa là người chơi A sẽ không phải mất 4 điểm khi chơi DDD trong vòng lặp để giữ quyền kiểm soát. Ta sẽ phải vi phạm Quy tắc 2. Người chơi có thể chỉ ra rằng nếu chuỗi không được kết nối có m ô, thì chuỗi tuyến tính được kết nối có n ô và vòng lặp có p ô, sau đó người chơi B sẽ có 4 điểm từ 2 lần DD khi mở chuỗi đầu tiên không được kết nối trong khi khi B mở chuỗi tuyến tính kèm theo thì B nhận được
min ( p + max (0, m -4), min (6, m +2))
nhiều điểm. Giá trị thấp nhất là khi p có giá trị thấp nhất là 4 (vòng lặp có ít nhất 4 ô) và m có giá trị thấp nhất là 3 (ngắn nhất chuỗi tuyến tính dài, nếu chuỗi ngắn nhất chỉ có 2 ô sẽ được chơi với Kiểu chơi Mạnh Mẽ ngay lập tức và công thức sẽ khác). Đối với p = 4 và m = 3 người chơi B sẽ nhận được
min(4 + max(0,-1),min(6,5)) = min(4+0,5) = 4
và đối với p > 4 hoặc m > 4 người chơi B sẽ được hơn 4 điểm.

Nếu các chuỗi khác nhau có cùng giá trị thấp nhất thì phần mềm của chúng tôi sử dụng quy tắc để mở một chuỗi được kết nối. Mục đích đằng sau là có khả năng thông qua chuỗi đã mở này, một vòng lặp có thể được thực hiện được, điều này có thể khiến việc kiểm soát / giữ lại chỉ tốn kém hơn.
Trong trò chơi, người ta thường kiểm soát bằng cách chơi DD / DDD khi bắt đầu Phần Hồi Kết. Nhưng nếu có nhiều chuỗi có 3 ô và các vòng lặp có ít hơn 8 ô thì tốt nhất bạn không nên chơi DD / DDD và không giành quyền kiểm soát. Do đó, ta cần một thuật toán chung và không chỉ một quy tắc ngón tay cái.

Trong tài liệu về trò chơi Dots, cách chơi đầu tiên của DD / DDD còn được gọi là giành quyền kiểm soát. hay có nghĩa là người chơi nắm quyền kiểm soát xem ai có được chuỗi dài cuối cùng. Điều này có thể không giống với việc kiểm soát trò chơi và giành chiến thắng bằng cách KHÔNG chơi DD / DDD như chúng ta sẽ thấy bên dưới.
Khi một người chơi lựa chọn chơi DD / DDD thì người chơi này có quyền lựa chọn đổi vai trò với đối thủ với 2 điểm (DD) hoặc 4 điểm (DDD). Nếu cách chơi tối ưu trong các chuỗi còn lại sẽ giành được điểm thì người chơi có thể quyết định xem liệu có đáng để đổi vai trò với 2 điểm (nếu chuỗi là tuyến tính) hay với 4 điểm (nếu chuỗi là một vòng lặp). Cùng với những gì đang có ở chuỗi hiện tại, người chơi có thể xác định trước điểm số trước khi mở chuỗi hiện tại. Phép tính này có thể được bắt đầu ngược từ cuối trò chơi nếu người chơi biết trình tự của các chuỗi đã mở. Trình tự như vậy có thể được xác định bởi Quy tắc 4 ở trên.
Quy tắc 5: Quyết định có chơi DD / DDD hay không bằng cách sử dụng mã giả bên dưới.
Trong đoạn mã giả máy tính sau đây, biến A là số điểm nhận được trong phần còn lại của trò chơi bởi người chơi mở chuỗi tiếp theo, và biến B là số điểm mà đối thủ thu được. Số ô còn lại là A + B. Ta cùng tính toán ngược: chuỗi được mở cuối cùng trong trò chơi là chuỗi 1, chuỗi trước đó là chuỗi 2, v.v. Chuỗi hiện tại là chuỗi k. Bất kỳ chuỗi j nào cũng có n_j ô. Biến chơi DD ghi lại liệu có chơi DD / DDD trong chuỗi j hay không.
Trong (các) dòng mã giả sau
- (1)-(3) khởi tạo 3 biến bởi kết quả của việc chơi chuỗi cuối cùng.
- (4)-(22) cập nhật A, B, chơi DD cho chuỗi j trong đó j chạy ngược lại từ chuỗi cuối cùng trừ chuỗi (j = 2) đến chuỗi k hiện tại.
- (5)-(13) nếu chuỗi j là tuyến tính thì sẽ có 2 điểm
- (14)-(22) nếu chuỗi j là một vòng lặp thì sẽ có 4 điểm
- (6)-(9), (15)-(18) nếu lợi nhuận B-A lớn hơn số điểm (2 hoặc 4) thì hãy chơi DD và giảm đi B thêm nó vào A. Trong mọi trường hợp B lấy n_j.
(1) A = 0 (2) B = n_1 (3) playDD = sai (4) Đối với mỗi chuỗi j từ 2 đến k: (5) Nếu chuỗi j là tuyến tính: (6) Nếu B > (A + 2): (7) playDD = thật: (8) B = B + n_j - 2 (9) A = A + 2 (10) Khác: (11) playDD = sai: (12) B = A + n_j (13) A = B (14) Khác → Nếu chuỗi j là một vòng lặp: (15) Nếu B > (A + 4): (16) playDD = thật (17) B = B + n_j - 4 (18) A = A + 4 (19) Khác (20) playDD = sai (21) B = A + n_j (22) A = B
Sau việc tính toán này A là điểm của người chơi đã mở chuỗi hiện tại B là điểm của đối thủ và Chơi DD cho biết đối phương có nên chơi DD / DDD bây giờ hay không. ∎ (Hết Quy tắc 5)
Mã giả này có vẻ khó đối với người không phải là lập trình viên, nhưng rất dễ giải trong suy nghĩ vì nó đơn thuần là kiểm tra xem liệu lợi ích của việc kiểm soát có lớn hơn cái giá của nó hay không, ví dụ như việc chơi DD / DDD.

Ta biết rằng các chuỗi giá có trị thấp nhất được mở đầu tiên. Liệu điều đó có nghĩa là chơi DD / DDD sẽ có lợi hơn về cuối trò chơi hay không?

Trong hầu hết các trường hợp thì câu trả lời là có. Nhưng chúng ta đã thấy trong Ví dụ 6-trường hợp 2 rằng một số vòng lặp giá trị thấp chỉ có thể truy cập được sau khi hoàn thành các chuỗi tuyến tính có giá trị cao hơn. Do đó, mặc dù không có đủ mục đích để chơi DDD khi vòng lặp được mở (chuỗi cuối cùng chỉ có 3 ô trong khi DDD cần 4 ô), thì vẫn có mục đích để chơi DD trước đó với chi phí chỉ là 2.

Hãy giả sử rằng ai đó đang đánh giá xem có nên chơi DD / DDD hay không. Họ quyết định chơi nó và nhận chuỗi cuối cùng.

Câu trả lời là không. Ví dụ, giả sử chúng ta có 5 chuỗi tuyến tính với 3 ô ở mỗi chuỗi. Lấy cái cuối cùng với mục đích là 3 ô, đủ để trả cho 3 DD, mỗi hộp có giá là 2 và nhận được 1 hộp. Điều đó có nghĩa là chuỗi đầu tiên được hoàn thành toàn bộ và 3 lượt chơi DD khác cho điểm (3 + 2 + 2 + 2 + 0): (0 + 1 + 1 + 1 + 3) = 9: 6 cho người chơi không hoàn thành chuỗi cuối cùng.

Không. Khi trên một bảng lớn, một người có nhiều chuỗi được kết nối thông qua hộp 0 và hộp 1 thì một số trong số chúng có thể có cùng số lượng hộp và sau đó có thể cần một lý thuyết hoặc tìm kiếm tinh tế hơn để chọn một lý thuyết tối ưu dựa trên đó các chuỗi khác có thể truy cập sau này thông qua việc hoàn thành các chuỗi đầu tiên.

Quy tắc 6: Người chơi đầu tiên nên cố gắng làm cho số chấm + số chuỗi tuyến tính dài thành số chẵn và người chơi thứ hai nên cố gắng đặt giá trị này thành số lẻ.

Để bắt đầu thì chúng tôi sẽ giới thiệu một số biến trong đó '#' là viết tắt của 'số':
nt = # lượt (# số lần dựa trên việc người chơi vẽ các nước đi)
nd = # dấu chấm
r = # hàng ngang các dấu chấm
c = # cột các dấu chấm
nl = # đường vẽ
nb = # ô
nc = # các chuỗi dài
nz = # lượt mở ra chuỗi dài đầu tiên trong Phần Hồi Kết

nb = (r−1)(c−1) = rc − r − c + 1
nd = rc
nl = # dòng ngang + # dòng dọc
= r(c−1) + c(r−1)
= 2rc − r − c
vì thế
nl = nb + nd − 1 .
Mối quan hệ này tương đương với Nhận dạng Euler có giá trị đối với các đồ thị không có quy luật, tức là bất kỳ số nd các dấu chấm nào được liên kết bởi nl đường kẻ bất kỳ, không chỉ theo chiều dọc và chiều ngang, bao quanh nf mặt mà trong trường hợp của ta là nf = nb + 1 vì lưới hình chữ nhật gồm các chấm có thêm một mặt xung quanh, cũng được tính vào Nhận dạng Euler:
nl − nd + 2 = nf (= nb + 1).

nt = nl − (Số lần vẽ một đoạn để hoàn thành ít nhất 1 ô)
− 1 {Hoàn thành ô cuối cùng vẫn sẽ không có lượt chơi tiếp.})
= nl − (nb − (# nước đi hoàn thành 2 ô) − 1)
= nl − nb + 1 + (# nước đi hoàn thành 2 ô)
= nd {sử dụng mối quan hệ trước đó của ta nl = nb + nd − 1} + (# DD trong chuỗi tuyến tính) + (# các vòng lặp) + (# DDD trong các vòng lặp)
Đường kẻ cuối là khi hoàn thành một vòng lặp, nước đi cuối cùng luôn hoàn thành 2 ô và nếu DDD được chơi trong một vòng lặp thì nước đi khác cũng hoàn thành 2 ô. Mối quan hệ dẫn xuất
Number of Turns Formula:
nt = nd + (# DD trong chuỗi tuyến tính) + (# of vòng lawk[) + (# of DDD trong vòng lặp)
là một quy tắc chuẩn xác.

Sau khi chuỗi dài đầu tiên được mở trong Phần Hồi Kết, nếu không có DD và không có DDD nào được chơi, thì số lượt còn lại bằng số chuỗi dài khi mỗi người chơi hoàn thành một chuỗi. Do đó, nếu (# of DD) = (# of DDD) = 0 thì
nz {# lượt mở ra chuỗi dài đầu tiên trong Phần Hồi Kết}
= nd + (# vòng lặp) − (# chuỗi dài)
nd − (# chuỗi tuyến tính dài)
Công thức cho nz cũng hợp lệ nếu chơi DD / DDD.
Chứng minh:
Bất kỳ lượt chơi DD / DDD nào cũng không thể thay đổi những gì đã xảy ra trước đó, cụ thể là lượt nz dẫn đến việc mở chuỗi dài đầu tiên trong Phần Hồi Kết. Đối với mỗi lần DD và DDD được chơi, số lượt trong Phần Hồi Kết tăng lên 1 (hãy xác thực) vì vậy khi lấy tổng số lượt trừ số lượt trong trò chơi kết thúc thì cả (# DD) và (# DDD) sẽ bị hủy và sau đó ta sẽ nhận được cùng một giá trị cho nz như thể không có lần chơi DD / DDD nào.
Vì vậy, không người chơi nào muốn thực hiện nước đi đó, tức là người chơi đầu tiên muốn nz là số chẵn chứ không phải số lẻ. 2 × (# chuỗi tuyến tính dài) là một số chẵn vì vậy việc thêm nó vào nz sẽ không thay đổi dù nz là lẻ hay chẵn, điều này cuối cùng dẫn đến kết quả là
Quy tắc chuỗi dài: Người chơi đầu tiên cố gắng tạo (# dấu chấm) + (# chuỗi dài tuyến tính) thậm chí ngay cả khi người chơi thứ hai đang cố gắng làm cho nó thành lẻ. ∎

Trong một số thông tin về trò chơi DOTS, hai giả định không cần thiết được đưa ra để suy ra Quy tắc Chuỗi dài.
1. Giả định: Nếu cả hai người chơi kết thúc trò chơi một cách tối ưu, thì ai chơi nước đi cuối cùng sẽ thắng vì giá trị của chuỗi cuối cùng và chuỗi lớn nhất rất cao và cả vì người chơi không phải đổi lượt hay mở chuỗi khác cho đối thủ.
Vì vậy, người chơi đầu tiên muốn nt = (# lượt) là số lẻ để có thể thực hiện nước đi đầu tiên cũng là cuối cùng và giành chiến thắng.
2. Giả định: Tất cả các chuỗi dài ngoại trừ chuỗi cuối cùng được chơi với DD / DDD. Do đó (# vòng lặp) + (# DDD trong các vòng lặp) là chẵn và người chơi có thể bỏ qua; và nt = nd + (# DD trong các chuỗi tuyến tính) trở thành nt = nd + (# các chuỗi tuyến tính dài) - 1. Do đó người chơi đầu tiên muốn nt này là số lẻ để có thể thực hiện nước đi cuối cùng khi (# dấu chấm) + (# chuỗi thẳng dài) là chẵn - Quy tắc Chuỗi dài. ∎
Nhưng ta đều biết rằng 2 giả định này không cần thiết để khiến cho Quy tắc Chuỗi dài đúng. Ví dụ tiếp theo sẽ chứng minh điều này.

Luật Long Chain đưa ra một điều kiện cần thiết và đủ để quyết định người chơi nào là người đầu tiên chơi trong chuỗi dài được mở đầu tiên trong kết thúc trò chơi. Người chơi P này có thể chọn chơi DD / DDD hay không chơi DD / DDD. Chúng tôi có 2 trường hợp.
Nếu chuỗi dài đầu tiên là tuyến tính thì nó có ít nhất 3 hộp, và chơi DD có chi phí là 2 hộp.
• Nếu động lực chơi DD là <2 thì người chơi P sẽ không chơi DD và lấy toàn bộ chuỗi đầu tiên và đối thủ sẽ nhận được nhiều nhất 1 ô nữa từ các chuỗi còn lại, vì vậy P sẽ nhận được ít nhất 3−1 = 2 ô hơn đối thủ.
• Nếu khuyến khích là 2 thì không quan trọng P chơi DD hay không chơi DD trong chuỗi dài đầu tiên và do đó tăng thêm ≥3 ô trong trò chơi kết thúc.
• Nếu khuyến khích là >2 thì P chơi DD và nhận thêm >3 hộp trong trò chơi kết thúc.
Nếu chuỗi dài đầu tiên là một vòng lặp thì trong trường hợp xấu nhất, chuỗi đầu tiên có 4 ô và ưu đãi là 4 và sau đó cho dù một người chơi DDD hay không, cả hai người chơi sẽ nhận được cùng một số điểm trong trò chơi kết thúc. Nhưng nếu ưu đãi là >4 thì chơi DDD sẽ cho nhiều điểm hơn và nếu ưu đãi là <4 thì không chơi DDD sẽ cho nhiều điểm hơn vì vòng lặp có ít nhất 4 ô. Và nếu chuỗi dài đầu tiên là một vòng lặp có nhiều hơn 4 hộp, thì P sẽ nhận được những điểm bổ sung này như một lợi thế trong trò chơi cuối cùng, ngay cả khi khuyến khích là 4.

& đạn; Nếu số chuỗi 1 là chẵn và số chuỗi 2 tuyến tính là chẵn thì chênh lệch điểm số khi bắt đầu trò chơi kết thúc bằng không.
• Nếu số chuỗi 1 là số chẵn và số chuỗi 2 tuyến tính là lẻ thì điểm số khi bắt đầu trò chơi kết thúc là 2.
& gạch đầu dòng; Nếu số chuỗi 1 là số lẻ thì sau khi hoàn thành tất cả 1 chuỗi, chênh lệch điểm là 1. Sau đó, mỗi chuỗi 2 hoàn thành sẽ chỉ lật giữa cả hai người chơi đang dẫn trước 1 ô.




Ở người chơi tiếp theo, người chơi A bắt đầu trò chơi. Trên bảng này, một số lẻ 5×3 = 15 nước đi đã được thực hiện. Nước đi 16 sẽ mở chuỗi dài đầu tiên thỏa mãn công thức mà chúng ta rút ra: 16 = (# dấu chấm) − (# chuỗi dài tuyến tính) = 20 − 4. Bất cứ ai thực hiện nước đi này, trong trường hợp này là người chơi B, sẽ thua nếu người chơi A chơi DD một cách thích hợp.
+-B-+ + + + | | | | | + + + + + | | | | | + + + + + | | | | | + + + + +
Người chơi A bắt đầu và người chơi B phải mở một chuỗi.

Nếu người chơi A chơi DD 3 lần thì tỉ số cuối cùng là A: B = 6: 6.
+---+---+---+---+ | A | A | A | A | +---+---+---+---+ | B | B | B | A | +---+---+---+---+ | B | B | B | A | +---+---+---+---+
Điểm từ 3 chuỗi cuối cùng là 5: 4, vì vậy chơi DD ở chuỗi đầu tiên và trả bằng 2 điểm để nhận được một điểm là không tối ưu.

Tốt hơn là người chơi A nên thực hiện toàn bộ chuỗi đầu tiên và đạt điểm cuối cùng là A: B = 7: 5.
+---+---+---+---+ | A | B | B | B | +---+---+---+---+ | A | A | A | B | +---+---+---+---+ | A | A | A | B | +---+---+---+---+

Cả hai giả định đều đã bị vi phạm. Người chơi A đang thắng nhưng không giành được chuỗi cuối cùng. DD không được chơi trong mọi chuỗi tuyến tính dài.

Chúng tôi nhận được (# dấu chấm) + (# chuỗi tuyến tính dài) = 20 + 4 = 24 là số chẵn và người chơi đầu tiên sẽ thắng theo quy tắc Dự đoán. Vì vậy, quy tắc đó tốt hơn so với bằng chứng thay thế với các giả định không cần thiết và giải thích sai.


Không, cả hai đều có thể tốt như nhau. Chỉ với hai chuỗi dài với 3 ô, A cần chơi DD cho điểm A: B = 4: 2.
+-B-+ + +---+---+ | | | | A | A | + + + +---+---+ | | | → | B | A | + + + +---+---+ | | | | B | A | + + + +---+---+
Vì vậy, động lực để chơi DD trước hai chuỗi này là 4 − 2 = 2, bằng với chi phí chơi DD. Do đó, cả hai vở kịch đều cho cùng một điểm: 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 | +---+---+---+ +---+---+---+


Có. Chúng ta đã thấy ở trên cách thêm một chuỗi với 3 ô đã thay đổi tỷ số từ 4: 2 thành 4: (2 + 3) = 4: 5. Mục đích để chơi DD trước 3 chuỗi này sẽ là 5−4 = 1 <2 nên ít hơn chi phí chơi DD là 2. Do đó, với 4 chuỗi 3 ô, ô đầu tiên sẽ không chơi với DD. Nếu có một chuỗi khác có 3 ô thì điểm số sẽ trở thành (4 + 3): 5 = 7: 5 = (4 + 1) :( 5 + 2) vì vậy mục đích để chơi thứ hai trong 5 chuỗi 3 ô sẽ là 7−5 = 2 nên chơi DD sẽ ổn khi cho điểm trong cả hai trường hợp là (2 + 5) :( 1 + 7) = 7: 8 = 7: (3 + 5).
+-B-+---+---+---+ | A | B | B | B | +---+---+---+---+ | A | A | A | B | +---+---+---+---+ | A | A | A | B | +---+---+---+---+
Bằng cách thêm nhiều chuỗi với 3 ô, người chơi có thể có nhiều thay đổi hơn giữa việc chơi và không chơi DD.

Người đọc được khuyến khích kiểm tra Quy tắc Chuỗi dài với nhiều ví dụ hơn liên quan đến các vòng lặp.

Trên trang web của David Wilson, vị trí sau được hiển thị mà chỉ có một nước đi để người chơi tiếp theo giành chiến thắng.
+ + + + | + + +---+ +---+---+---+ | + +---+ +

Bảng này có số chấm chẵn và số chuỗi dài chẵn. Chuỗi dài cuối cùng sẽ không chơi nước đi DD nên một số nước đi DD lẻ thường sẽ được chơi và do đó # điểm + # của DD là lẻ, và vì số lượt là lẻ nên người chơi đầu tiên sẽ nhận được chuỗi cuối cùng và thắng. Điều này phù hợp với 'Quy tắc Chuỗi dài': "Người chơi đầu tiên nên cố gắng làm cho # dấu chấm + # chuỗi dài (tuyến tính) là chẵn và người chơi thứ hai nên cố gắng làm cho nó thành lẻ."

Người chơi thứ 2 không thể thay đổi số chấm mà là số nước đi DD bằng cách hy sinh 2 ô và chơi nước đi được đánh dấu là B, đây là nước đi thắng duy nhất mà người chơi thứ 2 có trong tình huống này:
+ + + + | + + +---+ +---+---+---+ | B + +---+ +
Động tác này làm giảm số lượng chuỗi dài từ 2 xuống 1 và do đó làm cho # chấm + # chuỗi dài (tuyến tính) trở nên lẻ; do đó cho phép người chơi thứ 2 giành chiến thắng một điểm thay vì thua một điểm.

Tất cả các biến thể sau đây đều dẫn đến A: B = 4: 5, do đó, thêm 1 điểm để người chơi B chiến thắng.
+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-+

Việc phá vỡ Quy tắc 1 này không kém phần kỳ lạ so với việc chơi DD. Như chúng ta đã tìm hiểu trước đó, chơi DD với 2 điểm để chuyển đổi vai trò là điều bình thường. Vì vậy, sự hy sinh này là tối thiểu và tốt nếu nó có tác dụng tương tự như một động thái DD.
Trong phần phía trên, các thuật ngữ kỹ thuật đã được giới thiệu và các quy tắc đã được xây dựng. Phần cuối của trò chơi được mô tả chi tiết và đối với phần đầu tiên của trò chơi, Quy tắc chuỗi dài hướng dẫn người chơi. Nếu bạn muốn tìm hiểu thêm về phần đầu tiên của trò chơi, vui lòng xem [2] và [3] trong Tài liệu tham khảo. Cây quyết định sau đây sẽ tóm tắt trang web này.

Để các liên kết bên dưới hoạt động, người chơi cần mở văn bản ở trên bằng cách nhấp vào
- Nếu có ít nhất một 3 ô (một ô có thể hoàn thành), hãy xác định tất cả các chuỗi được gắn vào tất cả 3 ô này.
- Nếu một trong những chuỗi này là tuyến tính và có ít nhất 2 ô cạnh nhau, thì hãy hoàn thành tất cả các ô từ tất cả các chuỗi tuyến tính và tất cả các chuỗi lặp lại ngoài hai ô cạnh nhau của một chuỗi tuyến tính này. Sau đó, phân tích xem nên chơi DD và chơi DD hoặc hoàn thành 2 ô cuối cùng.
- Nếu tất cả các chuỗi mở có độ dài 1 hoặc có vòng lặp, thì trước tiên hãy hoàn thành tất cả các chuỗi mở có độ dài 1 và nếu có ít nhất một chuỗi vòng mở thì hoàn thành tất cả các chuỗi vòng mở ngoại trừ 4 ô cuối cùng của một trong các chuỗi vòng mở. Sau đó phân tích xem nên chơi DDD hay hoàn thành 4 ô cuối cùng.
- Nếu không có ô nào có thể hoàn thành, thì
- Nếu mỗi lần di chuyển sẽ tạo ra một hộp 3 ô, thì
- nếu chuỗi ngắn nhất là chuỗi 2
+---+---+ +---+---+
trong đó 2 đường chưa vẽ có thể ở bất kỳ đâu nhưng không nằm trong cùng một ô, sau đó vẽ đường ở giữa để đạt được: - Khác, xác định chuỗi tiếp theo để mở và chơi ở bất kỳ đâu trong chuỗi này.
- nếu chuỗi ngắn nhất là chuỗi 2
- Nếu có một nước đi không tạo ra 3 hộp thì
- nếu trong trò chơi sẽ có nhiều nhất 1 chuỗi dài (tuyến tính hoặc vòng lặp), ví dụ, vì hình chữ nhật của các dấu chấm nhỏ hoặc mỏng, thì sẽ không có nước đi DD / DDD nào được chơi và sau đó người chơi thực hiện lượt cuối cùng sẽ thắng và vì Công thức Số lượt, người chơi đầu tiên nên cố gắng làm cho tổng # dấu chấm + # vòng lặp là lẻ và người chơi thứ hai là chẵn. Bởi vì # của các dấu chấm được cố định, người ta chỉ có thể cố gắng lấy một số vòng lặp lẻ tương ứng chẵn. Nếu điều đó là không thể thì hãy thay đổi người chơi trước.
- nếu rõ ràng có bao nhiêu chuỗi tuyến tính sẽ tồn tại vào cuối trò chơi và nếu Quy tắc chuỗi dài dự đoán thua trò chơi thì hãy cân nhắc thực hiện động thái hy sinh để giảm số lượng chuỗi dài, nếu không
- nếu không rõ sẽ có bao nhiêu chuỗi dài vào cuối trò chơi, thì người chơi thứ nhất cố gắng làm cho số chấm + # chuỗi dài (tuyến tính) là lẻ và khi người chơi thứ hai cố gắng làm cho tổng số chẵn.
- Nếu mỗi lần di chuyển sẽ tạo ra một hộp 3 ô, thì

[1] Wikipedia: Dấu chấm và Hộp, xem các tài liệu tham khảo khác tại đó.
[2] Berlekamp, Elwyn R.; Conway, John H.; Guy, Richard K. (1982), "Chương 16: Dấu chấm và hộp", Các cách chiến thắng cho các cuộc chơi toán học của bạn, Tập 2: Trò chơi đặc biệt, Nhà xuất bản học thuật, trang 507–550.
[3] Berlekamp, Elwyn (2000), Trò chơi chấm và hộp: Trò chơi của đứa trẻ tinh vi, AK Peters, Ltd, ISBN 1-56881-129-2.
[4] Wilson, David, Kết quả phân tích Dots-and-Boxes, Đại học Wisconsin

Để các liên kết bên dưới hoạt động, người ta cần mở văn bản ở trên bằng cách nhấp vào
- # ...
- số lượng...
- ô
- một hình vuông nhỏ có 4 chấm cạnh nhau là các góc
- ?-ô
- ô không có cạnh, ô 1 cạnh, ô 2 cạnh, ô 3 cạnh, ô 4 cạnh là các ô có 0,1,2,3,4 cạnh được vẽ.
- chuỗi
- một chuỗi được tạo thành từ 2 hộp được kết nối. Có chuỗi tuyến tính và chuỗi lặp.
- Di chuyển chéo kép
- một nước đi hoàn thành hai ô cạnh nhau cùng một lúc ngay sau khi Giao dịch kép di chuyển trong chuỗi tuyến tính hoặc khi hoàn thành vòng lặp.
- DD
- viết tắt của Xử lý đôi
- DDD
- viết tắt của Xử lý nhân đôi
- Double Dealing
- a move dẫn đến
- Xử lí nhân đôi
- nước đi ở giữa vòng lặp đã mở với 4 ô còn lại, ví dụ:
+---+---+ +---+---+---+---+ | | | | | +---+---+ hoặc +---+---+---+---+ hoặc | | +---+---+ +---+---+ +---+---+---+ | | | | | +---+---+---+ hoặc +---+---+ + | | | | +---+---+ +---+
- Phần Hồi Kết
- giai đoạn cuối của trò chơi bắt đầu khi không thể tránh khỏi việc tạo hộp 3 ô trong bước tiếp theo
- Nhận dạng Euler
- quan hệ chung cho bất kỳ đồ thị nào trong mặt phẳng, không chỉ trò chơi Dots, nơi các đường không cắt nhau: (# dòng) − (# dấu chấm) + 2 = (# khuôn mặt) trong đó các khuôn mặt bao gồm 'mặt ngoài' nên đối với ta (# khuôn mặt) = (# hộp) + 1.
- Đồ thị
- một khái niệm trong toán học trong đó một số điểm được nối với nhau bằng một số đoạn thẳng
- Kiểu chơi Mạnh mẽ
- Vẽ đường giữa ở
+---+---+ +---+---+ +---+---+ hoặc | hoặc | | +---+---+ +---+ + + + +
hoặc các phiên bản xoay chiều và phản chiếu của chúng dẫn đến+---+---+ +---+---+ +---+---+ | hoặc | | hoặc | | | +---+---+ +---+ + + + +
hoặc các phiên bản xoay chiều và phản chiếu của chúng- Tài liệu nửa vời
- vẽ một đường trên đường viền của một sợi dây chuyền với hai ô dẫn đến
+---+---+ +---+---+ | hoặc | | +---+---+ +---+ +
- Đoạn thẳng
- đoạn thẳng liên kết hai dấu chấm cạnh nhau theo chiều ngang + --- + hoặc theo chiều dọc
- Chuỗi tuyến tính
- một chuỗi có 2 đầu, không nhất thiết phải thẳng
- Luật chuỗi dài
- Người chơi đầu tiên nên cố gắng làm cho # dấu chấm + # trong số chuỗi dài là chẵn và người chơi thứ hai nên cố gắng biến giá trị này thành lẻ.
- chuỗi dài
- 1 chuỗi có ≥ 3 ô
- Nước đi thua lỗ
- một nước đi cho đối thủ lựa chọn hy sinh
- Vòng lặp
- viết tắt của loopy chain
- Chuỗi vòng lặp
- 1 chuỗi không có đầu đuôi
- Di chuyển
- Vẽ 1 đường
- Công thức Số lượt
- một công thức chính xác đưa ra số lượt trong một trò chơi, là cơ sở cho Quy tắc Chuỗi dài và hữu ích cho một số lượng dấu chấm thấp để quyết định có nên là người chơi đầu tiên hay không
- Mở một chuỗi
- thực hiện một di chuyển bên trong một chuỗi hoặc trên một trong các đầu của nó (nếu nó là một chuỗi tuyến tính) và do đó tạo ra một 3-box.
- Luật 1
- Cách chơi rõ ràng nhất là tránh tạo ô 3 ô mà đối phương có thể chiếm được bằng cách hoàn thành nó.
- Quy tắc 2
- Đối với các chuỗi đặt hàng, hãy lấy chuỗi tuyến tính dài lớn nhất cho chuỗi cuối cùng và nếu không có chuỗi tuyến tính dài thì lấy vòng lặp lớn nhất.
- Luật 3
- Nếu trong Phần Hồi Kết tất cả các ô có ít nhất 2 cạnh được vẽ thì hãy sắp xếp chúng theo (# ô) − 2 (nếu là một vòng lặp)để sắp xếp tất cả các chuỗi khác.
- Luật 4
- Để thiết lập một chuỗi các chuỗi được sắp xếp theo giá trị cho người chơi tiếp theo, giá trị thấp nhất trước tiên, hãy thực hiện một chuỗi các nước đi (xem văn bản) cho đến khi hoàn thành toàn bộ bảng.
- Luật 5
- ử dụng mã giả được cung cấp (xem văn bản) để quyết định có chơi DD / DDD hay không.
- Luật 6
- Đề cập đến Quy tắc chuỗi dài
- Nắm quyền kiểm soát
- giống như chơi DD / DDD, như một tác dụng phụ quan trọng, cung cấp tùy chọn lặp lại chơi DD / DDD trong các chuỗi tiếp theo.
- Lượt
- một chuỗi các bước di chuyển liên tiếp của một người chơi
Theo dõi cập nhật sắp tới