একটি সাইমন ক্লোন তৈরি করুন! [বন্ধ]


18

পরিস্থিতি: প্রোগ্রামিংয়ের সময় আপনার 80 এর দশক এবং ছদ্মবেশী গেমগুলির জন্য হঠাৎ নস্টালজিক তাগিদ হয়।

প্রয়োজনীয়তা: সাইমন, গেমটির জন্য একটি জিইউআই প্রোগ্রাম করুন (পাঠ্যটি সম্ভবত কাজ করে না)। ইনপুট ক্লিক বা কোনও কী টিপতে পারে। আপনার পর্দাটি 4 টি অঞ্চলে বিভক্ত করা উচিত: হলুদ, নীল, লাল, সবুজ। গেমটি শুরু হয়ে গেলে, এলোমেলো রঙের আলো জ্বলতে থাকে এবং আপনি এটিকে সক্রিয় করেন। তারপরে, দুটি লাইট চলে আসে, একের পর এক এবং আপনার ক্রমগুলি ক্রিয়াকলাপ করা প্রয়োজন ইত্যাদি you যখন আপনি ভুল রঙ টিপেন তখন খেলাটি শেষ হয়।

বোনাসেস:

-100 আপনি যদি শব্দ অন্তর্ভুক্ত করেন (প্রতিটি অঞ্চল টিপানোর সময় এবং যখন খেলা আপনাকে রঙগুলি দেখায় তখন একটি পৃথক নোট বাজানো হয়)

-25 আপনি যদি কোনও স্কোর কাউন্টার অন্তর্ভুক্ত করেন।


13
জিইউআই এবং কোড-গল্ফ সাধারণত একসাথে কাজ করে না।
ব্যবহারকারী 80551

3
এটি মাইনক্রাফ্টে করণীয় হওয়া উচিত। কারও কাছে ইতিমধ্যে থাকলে আমাকে অবাক করে দেবে না। কীভাবে কেউ এখানে এটি জমা করবেন তা জানেন না ...
নিন্নুগ

@ ব্লক প্রতি * বাইটের পরিমাণের পরিমাণ নিন্নুগ;)
লিয়াম ম্যাকিন্রয় ২৯'১৪

@ লিয়াম ম্যাকিনরোয় আফাইক একটি ব্লকটি আইডির জন্য 2 বাইট এবং বিশ্বের অবস্থানের জন্য 4 বাইট রয়েছে।
পাভেল

উত্তর:


12

318 297 281 273 268 244 240-125 = 115 Bash

এটি মূলত "পাঠ্য সম্ভবত কাজ করবে না" এর প্রতিক্রিয়া; নিম্নলিখিত পাঠ্য-ভিত্তিক ব্যাশ স্ক্রিপ্টের মধ্যে জরিমানা রান Konsole, gnome-terminalআমার উবুন্টু 14.04 মেশিনে ইত্যাদি। রঙের অঞ্চলগুলি তৈরি করতে এটি পাঠ্যের পটভূমির রঙ নির্ধারণ করে। আসলে, পাঠ্য যুক্ত করা গেমটিকে রঙিন-অন্ধ খেলোয়াড়দের কাছে আরও অ্যাক্সেসযোগ্য করে তোলে। গেমটিকে আরও সহজলভ্য করার জন্য এটি প্লেয়ারকে যে অক্ষরগুলি চাপতে হবে espeakসেগুলি পড়বে (এটি ইনস্টল করা আছে বলে ধরে নেওয়া হয়)। এটিও ধরে নেয় যে একমাত্র ফাইলের মিল /d*/ur*/রয়েছে /dev/urandom। রঙের অঞ্চলগুলি তুচ্ছ আকারের হওয়ার জন্য আপনি সম্ভবত পাঠ্যের আকারটি বেশ বড় করতে চান। এছাড়াও আপনি যদি রঙের অঞ্চলগুলি চতুষ্কোণ করতে চান তবে আপনাকে এটি দুটি টার্মিনাল প্রশস্ত টার্মিনালে চালাতে হবে।

যথাযথ হিসাবে y, r, g বা b টিপুন।

