Tạo A Board Game AI


9

Tôi muốn viết mã một trò chơi cờ có tên là Okey và chủ yếu phổ biến ở Thổ Nhĩ Kỳ. http://en.wikipedia.org/wiki/Okey

Nhưng tôi đã có một số vấn đề về AI.

Firslty hãy để tôi giải thích trò chơi ..

Trò chơi được chơi bởi 4 người chơi.

Trong trò chơi này có 106 viên gạch, 2 trong số đó là joker giả. 104 gạch khác được chia 4 màu thường là xanh lá cây, đen, xanh dương và đỏ. Tất cả các màu sắc có hai bộ gạch. Một tập ise chứa 13 ô được đánh số liên tục từ 1 đến 13.

Mỗi người chơi bắt đầu 14 ô (một bắt đầu 15 và bắt đầu trước) và ném một trong các ô không mong muốn nhất cho người chơi tiếp theo. Người chơi tiếp theo có thể lấy được ô này hoặc có thể lấy một ô khác từ ngăn xếp ở giữa bàn. Trò chơi chơi ngược chiều kim đồng hồ ..

Mục đích của trò chơi này là tìm ra chuỗi 14 ô hợp lệ càng sớm càng tốt. Người chơi có thể căn chỉnh các ô theo các số liên tiếp trong cùng một màu cho đến 13. Đối với bài kiểm tra Green 1, Green 2, Green 3. Có một ngoại lệ ở đây, 1 có thể được theo dõi đến 13. Ví dụ: Red 12, Red 13 và Red 1 là một bộ hợp lệ. Nhưng Đỏ 13, Đỏ 1 và Đỏ 2 không hợp lệ.

Hoặc người chơi có thể căn chỉnh gạch theo màu sắc trong cùng một số. Đối với kỳ thi Green 1, Black 1, Red 1, Blue 1.

Mỗi bộ cần có từ 3 ô trở lên để hợp lệ và mỗi bộ này được đặt tên là "Mỗi". Ít hơn 3 gạch không hợp lệ cho kết thúc. Một bộ kết thúc hợp lệ có thể được như thế này. G: Xanh lục, B: Xanh lam, R: Đỏ, BL: Đen G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13

Điều cuối cùng, khi bắt đầu trò chơi, một ô được chọn để xác định joker (okey). Ví dụ: nếu bạn chọn Blue 3; Blue 4 sẽ là joker (okey) và người chơi có thể sử dụng ô này thay vì bất kỳ ô nào mà người chơi cần để giành chiến thắng hoặc hoàn thành một bộ (mỗi).

Tất nhiên các quy tắc này là quy tắc chung và tóm tắt để giải thích câu hỏi. Nếu bạn có thể đọc tiếng Anh, bạn có thể kiểm tra liên kết này để biết thêm thông tin http://tr.wikipedia.org/wiki/Okey hoặc trang được dịch bởi Google Dịch http://translate.google.com/translate?js=n&prev=_t&hl= vi & eg = UTF-8 & layout = 2 & eotf = 1 & sl = tr & tl = en & u = http: //tr.wikipedia.org/wiki/Okey

Vậy thuật toán AI nào tôi có thể sử dụng? Tôi đã tìm kiếm lý thuyết minimax và cắt tỉa alpha beta. Nhưng những lý thuyết này thường nói về 2 người chơi trò chơi như cờ vua hoặc tic-tac-toe.

Câu hỏi ban đầu là tại stackoverflow: /programming/4419628/creating-a-board-game-ai


1
Bạn có thể sử dụng nhiều thuật toán AI, vì vậy "cái nào" là sự đánh đổi trong thiết kế (hoặc có thể là kỹ thuật). Bạn có muốn một AI "hoàn hảo" có thể "giải quyết" trò chơi (tức là chơi tối ưu) không? Hay bạn muốn một AI "trò chơi" chơi đủ tốt để không tự làm xấu mình, nhưng đủ yếu để có thể đánh bại được (đặc biệt nếu bạn muốn một vài cấp độ khó)? Hay bạn chỉ muốn một AI "câm" trần trụi chơi mà không logic để bạn có thể thử nghiệm trò chơi? Rất nhiều sự lựa chọn, không có gì là đúng hay sai.
Ian Schreiber

