কনওয়ের গেম অফ লাইফে একটি ডিজিটাল ঘড়ি তৈরি করুন


478

আপনার কাজটি হ'ল ডিজিটাল ঘড়ির প্রতিনিধিত্ব করে গেম অফ লাইফ সিমুলেশন তৈরি করা, যা নিম্নলিখিত বৈশিষ্ট্যগুলিকে সন্তুষ্ট করে:

  1. ঘড়ি ঘন্টা এবং দশমিক মধ্যে মিনিট প্রদর্শন (যেমন 12:00, 3:59, 7:24) দিনের 1,440 মিনিট প্রতিটি জন্য একটি ভিন্ন রাষ্ট্রের সাথে - হয় ঘণ্টা 0 থেকে 23 বা 1 থেকে প্রধানমন্ত্রীর সূচকটি 12 যাবে।

  2. প্যাটার্নটি পর্যায়ক্রমিক এবং কোনও বাহ্যিক মিথস্ক্রিয়া ছাড়াই রাষ্ট্রটি প্রায় লুপ করে।

  3. নিয়মিত বিরতিতে মিনিট আপডেট - মিনিটের এক পরিবর্তন থেকে পরের মুহূর্তে একই সংখ্যক প্রজন্মের সময় লাগে takes

  4. কোনও বেনামে বাইস্ট্যান্ডার এক নজরে বলতে সক্ষম হবেন যে ডিসপ্লেটি ডিজিটাল ঘড়ি বলে মনে করা হচ্ছে। বিশেষত, এটি অন্তর্ভুক্ত:

    • অঙ্কগুলি দৃশ্যমান এবং স্পষ্টত পৃথকযোগ্য। কোন সময়টি প্রদর্শিত হচ্ছে তা আপনি অবশ্যই এক নজরে নিশ্চিতভাবে বলতে সক্ষম হবেন।

    • অঙ্কগুলি স্থানে আপডেট। প্রতিটি নতুন নম্বর পূর্ববর্তী সংখ্যার মতো একই জায়গায় উপস্থিত হয় এবং অঙ্কগুলির সীমানা বাক্সগুলির কোনও গতি নেই। (বিশেষত, একটি অঙ্কে বিভিন্ন জায়গায় 10 টি বিভিন্ন অঙ্ক থাকে না যা প্রতিবার অঙ্কগুলি পরিবর্তিত হয়)

    • অঙ্কগুলি একে অপরের পাশে উপস্থিত হয়, তাদের মধ্যে অতিরিক্ত পরিমাণের স্থান ছাড়াই।


আপনার প্রোগ্রামটি নিম্নলিখিত বিষয়গুলিতে স্কোর করা হবে, যাতে (উচ্চতর মানদণ্ডের জন্য টাইব্রেকার হিসাবে কম মানদণ্ডের সাথে):

  • বাউন্ডিং বক্সের আকার - সবচেয়ে ছোট ক্ষেত্রের সাথে আয়তক্ষেত্রাকার বাক্স যা প্রদত্ত সমাধানটি সম্পূর্ণরূপে জয়যুক্ত করে।

  • দ্রুততম সম্পাদন - এক মিনিটের জয়ের লক্ষ্যে সবচেয়ে কম প্রজন্ম।

  • প্রাথমিক লাইভ সেল গণনা - ছোট গণনা জিতে।

  • প্রথম পোস্ট - আগের পোস্ট জয়।


5
@ টসকিওমি না, প্রদর্শনটি দশমিক হতে হবে।
জো জেড।

2
আমি নিশ্চিত যে এটি বি 3 / এস 23, তবে আপনি কি নিশ্চিত বা অস্বীকার করতে পারবেন?
কনর ও'ব্রায়েন

2
"তাদের অবশ্যই স্থানে আপডেট করতে হবে - প্রতিটি নতুন নম্বর অবশ্যই আগের সংখ্যার মতো একই জায়গায় উপস্থিত হবে।" আপনি "একই জায়গায়" কীভাবে সংজ্ঞা দিবেন, যেহেতু অঙ্কগুলি অগত্যা আয়তক্ষেত্রাকার হবে না।
মার্টিন এেন্ডার

