অশ্ব ঘোড়দৌড়ের একটি দিন


10

পটভূমি

90 এর দশকের শেষ / প্রথম 00 এর দশকে যখন ফ্ল্যাশ ওয়েব ডিজাইনটি এতটাই শীতল ছিল যে কোনও ফুল ফ্ল্যাশ ওয়েবসাইট না থাকলে বা কমপক্ষে একটি অ্যানিমেটেড উইজেট না থাকলে কেউ বাঁচতে পারে না, আমাকে ফ্ল্যাশ / অ্যাকশনসক্রিপ্টে "ঘোড়দৌড়ের দর্শনী" বিকাশ করার জন্য নিয়োগ দেওয়া হয়েছিল, 80 এর ভিডিওগেম স্টাইল অ্যানিমেশন আকারে, যাতে সাইটের দর্শকরা কেবল রেসের ফলাফলগুলিই পড়তে পারেনি, তবে তারা এটি একটি চলন্ত অ্যানিমেশনে দেখতে পেতেন! কি দারুন! চিত্তাকর্ষক!

তারা আমাকে সমস্ত দৌড়ের বিশদ সহ একটি সিএসভি ফাইল সরবরাহ করেছিল: শুরু এবং আগমন আদেশ, ঘোড়ার নাম, ড্রাইভারের নাম, পুরস্কার ইত্যাদি My আমার ফ্ল্যাশ অ্যাপ্লিকেশন প্রতিটি দৌড়ের জন্য সেই ফাইলটি পড়ে এবং উপরের বর্ণিত অ্যানিমেশনটি প্রদর্শন করে।

আজকাল ফ্ল্যাশ সমর্থন উল্লেখযোগ্যভাবে হ্রাস পেয়েছে, তাই আমাদের অবশ্যই আসকি-আর্টে ফিরে যেতে হবে !

কার্য

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

ইনপুট

2 ক্ষেত্রের সাথে সিএসভি ডেটা: 1) অর্ডার শুরু করুন; 2) বিন্যাসে সমাপ্তিতে আসার সময় 1.13.4(1 মিনিট, 13 সেকেন্ড, 4 সেকেন্ডের দশম)। যদি সময় প্রতিবেদনের Rঅর্থ হ'ল ঘটনা, পতন বা অন্য কোনও কারণে ঘোড়াটি পিছু হটানো (রেস শেষ করেনি)। দ্রষ্টব্য: 2 বা ততোধিক ঘোড়ার জন্য আগমনের সময় একই হতে পারে, এক্ষেত্রে তারা আগমনের অবস্থানটি ভাগ করে দেয়।

1,1.13.4
2,1.13.0
3,R
4,1.12.7
5,1.11.5
6,1.13.4
7,1.12.1
8,1.17.9

আউটপুট

প্রতিটি সিএসভি সারির জন্য, এই জাতীয় রেসট্র্যাক আউটপুট করুন:

1_|______________4(1.13.0)___________________________

রেসট্র্যাকটি রচনা করেছেন:

  • 1 যা ঘোড়াগুলি অর্ডার শুরু করে।
  • _|যেখানে _একটি স্পেসার এবং |এটি ফিনিস লাইন।
  • 50 x _যা 50 সেকেন্ডের দশম প্রতিনিধিত্ব করে।
  • 5(1.13.4)এটি আগমনের সময় অনুসারে আগমনের অবস্থান। এটি অবশ্যই ঘোড়াগুলির মধ্যে সময়ের পার্থক্যগুলির প্রতি শ্রদ্ধা রেখে অবস্থান করতে হবে। উদাহরণস্বরূপ: আপনি প্রথম স্থানে ফিনিশ লাইনে 1.11.5এসে পৌঁছেছেন, দ্বিতীয়টি সময়মতো এসে পৌঁছেছে 1.12.1, পার্থক্যটি 1.12.1 - 1.11.5 = 6দ্বিতীয় দশকের দশম, সুতরাং দ্বিতীয় ঘোড়াটি 6th ষ্ঠ অক্ষরে অবস্থিত হওয়া উচিত, ইত্যাদি। সময়ের পার্থক্য যদি 50 সেকেন্ডের দশম (বা 5 সেকেন্ড) এর বেশি হয় তবে আপনাকে অবশ্যই ঘোড়াটি শেষে রাখতে হবে। ঘোড়াটি যদি একই হয় R(পশ্চাদপসরণ)

সুতরাং উপরের সিএসভি ডেটার জন্য পুরো রেসট্র্যাকটি হ'ল:

  F=Finish line
