দাবা ইঞ্জিন লেখার জন্য কোন দৃষ্টান্ত ব্যবহার করবেন?


9

আপনি যদি দাবা গেম ইঞ্জিন লিখতে যাচ্ছেন তবে আপনি কোন প্রোগ্রামিং দৃষ্টান্ত ব্যবহার করবেন (ওওপি, পদ্ধতিগত, ইত্যাদি) এবং কেন আপনি এটি চয়ন করবেন? দাবা ইঞ্জিন দ্বারা, আমি এমন একটি প্রোগ্রামের অংশটি বোঝাই যা বর্তমান বোর্ডকে মূল্যায়ন করে এবং কম্পিউটারের পরবর্তী পদক্ষেপ স্থির করে।

আমি জিজ্ঞাসা করছি কারণ আমি ভেবেছিলাম দাবা ইঞ্জিনটি লিখতে মজাদার হতে পারে। তারপরে এটি আমার কাছে ঘটেছিল যে আমি এটিকে ফাংশনাল প্রোগ্রামিং শেখার প্রকল্প হিসাবে ব্যবহার করতে পারি। তারপরে এটি আমার কাছে ঘটেছিল যে কিছু সমস্যাগুলি কার্যকরী দৃষ্টান্তের সাথে উপযুক্ত নয়। তারপরে আমার মনে হয়েছিল যে এটি সম্ভবত আলোচনার চারণ হতে পারে।


1
এটি স্ক্র্যাচ থেকে সি সংকলক লেখার অনুরূপ। আমি চাকা পুনরুদ্ধার করতে হবে না। আমি বিদ্যমান বিদ্যমান অধ্যয়ন করতে হবে।
কাজ

10
@ জোব: আমার লক্ষ্য ফলাফলের চেয়ে প্রক্রিয়া। এমনকি যদি আমি খুব খারাপ ইঞ্জিন দিয়ে শেষ করি, তবে আমি মনে করি যে সমস্যাটি বিশ্লেষণ করার এবং এটির আক্রমণ করার একটি উপায় বিকাশের প্রক্রিয়াটির কোনও মূল্য থাকতে পারে, বিশেষত যদি আমি প্রক্রিয়াটিতে কিছু নতুন প্রোগ্রামিং পদ্ধতি শিখেছি।
অকর্মা

1
শুভকামনা। কোনও প্রকৃত নিয়োগকর্তা আপনাকে কখনও স্ক্র্যাচ থেকে একটি বিকাশ করতে বলবে না, তবে একটি সাক্ষাত্কারের সময় তারা আপনাকে জিজ্ঞাসা করতে পারে আপনি কীভাবে সমস্যাটিকে আক্রমণ করবেন attack
জব

6
@ জোব প্রোগ্রামিং লাইফ আলিঙ্গনের একটি বড় অংশ বিষয়গুলি কোডিং করছে কারণ তাদের জন্য একটি নির্দিষ্ট প্রয়োজন নেই, তবে আপনি করতে পারেন বলে।

1
@ মার্ক, কীভাবে জীবনকে আলিঙ্গন করার বিষয়ে;) = ভ্রমণ, ভাষা, থিয়েটার, কবিতা, বিদেশে ইত্যাদি? আমি প্রোগ্রামিং পছন্দ করি, তবে আমি যখন প্রতি সেটি করছি না, তখন আমার আরও 1000 টি জিনিস করার দরকার আছে।
কাজ

উত্তর:


7

যতদূর আমি জানি মূল্যায়ন কোনও সমান্তরাল সমস্যা নয় তবে বিভিন্ন চেইনের মূল্যায়ন হ'ল, তাই আমি একাধিক কোর এবং মাল্টিথ্রেডিং ব্যবহার করার জন্য অবশ্যই এটি লিখব।

আপনি কার্যকরী বা আধা-কার্যকরী হন তা স্বাদের বিষয়। ব্যক্তিগতভাবে আমি ওওপিতে যেতে চাই এবং কার্যকরী প্রোগ্রামিং এবং সমান্তরালকরণের জন্য সমর্থনটি ব্যবহার করব যা উদাহরণস্বরূপ সি #

