একটি পিচে ফুটবল দলের ফর্মেশন চিত্রিত করুন


13

ফুটবল হ'ল এমন একটি খেলা যেখানে খেলোয়াড়রা বলটিকে লাথি দেয়, তা বহন করে না। কিছু বিভ্রান্ত ব্যক্তি এই ফুটবল কল করতে পারে।


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

সর্বাধিক প্রচলিত গঠন 4-4-2, যার অর্থ 4 ডিফেন্ডার, 4 মিডফিল্ডার এবং দুটি আক্রমণকারী রয়েছে। অন্যান্য গঠনগুলি হ'ল ("ডিফেন্ডার, মিডফিল্ডার, আক্রমণকারী" বা "ডিফেন্ডার, মিডফিল্ডার, মিডফিল্ডার, আক্রমণকারী"):

  • 4-4-2
  • 4-3-3
  • 5-3-2
  • 3-4-3
  • 3-5-2
  • 4-5-1
  • 5-4-1
  • 4-4-1-1
  • 4-3-1-2
  • 4-1-2-3
  • 4-1-3-2
  • 4-3-2-1
  • 3-4-1-2
  • 3-3-3-1

চ্যালেঞ্জ হ'ল দুটি ইনপুট নেওয়া, দুটি দলের প্রত্যেকের জন্য একটি করে এবং মাঠে খেলোয়াড়দের একটি ওভারভিউ আউটপুট আউট করা।

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

  • রক্ষক এবং পেনাল্টি অঞ্চলটি ASCII- অক্ষরগুলির 3 সারি নেয়
    • লেআউট এবং স্পেসের সংখ্যা নীচের চিত্রটিতে পাওয়া যাবে
  • পেনাল্টি অঞ্চল এবং ডিফেন্ডারদের মধ্যে কোনও খালি সারি নেই
  • গঠনে যদি 3 টি সংখ্যা থাকে (উদাহরণস্বরূপ 4-4-2, 4-3-3 ইত্যাদি ইত্যাদি 4-3-2-1 নয়):
    • ডিফেন্ডার এবং মিডফিল্ডারদের মধ্যে কোনও খালি সারি নেই
    • মিডফিল্ডার এবং আক্রমণকারীদের মধ্যে একটি ফাঁকা সারি রয়েছে
  • গঠনে যদি 4 টি সংখ্যা থাকে (যেমন 4-3-2-1, 3-3-3-1 ইত্যাদি 4-4-2 নয়):
    • ডিফেন্ডার এবং মিডফিল্ডারদের প্রথম সারির মধ্যে কোনও খালি সারি নেই
    • মিডফিল্ডারদের প্রথম সারির এবং দ্বিতীয়টির মধ্যে কোনও খালি সারি নেই
    • মিডফিল্ডার এবং আক্রমণকারীদের দ্বিতীয় সারির মধ্যে কোনও খালি সারি নেই
  • আক্রমণকারী এবং সেন্টার লাইনের মধ্যে কোনও খালি সারি নেই
  • উপরের অর্ধেকের দলটি চিহ্নিত করা xহয়েছে এবং দ্বিতীয়ার্ধে দলটি চিহ্নিত রয়েছে o
  • নীচের পরিসংখ্যানগুলিতে প্রদর্শিত প্রতিটি খেলোয়াড়কে পিচে বিতরণ করা হবে। চিত্রের মধ্যে জায়গাগুলির সংখ্যা দেখা যায়।

নিম্নলিখিত চিত্রটি কোনও বৈধ গঠনের প্রতিনিধিত্ব করে না, তবে প্রতিটি খেলোয়াড়ের মধ্যে লেআউট এবং প্রয়োজনীয় জায়গাগুলির সংখ্যা চিত্রিত করতে ব্যবহৃত হয়। এর জন্য ইনপুট হবে 2 3 4 5এবং 5 4 2:

+-----------------+
|     |  x  |     |
|     +-----+     |
|     x     x     |
|    x   x   x    |
|  x   x   x   x  |
|  x  x  x  x  x  |
+-----------------+
|     o     o     |
|                 |
|  o   o   o   o  |
|  o  o  o  o  o  |
|     +-----+     |
|     |  o  |     |
+-----------------+ 