1_|____________________________5(1.13.4)_____________
2_|______________4(1.13.0)___________________________
3_|__________________________________________________R
4_|___________3(1.12.7)______________________________
5_1(1.11.5)__________________________________________
6_|____________________________5(1.13.4)_____________
7_|_____2(1.12.1)____________________________________
8_|__________________________________________________6(1.17.9)
  012345678901234567890123456789012345678901234567890

যুক্ত করার দরকার নেই F=Finish lineএবং শেষ লাইনটি 0123456789...কেবল উদ্দেশ্য ব্যাখ্যা করার জন্য।

পরীক্ষার মামলা

RACE:
1,1.14.9
2,R
3,R
4,1.14.2
5,1.15.2
6,1.15.3
7,1.15.3

RACE:
1,1.13.6
2,1.13.8
3,R,
4,1.15.9
5,1.13.8
6,R,
7,1.14.4
8,1.15.6
9,1.14.1
10,1.13.9
11,1.13.2
12,1.14.3
13,1.15.0

RACE:
1,1.13.4
2,1.13.0
3,R
4,1.12.7
5,1.11.5
6,1.13.4
7,1.12.1
8,1.17.9

RACE:
1,1.17.3
2,1.20.4
3,1.17.0
4,1.18.8
5,1.18.5
6,1.18.4
7,1.18.4
8,1.17.8
9,1.18.3
10,1.18.7
11,R

RACE:
1,1.17.5
2,R
3,1.17.7
4,1.16.9
5,1.16.1
6,1.18.9

RACE:
1,1.12.8
2,1.13.0
3,1.13.2
4,1.12.7
5,1.11.5
6,1.13.0
7,1.12.1
8,1.12.8

বিধি

  • সংক্ষিপ্ততম কোড জিতেছে।

উদাহরণে যেখানে 5 তম বাঁধা আছে, ঘোড়া 8 এখনও 7 তম স্থানে রাখবে না?
জোনাথন অ্যালান

আমরা কি ধরে নিতে পারি যে মিনিটের নম্বরটি সর্বদা থাকবে 1?
ইটিএইচ প্রোডাকশনস

@ জোনাথান অ্যালান এটি নিয়মগুলির উপর নির্ভর করে, উদাহরণ হিসাবে আমি ধরে নিয়েছিলাম যে ঘোড়াগুলি যদি 5 তম অবস্থানে থাকে তবে পরেরটি 6 তম হিসাবে বিবেচিত হবে।
মারিও

@ এথ প্রডাকশন হ্যাঁ আপনি ধরে নিতে পারেন মিনিটটি সর্বদা 1.
মারিও

2
এছাড়াও, আমরা কি ধরে নিতে পারি যে সর্বদা অ Rঘোড়া থাকবে? (আমি জানি এটি বাস্তব জীবনে কোনও বুদ্ধিমান প্রশ্ন নয়, তবে এটি কোড))
পূর্বকূকাডারি

উত্তর:


1

জাভাস্ক্রিপ্ট (ES6), 261 বাইট

"1.ss.t"ইনপুট হিসাবে সময়ের স্ট্রিংগুলির একটি অ্যারে নেয় । শুরুর অর্ডার অন্তর্নিহিত।

a=>a.map((t,i)=>(u='_',++i>9?'':' ')+i+u+u.repeat(x=(x=t>'9'?50:t.slice(2)*10-s[0].slice(2)*10)>50?50:x,p=s.indexOf(t)+1+`(${t})`).replace(u,'|')+(x<50?p:'')+u.repeat((x=50-p.length-x)>0?x:0)+(x>0?'':t>'9'?t:p),s=a.filter((v,i)=>a.indexOf(v)==i).sort()).join`
`

ডেমো


1

পাইথন 2, 282 272 246 বাইট

আরনাউল্ডের অনুরূপ ইনপুটটি ইতিমধ্যে অন্তর্ভুক্ত হওয়ায় এটি শুরু নম্বর থেকে ছিনিয়ে নেওয়া হয়েছে বলে ধারণা করা হচ্ছে।

H=input().split("\n")
T=[float(c[2:])if c[2:]else 99for c in H]
P=[min(int(10*(t-min(T))),50)for t in T]
S=sorted(list(set(T)))
i=0
u="_"
for h,p,t in zip(H,P,T):i+=1;s=S.index(t)+1;print`i`+u+"|"*(s>1)+u*p+[h,"%d(%s)"%(s,h)][t<99]+u*(41-p+(s<2))
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.