অন্যদিকে, আমি যদি দাবা ইঞ্জিন লিখি তবে আমি এমন একটি তৈরি করার চেষ্টা করতাম যা দাবা সম্পর্কে সত্যই "চিন্তা" করতে পারে। বোর্ড মূল্যায়ন ব্যবহারের জন্য প্রাণবন্ত বল প্রয়োগের জন্য সমস্ত সম্ভাব্য সংমিশ্রণ মৃত্যুর জন্য এবং অত্যন্ত ভালভাবে করা হয়েছে, তবে আরও বেশি চিন্তাভাবনা / অস্পষ্ট দাবা ইঞ্জিন করার ক্ষেত্রে আফগানিস্তানের তেমন অগ্রগতি হয়নি। এটা চ্যালেঞ্জ হতে চাই! :)

সত্যিই কৌতুকপূর্ণ অবস্থানের প্লে এবং দৃ strong় পদক্ষেপের সাথে কিছু গেমস সন্ধান করুন (এগুলিকে চিহ্নিত করা হয়েছে! বা !!) এবং আপনার ইঞ্জিনটি প্রশিক্ষণ এবং পরীক্ষা করতে তাদের ব্যবহার করুন।


2

আমি অনুমান করি যে এটি আপনার লক্ষ্যগুলির উপর নির্ভর করে, যা আমি গ্রহণ করি তা কঠোরভাবে অনুশাসনীয়। আপনি যদি একটি প্রতিযোগিতামূলক পণ্য লেখার চেষ্টা করছেন, আপনি সর্বনিম্ন স্তরের মূল্যায়নকারীদের সর্বাধিক দক্ষতা চাইবেন। বিট স্তরের সমান্তরালতার জন্য এখানে প্রচুর সুযোগ। এছাড়াও হ্যাশ টেবিলের জন্য প্রচুর সুযোগ। সমান্তরালতা কাজে লাগানোর সুযোগও রয়েছে। তারপরে উচ্চতর স্তরে, আপনি সম্ভবত এআইয়ের জন্য একটি সিস্টেম ভাল চান, যার অর্থ সম্ভবত একটি কার্যকরী প্রোগ্রামিং ল্যাঙ্গুয়েজ। স্পষ্টতই আপনি এই সমস্ত কিছু করতে চান না, সেগুলির মধ্যে একটি বা দুটি বাছাই করুন এবং এই বিষয়ে সন্তুষ্ট থাকুন যে আপনার প্রকল্পটি আরও ভাল প্রোগ্রামগুলির সাথে প্রতিযোগিতামূলক হবে না।


2

আমি দ্য টার্ক নামে আমার দাবা ইঞ্জিনে ওওপি দৃষ্টান্তটি বেছে নিয়েছি । আমার দাবা ইঞ্জিনের প্রথম সংস্করণটি ওওপি-র পরিবর্তে আরও বেশি প্রক্রিয়াজাতীয় লেখা হয়েছিল long ততক্ষণ আমি লম্বা কোড ব্লক এবং দুর্বল নকশার কারণে আমার দাবা ইঞ্জিনটি উন্নত করতে এত কঠিন অনুভব করেছি।

এটি দাবা ইঞ্জিনটি লেখার সময় আপনি কী অর্জন করতে চান তার উপর নির্ভর করে I আপনি যদি একটি দাবা ইঞ্জিন তৈরি করতে চান যা খুব শক্তিশালী তাই দেরীতে আবদ্ধ হওয়ার কারণে ওওপি ভাষায় এটি করা সম্ভবও নয়। আপনি যদি কেবল প্রোগ্রামিং শিখতে চান এবং দাবা ইঞ্জিন লিখে মজা পেতে চান তবে পরিচালিত ভাষাগুলি এবং ওওপি আপনার বন্ধু হবে। আমি আপনাকে সি # বাছাই করার পরামর্শ দিতে পারি কারণ এটি দিয়ে আরও প্রক্রিয়াগত উপায়ে দাবা ইঞ্জিন লেখা সম্ভব।