বৈধ উদাহরণ:

Input:
4 4 2, 5 3 1 1


+-----------------+
|     |  x  |     |
|     +-----+     |
|  x   x   x   x  |
|  x   x   x   x  |
|                 |
|     x     x     |
+-----------------+
|        o        |
|        o        |
|    o   o   o    |
|  o  o  o  o  o  |
|     +-----+     |
|     |  o  |     |
+-----------------+

Input:
3 5 2, 4 4 1 1


+-----------------+
|     |  x  |     |
|     +-----+     |
|    x   x   x    |
|  x  x  x  x  x  |
|                 |
|     x     x     |
+-----------------+
|        o        |
|        o        |
|  o   o   o   o  |
|  o   o   o   o  |
|     +-----+     |
|     |  o  |     |
+-----------------+

নিয়মাবলী:

  • আপনি চাইলে ইনপুটটি কোনও সুবিধাজনক বিন্যাসে থাকতে পারে separated ফর্ম্যাটটি একটি একক স্ট্রিং ( 5311), কমা দ্বারা পৃথক অঙ্ক ( 5,3,1,1) ইত্যাদি হতে পারে etc.
    • ইনপুটটিতে দুটি ফর্মেশন ছাড়া অন্য কোনও তথ্য থাকা উচিত নয়
  • আউটপুটটি নমুনার পরিসংখ্যানের মতো দেখতে হবে তবে পেছনের স্থান এবং নিউলাইনগুলি ঠিক আছে OK
  • আপনি ধরে নিতে পারেন কেবলমাত্র বৈধ ইনপুট দেওয়া হয়েছে (কেবলমাত্র তালিকার ফর্মেশনগুলি ব্যবহৃত হবে)।
  • সম্পূর্ণ প্রোগ্রাম বা ফাংশন

এটি কোড গল্ফ, তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি।


1
ফুটবল একটাই লাঠি নিয়ে আছে, তাই না?
মেগো

না, এগুলি শাফলবোর্ড। আপনি পনি সহ একটি চান।
Geobits

1
না, ড্রেসেজ। আপনি লক্ষ্য সহ একটি চান।
মরগান থ্র্যাপ

4
কি! মাঝের ক্ষেত্রের বৃত্ত নেই?
লুইস মেন্ডো

2
@ লুইস মেন্ডো, কেবল ধরে নিন স্টোকের এটি একটি বর্ষার দিন! মাঝের মাঠের চেনাশোনাটি প্রায়শই পাওয়া শক্ত = পি
স্টিভি গ্রিফিন

উত্তর:


1

জাভাস্ক্রিপ্ট (ES6), 258 262

অজ্ঞাতনামা ফাংশন, 2 টি প্যারামিটারগুলি সংখ্যাসূচক অ্যারে হিসাবে গ্রহণ করে

(a,b,H=f=>(f[3]||f.push(0,f.pop()),[z='+-----------------+',...[6,7,...f].map(x=>`|${'98,8o8,5o5o5,4o3o3o4,2o3o3o3o2,2o2o2o2o2o2,5|2o2|5,5+-----+5'.replace(/\d/g,x=>' '.repeat(x)).split`,`[x]}|`),'']))=>H(a).join`
`.replace(/o/g,'x')+z+H(b).reverse().join`
`

পরীক্ষা

F=(a,b,
   H=f=>(
    f[3]||f.push(0,f.pop()),
    [z='+-----------------+',...[6,7,...f].map(x=>`|${'98,8o8,5o5o5,4o3o3o4,2o3o3o3o2,2o2o2o2o2o2,5|2o2|5,5+-----+5'.replace(/\d/g,x=>' '.repeat(x)).split`,`[x]}|`),'']
   )
)=>
  H(a).join`\n`.replace(/o/g,'x')+z+H(b).reverse().join`\n`

  