4
আমাদের দশমিক অঙ্কগুলি কীভাবে বোধগম্য হবে? "যদি আপনি জানেন যে এটি কী এবং আপনি স্কুইন্ট করেন তবে আপনি 0 এবং 8" এর মধ্যে পার্থক্যটি যথেষ্ট বলতে পারবেন, বা "বেনামে বাইস্ট্যান্ডার কী তা প্রম্পটিং" পরীক্ষার সাথে বলতে পারেন তা পাস করতে হবে?
স্পার

3
এটি হ্যাকাডে ব্লগেও পোস্ট হয়েছে: হ্যাকডে ডট
০৩ /

উত্তর:


1012

11,520 প্রজন্ম প্রতি ঘড়ি গণনা / 10,016 x 6,796 বাক্স / 244,596 পপ গণনা

আপনি সেখানে যান ... মজা ছিল।

ঠিক আছে, নকশা অবশ্যই অনুকূল নয়। বাউন্ডিং বক্সের দিক থেকে (those-বিভাগের অঙ্কগুলি বিশাল ) আমি নিশ্চিত নই

তবে, আরে, সুন্দর। দেখুন:

এখানে চিত্র বর্ণনা লিখুন

চালাও এটা!

এই গিস্ট থেকে নকশা পান । ক্লিপবোর্ডে পুরো ফাইলের পাঠ্য অনুলিপি করুন।

নতুন : দাবী করার জন্য এখানে AM এবং PM উভয়ই সূচক সহ একটি সংস্করণ রয়েছে।

যান অনলাইন জাভাস্ক্রিপ্ট Conway জীবন কাল্পনিকআমদানি ক্লিক করুন , নকশা পাঠ্য আটকান। আপনি নকশা দেখতে হবে। তারপরে, সেটিংসে যান এবং প্রজন্মের পদক্ষেপ 512 তে সেট করুন বা সেই লাইনের চারপাশে কিছু স্থাপন করুন বা ঘড়ির প্রদর্শন আপডেট হওয়া দেখতে আপনাকে চিরকাল অপেক্ষা করতে হবে।

রান ক্লিক করুন , কিছুটা অপেক্ষা করুন এবং অবাক হন!

ব্রাউজার সংস্করণে সরাসরি লিঙ্ক

মনে রাখবেন যে এই বিশাল নকশাটি ব্যবহারযোগ্য করে তোলে এমন একমাত্র অ্যালগরিদম হ্যাশ লাইফ। তবে এটির সাহায্যে আপনি সেকেন্ডের মধ্যে পুরো ঘড়ির মোড়কে অর্জন করতে পারেন। অন্যান্য অ্যালগরিদমগুলির সাথে, এমনকি সময়কে পরিবর্তন করাও অবৈধ।

কিভাবে এটা কাজ করে

এটি পি 30 প্রযুক্তি ব্যবহার করে। কেবলমাত্র মৌলিক জিনিস, গ্লাইডার এবং লাইটওয়েট স্পেসশিপ। মূলত, নকশা উপরে-নিচে যায়:

  • একেবারে শীর্ষে, ঘড়ি আছে। এটি একটি 11520 পিরিয়ড ঘড়ি। নোট করুন যে ডিসপ্লেটি যথাযথভাবে আপডেট হয়েছে তা নিশ্চিত করার জন্য আপনার প্রায় 10.000 প্রজন্মের প্রয়োজন, তবে নকশাটি এখনও ছোট সময়ের একটি ঘড়ি (প্রায় 5.000 বা তাই - ঘড়ির 60 এর একাধিক হওয়া প্রয়োজন) সহ স্থিতিশীল হওয়া উচিত।
  • তারপরে, রয়েছে ঘড়ির বিতরণ পর্যায়ে। ক্লক গ্লাইডারটি একটি ভারসাম্য গাছে অনুলিপি করা হয়, তাই শেষে, 32 টি গ্লাইডার কাউন্টারের পর্যায়ে ঠিক একই মুহুর্তে উপস্থিত হয়।
  • কাউন্টার স্টেজটি প্রতিটি রাজ্যের জন্য এবং প্রতিটি সংখ্যার (আমরা দশমিকের মধ্যে গণনা করছি) একটি আরএস ল্যাচ ব্যবহার করে তৈরি করা হয়। সুতরাং মিনিটের ডান ডিজিটের জন্য 10 টি রাজ্য, মিন্টের বাম অঙ্কের জন্য 6 টি রাজ্য এবং কয়েক ঘন্টার জন্য 12 টি রাজ্য থাকে (ঘন্টা উভয় অঙ্কই এখানে একত্রীকরণ করা হয়)। এই গ্রুপগুলির প্রত্যেকের জন্য, কাউন্টারটি শিফট রেজিস্টারের মতো আচরণ করে।
  • গণনা পর্যায়ে দেখার পরে সারণী রয়েছে। তারা রাষ্ট্রের ডালগুলি চালু / বন্ধ কর্মের অংশগুলিতে প্রদর্শন করে।
  • তারপরে, ডিসপ্লে নিজেই। বিভাগগুলি কেবল LWSS এর একাধিক স্ট্রিং দিয়ে তৈরি করা হয়। প্রতিটি বিভাগের নিজের অবস্থা বজায় রাখতে নিজস্ব ল্যাচ রয়েছে। আমি অধ্যায়গুলির একটি সরল যৌক্তিক-ওআর তৈরি করতে পারতাম, তবে কোনও বিভাগ অবশ্যই চালু বা বন্ধ থাকতে হবে এবং এই ল্যাচগুলি থেকে মুক্তি পেতে পারে, তবে অঙ্কগুলি পরিবর্তিত হওয়ার সময় অ-পরিবর্তনশীল বিভাগগুলির জন্য কিছু সমস্যা থাকবে of সিগন্যাল বিলম্ব)। এবং সেখানে লভুক সারণী থেকে অঙ্কের অংশগুলিতে গ্লাইডারগুলির দীর্ঘ স্ট্রিমগুলি আসবে। সুতরাং এটি দেখতে সুন্দর লাগবে না। এবং এটি করা প্রয়োজন। হ্যাঁ.

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