এটি কীভাবে ইএলও অনুসারে রেট দেয়? কৌতুক তুলনায়?

@ থরবজর্ন রাভন অ্যান্ডারসন - সি-তে রচিত এক উচ্চতর ওপেন সোর্স দাবা ইঞ্জিন ক্রাফটি এবং দাবার প্রোগ্রামিংয়ে তাঁর জীবন কাটাচ্ছেন ডাঃ রবার্ট এম হায়াত রচনা। দুর্ভাগ্যজনকভাবে আমি এলো রেটিংটি পরীক্ষা করিনি কারণ এখনও পরীক্ষার আগে রেটিংয়ের আগে অনেক কিছু করার দরকার আছে urrentআর ধীরে ধীরে মূল্যায়ন করা কেবল টুকরো মানগুলি মূল্যায়ণ করা হয় সুতরাং এর যথেষ্ট দুর্বল মূল্যায়ন রয়েছে এবং এখনও আমি প্রয়োজনীয় সমস্ত অ্যালগরিদম এখনও প্রয়োগ করে নি। দুর্ভাগ্য এই মুহূর্তে আমার এই প্রকল্পে ব্যয় করার সময় নেই। আমি আশা করি যে একদিন এটি চালিয়ে যাওয়া সম্ভব হবে।
ফ্রেশব্লুড

আহ দুঃখিত, আমি ভেবেছিলাম এটি আসলে খেলতে পারে। আমার খারাপ।

@ থরবজর্ন রাভন অ্যান্ডারসন - আমি সেখানে কয়েকটি প্রকাশনা প্রকাশ করেছি এবং সর্বশেষতম সংগ্রহস্থল পরিবর্তনটি তৈরির জন্য প্রস্তুত। আমি কেবল বলতে চেয়েছিলাম এটি এই মুহূর্তে বেশ দুর্বল।
ফ্রেশব্লুড

2

আমি চতুর্থ ভাষা শেখার মাধ্যম হিসাবে একটি সহজ দাবা প্রোগ্রাম পোর্ট করেছি। এটি এই অতি আবশ্যক সমস্যাটির জন্য দুর্দান্ত ফিট হিসাবে পরিণত হয়েছে এবং আমি অনেক কিছু শিখেছি। খোলা স্ট্যাকটি আমাকে একটি অনন্য ফ্যাশনে আলফা-বিটা অনুসন্ধান প্রয়োগ করার অনুমতি দেয় যা আমাকে অ্যালগরিদমের আরও গভীর অন্তর্দৃষ্টি দিয়েছিল।

কেউ ভাবেন যে দাবা প্রোগ্রামগুলির জন্য কার্যকরী প্রোগ্রামিং দুর্দান্ত হবে কারণ মূল অ্যালগরিদমগুলি (আলফা-বিটা গভীরতার প্রথম অনুসন্ধান, মূল্যায়ন) পুনরাবৃত্ত এবং কার্যকরীভাবে কঠোর। তবে, একটি দাবা প্রোগ্রাম দক্ষতায় মারা যায় এবং মারা যায় এবং কার্যকরী ভাষার বর্তমান ফসলের কোনওটিরই লক্ষ্য নেই। মেমরির ব্যবহার, মাল্টি-থ্রেডিং, গ্লোবাল স্টেট এবং কোড উত্পন্নকরণের সর্বাধিক নিয়ন্ত্রণের জন্য শীর্ষ একশতম অত্যাধুনিক ইঞ্জিনগুলি সমস্ত আবশ্যকীয় ভাষা (বেশিরভাগ সি / সি ++, তারপরে ডেলফি) ব্যবহার করে। সমস্ত কার্যকরী ভাষাগুলি মূল ডেটা স্ট্রাকচারের জন্য গতিশীল মেমরি বরাদ্দ ব্যবহার করে, যা দাবা প্রোগ্রামের জন্য মৃত্যু।

আমি এখনও দেখতে চাই যে কেউ একটি কার্যকরী ভাষা ব্যবহার করে শীর্ষ 100 দাবা ইঞ্জিনগুলিতে প্রবেশ করার চেষ্টা করছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.