function test() {
  var f1=F1.value.match(/\d+/g),f2=F2.value.match(/\d+/g)
  O.textContent=F(f1,f2)
}

test()
x <input id=F1 value='4,4,2' oninput='test()'><br>
o <input id=F2 value='4,3,1,2' oninput='test()'><br>
<pre id=O>


2

পাইথন 2, 401 377 বাইট

def g(x,o):
 r=lambda r:["|"+"  x"*5+"  |","|        x        |","|     x     x     |","|    x   x   x    |","|  x   x   x   x  |"][r%5];d="+"+"-"*17+"+";h=[d,"|     |  x  |     |","|     +-----+     |"]+map(r,x);b=map(lambda r:r.replace("x","o"),[s for s in h[:3]]+map(r,o))[::-1];e="|"+" "*17+"|"
 if len(x)-4:h.insert(5,e)
 if len(o)-4:b.insert(1,e)
 print"\n".join(h+[d]+b)

পরীক্ষার পরিবেশের সাথে এখানে বর্ণহীন সংস্করণ !

ফাংশন যা [ডিফেন্ডার, মিডফিল্ডার, মিডফিল্ডার, আক্রমণকারী] ফর্ম্যাটের দুটি তালিকা নেয় যখন একটি মিডফিল্ডার নম্বর isচ্ছিক। টিম এক্স (শীর্ষে) আসে প্রথম, দল ও (নীচে) দ্বিতীয়।


আপনার ল্যাম্বডায় একটিতে অকেজো জায়গা আছে lambda a:r(a), x)^^
এরওয়ান

@ ইরান ধন্যবাদ, ভাল ধরা!
ডেনকার

আমি মনে করি এটি t=lambda a:r(a) 2 বার ব্যবহার করার সাথে সংজ্ঞা দেওয়া সবচেয়ে খারাপ
এরওয়ান

আরও ভাল সমাধান lambda a:r(a)এটিকে প্রতিস্থাপনের সমস্ত উপস্থিতিকে সরিয়ে ফেলুনr
এরওয়ান

@ ইরান ধন্যবাদ, খুব মিস!
ডেনকার

1

পার্ল, 360 332 324 বাইট

sub f{$q="";($_,$p)=@_;@x=/\S+/g;splice@x,2,0,0if@x<4;for(@x) {$s=(17-$_)/($_+1);$s=$=+1if($s!=($==$s));$x=$"x$=;@a=();push@a,$p for 1..$_;$q.=$_==0?"|$u$u$u  |\n":"|$x".join($"x$s,@a)."$x|\n"}$q}($k,$j)=<>;$u=$"x5;$^="-"x17;$i="|$u+-----+$u|";say"x$^x\n|$u|  x  |$u|\n$i\n".f($k,x)."+$^+".(reverse f$j,o)."\n$i\n|$u|  o  |$u|\nx$^x"

প্রয়োজন -E| -M5.010:

$ echo $'4 4 2\n4 4 1 1' | perl -M5.010 football.pl
x-----------------x
|     |  x  |     |
|     +-----+     |
|  x   x   x   x  |
|  x   x   x   x  |
|                 |
|     x     x     |
+-----------------+
|        o        |
|        o        |
|  o   o   o   o  |
|  o   o   o   o  |
|     +-----+     |
|     |  o  |     |
x-----------------x

কিছুটা নাড়িত:

sub f{
    $q="";
    ($_,$p)=@_;
    @x=/\S+/g;
    splice@x,2,0,0if@x<4;
    for(@x) {
        $s=(17-$_)/($_+1);
        $s=$=+1if($s!=($==$s));
        $x=" "x$=;
        @a=();
        push@a,$p for 1..$_;
        $q.=$_==0?"|$u$u$u  |\n":"|$x".join(" "x$s,@a)."$x|\n"
    }
    $q
}

($k,$j)=<>;
$u=" "x5;
$^="-"x17;
$i="|$u+-----+$u|";
say"x$^x\n|$u|  x  |$u|\n$i\n".f($k,x)."+$^+".(reverse f$j,o)."\n$i\n|$u|  o  |$u|\nx$^x"

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