cat <<"EOF"|sed s/E/`echo -e '\E'`/>simon_golf.sh;bash simon_golf.sh;wc simon_golf.sh
d(){ echo Ecx1r09mRx2g10mGx3y11mYx4b14mBx0m$s|sed s/.$1"//
s/[rgyb]..//g
s/x/E[48;5;/g";};x(){ d $c;espeak $c;d j;};l(){
for c in $o;{ eval $1;x;};};f(){ o=$o\ `tr -dc yrgb</d*/ur*|head -c1`
l;l 'read -n1 i;[ $c = $i ]||exit;let s++';f;};f
EOF

এই সমাধানে দুটি মুদ্রণযোগ্য ESC অক্ষর রয়েছে। যদিও এই ইসি চরিত্রটি পূর্বরূপে উপস্থিত হয়, তারা জমা দেওয়ার পরে মুছে ফেলা হবে বলে মনে হয়, সুতরাং উপরের কোডটি একটি মোড়ক যা গল্ফযুক্ত উত্পন্ন করে এবং চালায় simon_golf.sh

মূল অলগল্ড সংস্করণ এবং 256 বাইট সংস্করণে কিছুটা আরও খেলতে পারা যায়

নীচের স্ক্রিনশটগুলি হলুদ আলো চালু থাকে এবং প্লেয়ারের স্কোর is হয় ডানদিকে স্ক্রিনশটটি রঙ-অন্ধত্ব অনুকরণ করার জন্য আলাদা করা হয়েছে।

স্ক্রিনশটসাদাকালো


কোড গল্ফের জন্য উপায় খুব বড় ...
জন ডিভোরাক

3
সত্য। আমি এখানে "কোড গল্ফ" এর চেয়ে বেশি "প্রোগ্রামিং ধাঁধা" এর জন্য আছি।
gmatht

আমি এখন এটি কিছুটা গল্ফ করেছি
gmatht

24

স্ক্র্যাচ, 1604 - 125 = 1479

আমি এখানে মজাদার জন্য, গল্ফ নয়।

সম্পাদনা: সম্প্রদায়ের sensকমত্যের ভিত্তিতে স্কোরিং পদ্ধতি আপডেট হয়েছে

মূল প্রোগ্রাম:

প্রধান

স্বতন্ত্র sprites:

পরী

এটি সংখ্যা সহ স্প্রাইট 0। অন্যান্য স্প্রাইটের সংখ্যা বাদে একই স্ক্রিপ্ট রয়েছে।

এটি অনলাইনে খেলুন ।

বাইট গণনা করার জন্য ব্যবহৃত কোড: (কোডটি লুকানোর জন্য স্নিপেট ব্যবহার করে)

দ্রষ্টব্য: কোড স্বয়ংক্রিয়ভাবে স্ক্র্যাচব্লকস জেনারেটর ব্যবহার করে উত্পন্ন হয়েছে , কোনওভাবে জেনারেটর দশমিক সংখ্যাগুলি হ্যান্ডেল করে না (0.3 হিসাবে 0 হিসাবে আচরণ করে)।

স্ক্রীনশট:

স্ক্রিনশট

দ্রষ্টব্য: দয়া করে ০.০ সেকেন্ডের মধ্যে দুটি বোতাম টিপুন না।


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

1
ভূত? SRS? এছাড়াও, বাইট গণনা ইমো এসবি 2 এর মোট আকার হওয়া উচিত।
সিজেফুরে

1
@ ট্রিমস্টি তারপরে এটি 126833 বাইট (ওয়াভ সাউন্ড ফাইলগুলি সহ) হয়ে উঠবে, এ কারণেই আমি বলেছিলাম "আমি এখানে গল্ফ নয়, মজাদার জন্য আছি"।
ব্যবহারকারী 12205

আমি এখানে প্রস্তাবিত স্কোরিং অনুসারে , স্কোরটি 60 (27 টি ব্লক, ধ্রুবকগুলিতে 20 টি অক্ষর / সংখ্যা, 8 অপারেটর, 5 ভেরিয়েবল ব্যবহার)। বোনাস সহ, আপনি -65 পাবেন।
ugoren

@ যুগেন এটি আসলে একটি আংশিক উত্তর। এখানে 4 টি স্প্রাইট রয়েছে এবং কেবল একটির জন্য স্ক্রিপ্ট প্রদর্শিত হয়, যেহেতু অন্যান্য স্প্রিটের সংখ্যা ছাড়া প্রায় অভিন্ন স্ক্রিপ্ট রয়েছে। আমি আপনার স্কোরিং এর উপর ভিত্তি করে উত্তর আপডেট করব। ধন্যবাদ।
ব্যবহারকারী 12205

3

গণিত, 409 - 125 = 284

k = 2;
p = Tuples[{0, 1}, 2];
f[c_, p_] := 
 EventHandler[{c, Rectangle[p]}, 
  "MouseClicked" :> (AppendTo[x, p]; Beep[]; g)]
h[R_] := (i = 1; 
  RunScheduledTask[
   H = If[OddQ@i, 
     Beep[]; {EdgeForm[{Thickness[0.02], Black}], FaceForm[], 
      Rectangle@R[[Ceiling[i/2]]]}, {}]; i++, {.3, 2 Length@R}])
s := (m = 0; x = {}; h[R = RandomChoice[p, k]];)
g := (m++; If[Take[R, m] != x, k = 2; s, If[m == k, k++; s]])
Dynamic@Graphics[{MapThread[f, {{Yellow, Red, Blue, Green}, p}], H}, 
  PlotLabel -> k]
s

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


2

উইন্ডোজ পাওয়ারশেল (সিএলআই), 272 - 100 - 25 = 147

$d={param($c)cls;sleep -m 99;'R','Y','Blu','Gre'|
%{Write-Host '#' -N -F "$(if($i%4-ne $c){'Dark'})$_";
$i++}};$b={param($c)&$d $c;[console]::Beep(($c+1)*99,700);&$d};
$m=@();$s=0;for(){$m+=0..3|Get-Random;$m|%{&$b $_};$m|%{
if((read-host)-ne $_){$s;exit}&$b $_};$s++;sleep 1}

পার্শ্ব-স্ক্রোলিং এড়ানোর জন্য আমি এখানে নিউলাইনগুলি যুক্ত করেছি, তবে এটি একটি লাইন হিসাবে কাজ করে যাতে চরিত্রের গণনা নিউলাইনগুলি ছাড়াই হয়।

স্ক্রীনশট: গেম প্লে করার স্ক্রিনশট

খেলতে:

  • পাওয়ারশেল আইএসই (v3) খুলুন, পাঠ্য সম্পাদকে স্ক্রিপ্ট আটকান, চালানোর জন্য F5 টিপুন।
  • গেমটি একটি রঙ আলোকিত করবে, একটি শব্দ বাজবে, এবং ইনপুটটির জন্য অপেক্ষা করবে
  • একটি নম্বর টিপুন (0 = লাল, 1 = হলুদ, 2 = নীল, 3 = সবুজ) তারপরে প্রবেশ করুন।
  • আপনি যদি ভুল হন তবে এটি স্কোর এবং প্রস্থানগুলি মুদ্রণ করে। (এনবি। এটি আপনার কনসোল থেকে প্রস্থান হতে পারে)।
  • আপনি ঠিক থাকলে এটি দুটি নোটের জন্য যায়।
  • সিকোয়েন্সটি পিছনে খেললে আপনাকে প্রতিটি নোটের মধ্যে এন্টার টিপতে হবে।

মন্তব্যসমূহ:

  • "স্ক্রিনটিকে 4 টি অঞ্চলে বিভক্ত করুন" - আপনি বলেননি যে তাদের কোয়ার্টারে থাকতে হবে, তাই তারা নেই।
  • নীল পটভূমিতে নীল আলো দেখা শক্ত, তবে তা তা করে।
  • দয়া করে পাওয়ারশেল আইএসই চালান - সাধারণ প্রম্পটে "ডার্কইলো" সাদা হিসাবে দেখায়।
  • আপনি কিছুটা সময় মুছে ফেলে (তবুও গেমটিকে খেলার যোগ্য করে তুলছেন) এবং নিয়মটি "শব্দটি (টিপানোর সময় বাজানো একটি নোট এবং যখন খেলা আপনাকে রঙগুলি দেখায়)" দিয়ে "বোঝাতে" বোঝাতে "আপনি" ততর্কীভাবে আরও ২৮ টি চরিত্রের গল্ফ বন্ধ করে দিতে পারেন সমস্তই একই শব্দ - ডিফল্ট ত্রুটি ডিঙ ", তবে আমি মনে করি এটি এর আত্মার বিপরীতে far

0

জেডএক্সবাসিক: 422 - 100 - 25 = 297

এটি অবশ্যই '80 এর দশকের একটি নস্টালজিক আবেগ হিসাবে গণ্য করা হয়েছে ...

জেডএক্সবাসিক লুপ এবং পুনরাবৃত্তিগুলির অনুমতি দেওয়ার জন্য ফ্রিব্যাসিক টাইপ কমান্ড এবং জেডএক্স স্পেকট্রাম বেসিকের সংমিশ্রণ ব্যবহার করে যা স্পেকট্রাম এমুলেটারে লোড হওয়ার জন্য TZX ফর্ম্যাটে রূপান্তরিত করে।

এই সংস্করণটি সীমানা পরিবর্তন করে (যদিও স্ক্রিনের একটি কিংবদন্তি বলছে কোন কী টিপতে হবে)। এটি আসল সাইমন গেমের মতো একই নোটগুলি খেলে ( http://en.wikedia.org/wiki/Simon_%28game%29 )।

d=0.5:s=0:l=1:t=1:n$="4261":dim m(4)=>{-8,9,1,4}
border 7
while l>0
 cls:a$="":print at 1,1;"Level: ";t;at 2,1;"Score:";s::for i=1 to 4:print at 0,i;paper val(n$(i));ink 0;i:next
 for i=1 to t
  c=1+int(rnd*4)
  border val(n$(c)):beep d,m(c):border 7
  a$=a$+str(c)
 next
 print at 10,1;"your turn"
 p$="":i=1
 do
  pause 100:k$=inkey:print at 6,i;k$
  if k$=a$(i) then s=s+1:print at 2,7;s:beep d,m(val(k$)):i=i+1
  else l=l-1:i=t+1:print "bad luck!"
  end if
 loop until i>t 
 t=t+1:pause 25
end while

সেরা স্কোর খেলার মধ্যে


0

এইচটিএমএল 5 এবং জাভাস্ক্রিপ্ট, 1118-100-25 = 993 বাইট

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

উপায় খুব স্ফীত এইচটিএমএল + জেএস সংস্করণ।

ওয়েব অডিও API এর মাধ্যমে শব্দগুলি চালায়

নোটগুলির ফ্রিকোয়েন্সিগুলি মূল সাইমনগুলির, রঙ এবং রঙের স্থান নির্ধারণ করা উচিত।

এখানে একটি অনলাইন ডেমো রয়েছে: http://www.dantonag.it/miniSimon.html । ওয়েব অডিও সম্মতিযুক্ত ব্রাউজারগুলিতে কাজ করে (কমপক্ষে ক্রোম এবং ফায়ারফক্স, আইআই এটি সমর্থন করে না, আফাইক)।

<html><script>
var hc=["#0f0","red","#ff3","blue"],lc=["#090","#930","#cc0","#33c"],nt=[391,329,261,195],ln=[],qpos=0,pm=0,x,ct=new AudioContext;function ps(a,d){var b=ct.createOscillator();b.frequency.value=d;b.connect(ct.destination);var c=ct.createGain();b.connect(c);c.connect(ct.destination);c.gain.value=-.5;x[a].style.backgroundColor=hc[a];b.start(0);setTimeout(function(a,b){a.stop(0);x[b].style.backgroundColor=lc[b]},500,b,a)}
function w(a){2==pm&&(a!=ln[qpos]?(pm=3,document.getElementsByTagName("span")[0].innerHTML="game over!",ps(a,156)):(qpos++,ps(a,nt[a]),qpos>=ln.length&&(pm=qpos=0)))}function ml(){if(0==pm)document.getElementsByTagName("div")[0].innerHTML=ln.length,ln.push(Math.floor(4*Math.random())),pm=1;else if(1==pm){var a=ln[qpos];qpos<ln.length?(ps(a,nt[a]),qpos++):(qpos=0,pm=2)}setTimeout(ml,500)}window.onload=function(){setTimeout(ml,1);x=document.getElementsByTagName("td")};</script><div>0</div><table cellpadding=40><tr><td bgcolor=#090 onmousedown=w(0)><td bgcolor=#930 onmousedown=w(1)><tr><td bgcolor=#cc0 onmousedown=w(2)><td bgcolor=#33c onmousedown=w(3)></table><span></span>

আমার রেকর্ডটি 15 (আমি এই গেমটিতে বেশ খারাপ)। তোমার কোনটা?

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