সম্ভাব্য অপ্টিমাইজেশন:

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

26
সুন্দর। চমৎকার উত্তর.
পাভেল

33
@ পোকে আসুন, আপনি নিজেই এটি যুক্ত করার চেষ্টা করতে পারতেন ... যাইহোক, আমি আপনার সন্তুষ্টির জন্য পোস্টটি দু'এইএম + পিএম উভয় সহ সম্পাদনা করেছি।
অস্পষ্ট

48
যাতে আপনি কি জানেন, এই উত্তর হয়েছে বৈশিষ্ট্যযুক্ত মধ্যে Microsiervos স্প্যানিশ প্রযুক্তি সবচেয়ে গুরুত্বপূর্ণ ব্লগগুলির একটিকে উপর, 800K উপর অনুগামীদের সঙ্গে টুইটার
লুইস Mendo

26
@ ররি আপনি আপনার মাথাটি ধরুন, যত তাড়াতাড়ি আপনি তার চেয়ে কয়েকবার শক্ত করে দেওয়ালে আঘাত করতে পারেন। আপনি তারপর শুরু করতে প্রস্তুত।
অস্পষ্ট

34
সুতরাং নকশা প্রক্রিয়াটি হ'ল: "ঠিক আছে, আমার এটির সংঘর্ষ হওয়া দরকার, এবং আমার গ্লাইডারটি এই মুহুর্তে সেখান থেকে এই অবস্থান থেকে আসে Let's আসুন দুটি প্রতিচ্ছবি ব্যবহার করে এটি সেখানে নিয়ে আসি। ক্র্যাপ, যে জিনিসটির সংঘর্ষের প্রয়োজন তা কেবল দুটি প্রজন্মের পদক্ষেপ খুব শীঘ্রই, সেখানে I আমি যদি প্রতিচ্ছবিগুলি কিছুটা সরিয়ে নিই তবে দেখা যাক ... ক্র্যাপ করুন, অনেক দেরি Ok ঠিক আছে, তাদের আরও কিছু জায়গায় ধাক্কা দিন, ক্র্যাপ, আমার গ্লাইডারটি সেখানে যাওয়ার জন্য আমার কাছে ঘর নেই Ok ঠিক আছে, এর পরিবর্তে সেখানে পৌঁছানোর জন্য আরও দুটি অপ্রয়োজনীয় প্রতিচ্ছবি যুক্ত করুন rap ক্র্যাপ, প্রতিচ্ছবিগুলি গ্লাইডারের এই অন্য প্রবাহকে সংঘর্ষে কাটায় ... ক্র্যাপ, আসুন বিছানায় যাই। "
dim
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.