سؤال

Way Way Back (فكر أكثر من 20 عامًا) واجهت رمز مصدر لعبة Gomoku في مجلة كتبت فيها لجهاز الكمبيوتر الخاص بي وكان لدي الكثير من المرح.

كان من الصعب الفوز باللعبة ، لكن الخوارزمية الأساسية لجهاز الكمبيوتر الذكري كانت ببساطة ولم تفسر الكثير من التعليمات البرمجية. أتساءل عما إذا كان أي شخص يعرف هذه الخوارزمية ولديه بعض الروابط مع بعض المصادر أو النظرية حول هذا الموضوع.

كانت الأشياء التي أتذكرها هي أنها خصصت أساسًا صفيفًا غطى اللوحة بأكملها. بعد ذلك ، كلما وضعت أنا ، أو ، وضعت قطعة ، فإنها ستضيف عددًا من الأوزان إلى جميع المواقع الموجودة على السبورة التي قد تؤثر عليها القطعة.

على سبيل المثال (لاحظ أن الأوزان خاطئة بالتأكيد لأنني لا أتذكرها):

1   1   1
 2  2  2
  3 3 3
   444
1234X4321
  3 3 3
 2  2  2
1   1   1

ثم قام ببساطة بمسح الصفيف لموقع مفتوح بأقل قيمة أو أعلى.

الأشياء التي أنا غامض:

  • ربما كان لديها صفيفتان ، واحدة بالنسبة لي وواحدة لنفسها وكان هناك ترجيح دقيقة/كحد أقصى؟
  • قد يكون هناك المزيد من الخوارزمية ، ولكن في جوهرها كانت في الأساس صفيف وأرقام مرجحة

هل هذا يرن جرس مع أي شخص على الإطلاق؟ أي شخص لديه أي شيء من شأنه أن يساعد؟

هل كانت مفيدة؟

المحلول

قراءة وصفك ، والتفكير قليلاً حول هذا الموضوع ، أعتقد أنه ربما يعمل مع صفيف واحد ، بالضبط الطريقة التي وصفتها.

لتحقيق هدف الحصول على خمسة في الصف ، يجب عليك (أ) منع الخصم من النجاح و (ب) خلف نفسك.

لتخلف نفسك ، عليك وضع الحجارة بالقرب من الأحجار الأخرى التي لديك بالفعل على السبورة ، لذلك من المنطقي إضافة درجة إيجابية للحقول بجانب أحجارك التي يمكن أن تشارك في صف واحد. إما أن المثال الخطي الذي قدمته ، أو أن شيئًا تربيعيًا ربما يعمل بشكل جيد.

لمنع خصمك من النجاح ، عليك وضع الحجارة بجانب له / لها الحجارة. من الجيد بشكل خاص إذا قمت بضرب عصفورين بحجر واحد ، لذلك يجب أن تزيد أحجار الخصم من قيمة الحقول المحيطة بنفس الطريقة ستحاول الخوارزمية قطع الخصم.

أهم شيء هنا هو ترجيح الحقول المختلفة ، وما إذا كانت أحجار الخصم موزونة بشكل مختلف عنك. لسوء الحظ ، لا يمكنني المساعدة في ذلك ، ولكن يجب أن تكون القيم بسيطة بشكل معقول لمعرفة التجربة والخطأ بمجرد كتابة اللعبة نفسها.

ومع ذلك ، هذا نهج أساسي للغاية ، وسيتم تفوقه بواسطة خوارزمية بحث الأشجار. البحث عن Google ، هناك علاقة ذات صلة ورقة عن البحث عن التهديد, ، والذي يبدو أنه يعمل بشكل جيد لجوموكو. الورقة وراء جدار الدفع على الرغم من:/

نصائح أخرى

لم أقرأ المقال ، لكن من الوصف سيكون تخميني هو شكل من أشكال خوارزمية الحد الأدنى

لقد رأيت هذه الخوارزمية التي ذكرتها-كان الأمر بسيطًا وسريعًا (لا يوجد تراجع :-)) ولعبت جيدًا :-) يجب أن يكون لدي المصدر في مكان ما ولكنه منذ سنوات ... كانت هناك أوزان لحجائك اعتمادًا على مقدار الحجارة الأخرى القريبة ، وأوزان الحجارة. كانت هذه أقل ، لذا فضلت الخوارزمية استراتيجية الهجوم.

ولكن هذا بالطبع خوارزمية تافهة للغاية. تم العثور على استراتيجية الفوز بالفعل. انظر هذه الورقة: L. Victor Allis ، HJ Van Den Herik ، MPH Huntjens. Go-Moku والبحث في مساحة التهديد. لقد ساعدني ذلك كثيرًا عندما كنت أكتب برنامجي الخاص. وبهذه الطريقة ، ستتمكن من كتابة البرنامج الذي يعد جيدًا في مهاجمة الخصم وإيجاد مجموعات رابحة.

إنها لعبة قديمة - لقد وجدت الرمز على رمز مصدر الكوكب. لقد لعبت هذه اللعبة خلال الكلية ، وفي 286 يومًا ، كان لدي نسخة أساسية منها.

هذا هو البرنامج الذي تبحث عنهftp://ftp.mrynet.com/usenix/80.1/boulder/dpw/gomoku.c

يبلغ عمره 40 عامًا تقريبًا

العمل على إصدار مفتوح المصدر لـ iPhone.

ضربني إذا كنت مهتمًا بالانضمام!

https://github.com/kigster/kigomoku

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top