আমি কীভাবে অনন্য গেম আইডিগুলি তৈরি করতে পারি যা ব্যবহারকারীদের জন্য বন্ধুত্বপূর্ণ - যাতে কোনও ব্যবহারকারী গেমটিতে যোগদানের জন্য সহজেই সেই গেম আইডি অন্য কাউকে দিতে পারে।
আমি সি # দিয়ে সিলভারলাইটে আমার গেমটি তৈরি করছি।
আমি কীভাবে অনন্য গেম আইডিগুলি তৈরি করতে পারি যা ব্যবহারকারীদের জন্য বন্ধুত্বপূর্ণ - যাতে কোনও ব্যবহারকারী গেমটিতে যোগদানের জন্য সহজেই সেই গেম আইডি অন্য কাউকে দিতে পারে।
আমি সি # দিয়ে সিলভারলাইটে আমার গেমটি তৈরি করছি।
উত্তর:
আপনার যদি কোনও অনুমোদনযোগ্য উত্স থাকে তবে সেই সমস্যাটি সহজ (যা আমি ধরে নিচ্ছি যে কোনও ব্যবহারকারী কোনও গেমের সাথে সংযোগ স্থাপনের জন্য কোনও আইডি রাখছে তবে সেটি কিছু কেন্দ্রীয় সার্ভার ব্যবহার করে পুনঃনির্দেশিত হচ্ছে)। ইউআইডি তৈরির জন্য http://www.safepasswd.com এর মতো একটি অ্যালগরিদম ব্যবহার করুন যা মূলত অভিধানের শব্দ + ছোট সংখ্যা numbers যদি সার্ভারের সংখ্যা তুলনামূলকভাবে কম হয় তবে আপনি এমনকি একটি নিষ্পাপ অ্যালগরিদমও করতে পারেন যা বর্তমানে কিছু ব্যবহার না করা অবধি কিছু এলোমেলো করে তোলে।
আপনি যদি চান যে আপনার ক্লায়েন্টরা ইউআইডিগুলির উত্স হয় তবে আপনাকে সেই আইডিগুলির ব্যবহারকারী বান্ধব অংশটি ফেলে দিতে হবে। আপনি কোডিং সাইডে কাজ করা সহজ, যেহেতু আপনি কেবলমাত্র সিস্টেম.গুইড.ইউউইউজিড ()। টুস্ট্রিং () ব্যবহার করছেন। এটি হ'ল 100% সময়ের অনন্যতার গ্যারান্টিযুক্ত সমস্ত উদ্দেশ্য এবং উদ্দেশ্যে। সূত্র
তারপরে আবার জিইউইডিগুলি কিছুটা ওভারকিল। আইপি বা ব্যবহারকারীর নাম মনে রাখা সহজ হবে খ
একটি পদ্ধতি হ'ল অভিধান ব্যবহার করা এবং একটি সংখ্যা স্কিমের ভিত্তিতে শব্দ নির্বাচন করা। প্রতিটি ব্যবহারকারীর শনাক্ত করতে অনন্য 32-বিট পূর্ণসংখ্যার এবং 16-বিট শব্দের প্রত্যেকের জন্য একটি অভিধানকে (শব্দের অ্যারে) সূচী করুন। এইভাবে, আপনি প্রকৃত শব্দ ব্যবহার করে তাদের আইডি উপস্থাপন করতে পারেন এবং প্রতিটি সনাক্তকারী অনন্য।
আর একটি পদ্ধতি হ'ল বাষ্প যা ব্যবহার করে তার অনুরূপ কিছু বাস্তবায়ন করা: ব্যবহারকারীরা নিজেরাই বেছে নেওয়া আইডি দিয়ে লগইন করার অনুমতি দিন এবং পরে তাদের যে কোনও ডিসপ্লে আইডি নির্দিষ্ট করতে দিন। উদাহরণস্বরূপ, তাদের লগইন আইডি তাদের ইমেল হতে পারে এবং তাদের প্রদর্শনের নামটি তাদের প্রথম নাম হতে পারে। এই পদ্ধতিতে ব্যবহারকারী তাদের অনন্য সনাক্তকারীকে ভাগ করতে পারে তবে তাদের পছন্দের নামের সাথে সনাক্তও করতে পারে।
মন্তব্যগুলিতে FuzzYspo0N এর উত্তরটি খুব ভাল। মূলত এই সমস্যাটি এলোমেলোভাবে জটিল না করে গেম আইডিগুলিকে সংঘর্ষ এড়াতে যথেষ্ট অনন্য করে তোলে। স্ট্যান্ডার্ড 128-বিট জিইউইডিগুলি মেশিনগুলির মধ্যে সংঘর্ষের সম্ভাবনা তৈরি করতে স্থানীয় তথ্য (যেমন আপনার ম্যাক এবং অন্যান্য উপাদানগুলির মতো) ব্যবহার করে তাদের স্বাতন্ত্র্য অর্জন করে, তারপরে সেই মেশিনের মধ্যে সংঘর্ষের সম্ভাবনা তৈরি করতে একটি এলোমেলো এবং সময় ভিত্তিক ফ্যাক্টর যুক্ত করুন খুব ছোট.
আপনি নিজের আইডি তৈরি করতে একই কৌশল অনুসরণ করতে পারেন। ব্যবহারকারীর কাছে স্মরণীয় কিছু হলেও অপেক্ষাকৃত অনন্য (যদি ব্যবহারকারীর একটি বিশ্বব্যাপী ব্যবহারকারীর নাম রয়েছে যা একটি ভাল শুরু, বা মেশিনের নাম / আইপি) দিয়ে শুরু করুন এবং আপনি অনন্য কিছু তৈরি না করা পর্যন্ত অন্যান্য কারণ যুক্ত করুন। মেশিনের নামের মতো স্থানীয় কিছু বাছাই করার মাধ্যমে, আপনি সম্ভাব্য সংঘর্ষের সেটকে যথেষ্ট পরিমাণে সীমাবদ্ধ করে রেখেছেন যে কোনও প্রশ্ন রয়েছে কিনা তা আপনি জিজ্ঞাসা করতে শুরু করতে পারেন। উদাহরণস্বরূপ, একবার আপনি কেবল সেই ব্যবহারকারী বা কেবল সেই মেশিনে সীমাবদ্ধ রেখেছিলেন, আপনি ইউআইডি ইতিমধ্যে ব্যবহার করছেন কিনা তা যাচাই করতে আপনাকে ঠিক কোথায় যেতে হবে তা আপনি জানেন।
উদাহরণস্বরূপ যদি আমি জানি যে আমার ব্যবহারকারীর নামটি বিস্তৃত সিস্টেমের মতো, তবে মিঃ ক্র্যাঙ্কি: 1 একটি বৈধ ইউআইডি। যদি আমি মিস্টার ক্র্যাঙ্কি: 1 ইতিমধ্যে ব্যবহার (অন্য কোনও পদ্ধতিতে) ব্যবহার করছে কিনা তা যদি জানতে পারি, তবে আমি কোনও অনন্য সন্ধান না করা পর্যন্ত আমি কেবল চেষ্টা করে সংখ্যাগুলি চালিয়ে যেতে পারি।
অন্য কিছু ফ্যাক্টর ব্যবহার করে (যেমন এলোমেলোতা বা সময়), আমি প্রথমবার একটি অব্যবহৃত আইডি বেছে নেওয়ার সম্ভাবনা বাড়িয়ে তুলতে পারি। উদাহরণস্বরূপ, যদি আপনি জানেন যে আপনি সম্ভবত দ্বিতীয়টি একাধিক অধিবেশন তৈরি করতে পারবেন না, তবে মিঃ ক্র্যাঙ্কি: 122730 (বর্তমান সময়, দ্বিতীয় থেকে) ব্যবহার করে আমাকে একটি অনন্য আইডি পাবেন যা ব্যবহারকারীর কাছে তুলনামূলকভাবে স্মরণীয়।
যতক্ষণ না আপনার তুলনামূলকভাবে অনন্য তথ্যের কিছু অংশ রয়েছে (নিখুঁত হতে হবে না, কেবল বেশিরভাগ অনন্য), আপনি এটি একটি প্রারম্ভিক ব্লক হিসাবে ব্যবহার করতে পারেন এবং এর অর্থ সত্যিকারের অনন্য অংশ (কোনও ধরণের একটি পূর্ণসংখ্যা কোড) পারে অনেক বেশি খাটো হতে হবে, এবং ইউআইডি আরও স্মরণীয়।