Tôi nghĩ bạn sẽ cần một thuật toán được phát triển riêng cho vấn đề này, mặc dù bạn có thể sử dụng các kỹ thuật / thuật toán khác nhau trong đó. Bạn có thể nhận được câu trả lời tốt trên ai.stackexchange.com
Matthew Đọc

@Ian, tôi muốn rằng AI có thể tự chơi trò chơi chấp nhận được. Có thể sau này tôi có thể thêm mức độ khó khăn. Vì vậy, tôi cần một điểm khởi đầu. @Matthew tôi sẽ thêm câu hỏi của tôi vào đó. Cảm ơn tất cả.
bahadir arslan

Ôi! Có vẻ như ai.stackexchange.com đã bị đóng cửa, mặc dù đó sẽ là nơi hoàn hảo để hỏi ... buồn.
bummzack

Các phiên bản nhiều người chơi nổi tiếng của minmax là MaxN và Paranoid Search
Druzil

Câu trả lời:


3

Nếu bạn trao đổi gạch cho thẻ, mô tả của trò chơi nghe có vẻ cực kỳ giống với trò chơi thẻ Gin Rummy. Bạn có thể tìm thấy một số tài nguyên AI trực tiếp bằng cách tìm kiếm dựa vào đó.

Một tùy chọn cho AI không rõ ràng về số lượng người chơi và có thể được sử dụng để tạo các tính cách AI khác nhau:

  1. Chơi trò chơi cờ bàn, lý tưởng nhất là với một số người bạn, mặc dù bạn có thể tự chơi tất cả các tay, nhưng với một máy tính tiện dụng và Excel mở.
  2. Nói ra tải quá trình suy nghĩ của bạn là gì. Sẽ có một số điểm riêng biệt mà bạn xem xét khi đưa ra quyết định. Những thứ như "liệu ô không mong muốn có cho tôi một bộ có thể chơi được không" hoặc "giúp tôi một bước gần với một bộ" hoặc "thêm vào một bộ có thể phát hiện có".
  3. Sau đó, khi bạn có danh sách tất cả các mục bạn xem xét khi đưa ra quyết định chọn loại gạch nào và loại bỏ gạch nào sẽ bắt đầu tạo trọng số cho chúng dựa trên những gì quan trọng nhất đối với bạn.
    1. Ví dụ: Việc lấy ô thứ 3 theo trình tự có thể quan trọng gấp ba lần so với lấy ô thứ 4 trong chuỗi hiện có.
  4. Khi bạn có tất cả các trọng số này cho tất cả những điều bạn nhìn vào khi đưa ra quyết định, bạn có thể sử dụng Excel để tính điểm cho mỗi hành động. Vì vậy, bạn có một bảng tính trong đó mỗi hàng đại diện cho một lựa chọn hành động và mỗi cột đại diện cho một yếu tố quyết định. Nếu yếu tố đó đúng với hành động đó, bạn nhân số nhân với trọng số, nếu yếu tố đó là sai, bạn cho điểm không. Sau đó, bạn cộng tất cả các điểm số và điểm có giá trị cao nhất là những gì AI sẽ chọn để làm.
  5. Chơi trò chơi với Excel mở. Mỗi lượt xem liệu kết quả điểm có khớp với kết quả bạn sẽ chọn không. Nếu nó không điều chỉnh trọng lượng dựa trên suy nghĩ của bạn cho đến khi nó không. Sau vài trò chơi, AI sẽ chơi trò chơi giống như cách bạn làm. Nếu bạn đã chơi liên tục với một nhóm bạn có trọng lượng khác nhau thì bạn sẽ có AI với nhiều tính cách khác nhau.

Sau đó, bạn có thể kiểm soát độ khó bằng cách không phải luôn luôn chọn tùy chọn được xếp hạng cao nhất. Vì điểm càng thấp thì quyết định càng tệ.


Dưới đây là một bài viết về việc tạo AI cho Gin Rummy. Nó có thể chứng minh một số hiểu biết hữu ích. aifactory.co.uk/newsletter 2007_02_imperinf_info.htm
Tim Holt

Tôi sẽ xem xét điều này càng sớm càng tốt. Cảm ơn bạn @Tim Holt và @skerslake
bahadir arslan

Tôi cũng sẽ tìm kiếm các chiến lược MahJongg. Nó không hoàn toàn liên quan chặt chẽ nhưng nó vẫn gần gũi.
Loren Pechtel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.