কোড গল্ফ এর অ্যানিমেশন


28

আমি যখন কোড-গল্ফ এন্ট্রিগুলি দেখি যা কয়েকটি অক্ষর ছুঁড়ে মারে, কোডটি হিট করে দেয়, আমি পাশাপাশি সম্পাদনা ইতিহাসের দিকে তাকিয়ে থাকি। দেখুন এবং শিখুন :)

এই চ্যালেঞ্জটি এমন একটি প্রোগ্রাম তৈরি করা যা প্রিয়াটিস্ট অ্যানিমেটেড ডিফগুলি তৈরি করে।

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

এখানে একটি সরল উদাহরণ স্ক্রিপ্ট যা পাইথনের এনডিফ এবং বালিশের প্রাথমিক অ্যানিমেটেড জিআইএফ সমর্থন ব্যবহার করে এবং প্রতিটি অ্যাড এবং সরানো পদক্ষেপটি অ্যানিমেট করে:

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

এবং আশা করি জনপ্রিয় এন্ট্রিগুলি কোডগলফ.স্ট্যাকেক্সেঞ্জ ডটকম সম্প্রদায়ের জন্যও দরকারী মজাদার সরঞ্জামে পরিণত হবে। সুতরাং যদি প্রোগ্রামগুলি অন্যের পক্ষে চালানো ও ব্যবহার করা সহজ হয় তবে এটি প্রশংসিত।


1
মন্তব্যগুলি এখানে বর্ধিত কথোপকথনটি বন্ধ হয়ে আসছে বলে মনে হচ্ছে। এই মেটা প্রশ্নের উপরে এই পোস্টটি সম্পর্কে আলোচনা পাওয়া যাবে ।
ডোরকনবব

উত্তর:


11

(ওপি)

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

এটি প্রশ্নের উত্তর পাইথন স্ক্রিপ্টের ভিত্তিতে তৈরি।

আমি একটি চালক ধৈর্য পার্থক্য পরিবর্তে সহজ সম্পাদনা দূরত্ব ব্যবহার।

জিনোমগুলি সারিবদ্ধ করার জন্য একাধিক সিকোয়েন্স অ্যালাইনমেন্ট অ্যালগরিদম রয়েছে এবং তারা সংলগ্ন ফ্রেমের প্রতিটি জোড়া বিবেচনা করার চেয়ে আরও ভাল কাজ করতে পারে?

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

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

একটি গতিশীল ভাষায় সিনট্যাক্স হাইলাইট করা সংহত করা সহজ ছিল; হাইলাইটারটি চরিত্র এবং রঙের জোড়াগুলির তালিকা আউটপুট করে এবং তার পৃথক পৃথক স্ট্রিং বা তুলনীয়তার যেকোন স্বেচ্ছাসেবক পুনরাবৃত্তিগুলি কিনা তার চেয়ে আলাদা! একটি আকর্ষণীয় - এবং ইচ্ছাকৃত - প্রথমে হাইলাইট করার প্রভাব এবং তারপরে ভিন্নতা হ'ল যে অক্ষরগুলি অপরিবর্তিত থাকে তবে রঙ পরিবর্তন করে অ্যানিমেটেড হয়। আমি প্রতিটি ফ্রেম হাইলাইটটি গণনা করতে চাইনি কারণ এর অর্থ হ'ল আপনি যদি একটি ক্লোজিং স্ট্রিং মুছবেন আপনি হঠাৎ স্ট্রিং হিসাবে একটি বড় অংশের টেক্সট ফ্ল্যাশ করতে চান।

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

সোর্স কোড


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