কোডবটস 2: ইভেন্ট ড্রাইভড ডিজাইন


11

কোড বটস 2 এ আপনাকে স্বাগতম!

আপনি শেষ কোড বটগুলি থেকে আপনার পাঠটি শিখেছেন। আপনি কম লাইনে আরও ক্রিয়া ফিট করার জন্য আরও উপায়গুলি বের করার চেষ্টা করেছেন এবং শেষ পর্যন্ত এটি আপনার কাছে রয়েছে। আপনি ইভেন্ট-চালিত কোড বট তৈরি করতে যাচ্ছেন।

আপনার বটটিতে অবশ্যই 24 টি লাইন থাকতে হবে। প্রতিটি লাইন দুটি বিন্যাসের একটি অনুসরণ করে:

Condition:Action

অথবা

Action

তোমার বট এছাড়াও 5 নামে পূর্ণসংখ্যার ধারণ করার জন্য পর্যাপ্ত সঞ্চয়ের স্থান রেয়েছে Aমাধ্যমে E। একটি পূর্ণসংখ্যা 0 থেকে 23 পর্যন্ত মান সংরক্ষণ করতে পারে।

প্রতিটি পালা, আপনি লাইনটি কার্যকর করবেন C, যদি না কোনও শর্তটি সত্য হয়। যদি তা হয় তবে Cশর্তাধীন যে সত্য তা রেখার সংখ্যাটি অন্তর্ভুক্ত করবে এবং তারপরে সেই লাইনটি কার্যকর করা হবে। প্রতিটি পালা শেষে, Cবৃদ্ধি করা হবে।

উপলব্ধ শর্তাদি রয়েছে:

  1. Startপ্রথম বারেই সত্য on আপনার কোডটিতে অবশ্যই একবারে এটি থাকা উচিত
  2. BotAt(N) সত্য যদি এন দ্বারা সংজ্ঞায়িত স্থানে একটি বট থাকে
  3. Equals(A,B) সত্য, যদি A সমান বি। তারা বিভিন্ন ধরণের হতে পারে, যদি তাই হয় তবে তারা সমান হবে না।
  4. Modified(A)Aশেষ টার্নের সময় যদি অনুলিপি করা হয় তবে তা সত্য । Aঅবশ্যই একটি চলক নাম, একটি লাইন বা শর্ত হতে হবে
  5. Any(C1,C2,...) শর্তগুলির কোনও সত্য হলে সত্য
  6. None(C1,C2,...) শর্তগুলির কোনওটি সত্য না হলে সত্য
  7. All(C1,C2,...) সমস্ত শর্ত সত্য হলে সত্য
  8. Not(C)সি মিথ্যা হলে সত্য। Cএকটি শর্ত হতে হবে।

ভেরিয়েবল নিম্নলিখিত ফর্ম্যাটগুলির একটি হতে পারে। প্রথম 9 টি সংখ্যাসূচক, এবং যখনই এই পৃষ্ঠায় এন ব্যবহৃত হয় তখন এটির জন্য ব্যবহার করা যেতে পারে।

  1. A, B, C, D,E
  2. 0 থেকে 23 পর্যন্ত একটি সংখ্যা
  3. This বর্তমানে চালু থাকা লাইন নম্বরটি ফিরিয়ে দেবে
  4. Add(N1,N2,...) সমস্ত মানের যোগফল প্রদান করবে
  5. Sub(N1,N2) N1 বিয়োগ N2 প্রদান করবে
  6. Mult(N1,N2,...) সমস্ত মানের পণ্য ফিরে আসবে
  7. Div(N1,N2) N2 দ্বারা বিভক্ত N1 প্রদান করবে
  8. Mod(N1,N2) এন 1 মোড এন 2 ফিরিয়ে দেবে
  9. OVar(N) একটি পরিবর্তনশীল নাম গ্রহণ করবে, এবং প্রতিপক্ষের পরিবর্তনশীলটি ফিরিয়ে দেবে
  10. Line(N) আপনার কোডের Nth লাইনটি ফিরিয়ে দেবে
  11. Type(N) আপনার কোডে নবম লাইন প্রকারটি ফিরিয়ে দেবে (প্রকারগুলির ক্রিয়াগুলির নাম)
  12. Cond(N) Nth লাইনে শর্ত ফিরিয়ে দেবে
  13. CondType(N) Nth লাইনে শর্তের ধরণটি ফেরত দেবে (প্রকারগুলি শর্তগুলির নাম)
  14. OLine(N) আপনার প্রতিপক্ষের কোডে নবম লাইনটি ফিরিয়ে দেবে
  15. OType(N) আপনার প্রতিপক্ষের কোডে নবম লাইন প্রকারটি ফিরিয়ে দেবে
  16. OCond(N) Nth লাইনে শর্তটি ফিরিয়ে দেবে
  17. OCondType(N) Nth লাইনে শর্তের ধরণটি ফিরিয়ে দেবে

Aএবং Bআপনার ব্যক্তিগত ব্যবহারের জন্য, Cআপনার কোডে কোন রেখাটি কার্যকর করা হবে তা নির্ধারণ করতে ব্যবহৃত হয় এবং Dএটি একটি দিক হিসাবে ব্যবহৃত হয়। প্রতিটি মান Dএকটি পৃথক স্কোয়ার এবং দিকনির্দেশনা জোড়া উল্লেখ করে। Eপ্রতিটি সময় একটি এলোমেলো মান উত্পাদন করে। Dএবং Eঅন্যথায় একটি এলোমেলো মান থেকে আরম্ভ করা হবে 0

ব্যবহৃত দিকটি হবে [North,East,South,West][D%4]। আপনার প্রতিপক্ষ হ'ল সেই দিকে তত্ক্ষণাত্ স্কোয়ারের বট।

আপনার কাছে 4 টি ক্রিয়া উপলব্ধ রয়েছে:

  1. Moveআপনাকে 1 বর্গ এগিয়ে অগ্রসর করবে D। সেখানে যদি বট থাকে তবে আপনি নড়াচড়া করবেন না।
  2. Copy(A,B)পরিবর্তনশীল কপি হবে Aথেকে BBএকটি ভেরিয়েবল নাম বাদে সংখ্যাসূচক মান হতে পারে না। Aএবং Bবিভিন্ন ধরণের হতে পারে না। একটি লাইন অনুলিপি করা শর্তটি অনুলিপি করে না।
  3. Flagকিছুই করে না আপনার কোডে সর্বাধিক পতাকাযুক্ত বট একটি পয়েন্ট পাবে। সর্বাধিক পয়েন্ট সহ বট জয়লাভ করে।
  4. If(C,L1,L2)সত্য L1হলে লাইনটি সম্পাদন করবে C, অন্যথায় সম্পাদন করবে L2Cএটি একটি শর্ত, L1এবং L2অবশ্যই লাইন হবে।

বড় ছবি

প্রতি বট এর 50 টি কপি বিশ্বে স্থাপন করা হবে। আপনার লক্ষ্যটি হ'ল আপনার পতাকাটি যথাসম্ভব যতগুলি বটগুলিতে পরিণত করা। অন্য যে কোনও পতাকা ধরণের চেয়ে আপনার পতাকার প্রকারের বেশি রয়েছে এমন প্রতিটি বোটের জন্য আপনি একটি পয়েন্ট পাবেন।

বটগুলি নিম্নরূপ রাখা হবে:

B...B...B...B...
..B...B...B...B.
B...B...B...B...

10 টি গেম রান হবে এবং বিজয়ী কে তা নির্ধারণ করে সমস্ত গেম জুড়ে পয়েন্টগুলি গড় হবে।

পার্শ্ব নোটস

যদি একাধিক শর্ত প্রয়োগ হয়, তবে সবচেয়ে তাড়াতাড়ি অনুসরণ Startকরা একটি কার্যকর করা হবে

বটগুলি খুব কাছ থেকে প্যাক করা হবে তবে আপনি অন্য কোনও বট প্রতিবেশী শুরু করবেন না। (এটি প্রযুক্তিগতভাবে শেষ কোডবটসের মতো একই ফর্ম্যাট হবে)

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

পুনরাবৃত্ত Ifবিবৃতি কার্যকর করা হবে না

যদি আপনার বটটি 24 টি লাইনের চেয়ে কম হয়, তবে বাকি লাইনগুলি পূর্ণ হবে Flag

আপনার নিজের অনুলিপি করার সময় মনে রাখবেন C, এটি Cআপনার পালা শেষে বৃদ্ধি পেয়েছে।

কোডবটসের দোভাষী এখানে পাওয়া যাবে । এটি সহজেই কার্যকর করার জন্য একটি .jar ফাইল অন্তর্ভুক্ত করে। কেবল বট ফোল্ডারে আপনার বট যুক্ত করুন

স্কোর

  1. 893.9 Borg
  2. 1.3 অলসতা
  3. 0.9 ডিফেন্ডার
  4. 0.5 ফ্ল্যাগার
  5. 0.4 ক্লিকবট
  6. 0.4 জালিয়াতি
  7. 0.3 আক্রমণকারী
  8. ০.০ গার্ড
  9. 0.3 সিঙ্গলটারেট get
  10. 0.2 ফ্রিজবোট
  11. 0.2 সেন্টিনেল
  12. 0.2 ড্রাইভবি
  13. 0.0 অ্যান্টিআইন্সিডিয়াস
  14. 0.0 মুভবোট
  15. 0.0 ক্লিকবার্গ
  16. 0.0 ক্যালকুলেটর
  17. 0.0 টেস্টবট
  18. 0.0 নকলকারী

হালনাগাদ

আপনি যখন আপনার প্রতিপক্ষের কোড দেখেন তখন কোডের লাইনগুলি ঘোরানো হয়। তার অর্থ, আপনার প্রতিপক্ষের লাইন 1 লাইন 14 (অথবা যে কোনও লাইনই) হতে পারে। একটি বটের একটি স্থির অফসেট থাকবে যা প্রতিপক্ষের দ্বারা দেখলেX পরিমাণ অনুসারে তার লাইনগুলি অফসেট করে দেবে । প্রতিপক্ষের Cপরিবর্তনশীলও একই Xপরিমাণে অফসেট হবে । Xএকই গেমের মধ্যে পরিবর্তন হবে না, তবে এটি গেম থেকে গেমে পরিবর্তিত হবে।


নাথান: আপনি যে সমস্ত বাগগুলি প্রতিবেদন করেছেন সেগুলি বৈধ আছে কিনা তা দেখতে আপনি "অলস সিংহ" পরীক্ষা করে দেখতে সক্ষম হন (বা যদি আমি কেবল মধ্যাহ্নভোজনে বাইরে যাই)? ব্যাস্ততা নাই. আপনি জমা দেওয়ার বিষয়ে সচেতন তা নিশ্চিত করেই।
সিটিও

@ COTO দুঃখিত, স্কুলগুলি উন্মাদ হয়েছে। আমি আজ রাতেই এটিতে চেষ্টা করব।
নাথান মেরিল

'সমস্ত' শর্তটি কোনও কমা দ্বারা বিযুক্ত শর্তের তালিকার জন্য অন্তর্ভুক্ত করা যেতে পারে। এটি এন্ট্রিগুলি পড়া আরও সহজ করে তুলবে।
ccarton

আমি মনে করি আপনার বাগটি পেয়েছি। ফাকশনপার্সার অবজেক্টগুলি হ্যাশম্যাপে কী হিসাবে ব্যবহৃত হচ্ছে যার অর্থ আপনার উপযুক্ত সমান পদ্ধতি দরকার। এটি ক্লিকবোট এবং সম্ভবত অলস সিংহভাগের সাথে সমস্যাটি সংশোধন করে। আমি আপনাকে একটি টানার অনুরোধ পাঠিয়েছি।
ccarton

@ কার্টন হ্যাশম্যাপটি কেবলমাত্র মানগুলি স্মরণ করে, এটি সাম্য পরীক্ষা করার জন্য ব্যবহৃত হয় না
নাথান মেরিল

উত্তর:


13

Borg

অন্যান্য সমস্ত বটকে নিজের ক্লোনগুলিতে রূপান্তর করে। প্রতিরোধ বৃথা.

Start:Copy(2,A)                               # Cloning will begin at line 2
All(Not(BotAt(D)),Not(Equals(2,A))):Copy(2,A) # Reset A if the opp left before we were done
Not(BotAt(D)):Move
All(Equals(Line(Sub(This,3)),OLine(0)),Equals(Line(Sub(This,2)),OLine(1)),Equals(Line(Sub(This,1)),OLine(2)),Equals(Line(This),OLine(3)),Equals(Line(Add(This,1)),OLine(4)),Equals(Line(Add(This,2)),OLine(5)),Equals(Line(Add(This,3)),OLine(6)),Equals(Line(Add(This,4)),OLine(7)),Equals(Line(Add(This,5)),OLine(8))):Copy(E,D) #  Check if cloning is complete
All(Equals(A,2),Not(Equals(OCond(1),Cond(Add(This,4))))):Copy(Cond(Add(This,4)),OCond(1)) # Copy freeze cond to OLine(1) before cloning starts
All(Equals(A,2),Not(Equals(OLine(1),Line(Add(This,3))))):Copy(Line(Add(This,3)),OLine(1)) # Copy freeze line
Not(Equals(Cond(Add(Sub(This,6),A)),OCond(A))):Copy(Cond(Add(Sub(This,6),A)),OCond(A))    # Copy Cond(A) to OCond(A)
Not(Equals(Line(Add(Sub(This,7),A)),OLine(A))):Copy(Line(Add(Sub(This,7),A)),OLine(A))    # Copy Line(A) to OLine(A)
Equals(A,A):Copy(Add(A,1),A) # Increment A. It will wrap around all 24 lines before the completion check matches

সম্পাদনা: এটিকে পুনরায় সেট করার জন্য ছোট ফিক্স যদি প্রতিপক্ষটি তার সাথে কাজ করার আগে সরে যায়। স্কোরকে প্রভাবিত করছে বলে মনে হচ্ছে না তবে এটি আমাকে আরও ভাল অনুভব করে।

সম্পাদনা # 2: ক্লোনিং প্রক্রিয়াটি সঠিকভাবে সম্পন্ন হয়েছে তা নিশ্চিত করার জন্য আরও একটি সম্পূর্ণ চেক যুক্ত করা হয়েছে (লাইন 3)

সম্পাদনা # 3: নতুন এলোমেলো অফসেটগুলি পরিচালনা করতে আপডেট করুন। এখানে সমস্যা হ'ল নতুন ক্লোনগুলির কোডটি এলোমেলো অফসেটে অবস্থিত যার অর্থ তারা নিজের লাইনের অবস্থান জানেন না। তার মানে আমার নিজের লাইনের সমস্ত উল্লেখ অবশ্যই আপেক্ষিক (সম্পর্কিত This) হতে হবে be প্রতিপক্ষের লাইন নম্বরগুলি এখনও এলোমেলো হতে পারে যেহেতু তারা এলোমেলোভাবে।


আরে, আমরা এই বট সম্পর্কে চ্যাট করতে পারি? chat.stackexchange.com/rooms/17128/…
নাথান মেরিল

@ নাথান, আপনি কি সাম্প্রতিক সময়ে এই এন্ট্রিটির সর্বশেষতম সংস্করণটি ব্যবহার করেছেন?
ccarton

আমি অবাক হয়েছি যে এই বটটি এত সফলভাবে অন্যান্য বটগুলিকে সংক্রামিত করতে সক্ষম। আমি এটি কিভাবে কাজ করে তার একটি রুনডাউন দেখতে পছন্দ করি।
স্পার

@ কার্টন নং আমি বুঝতে পারি নি যে এটি আপডেট হয়েছে। Rerunning।
নাথান মেরিল

@ স্পার আমি কিছু মন্তব্য যুক্ত করেছি। আশা করি এটি অনুসরণ করা সহজ করে তোলে। আমি মনে করি ক্লোনিংয়ের ঘনিষ্ঠ প্রভাবের কারণে বটটি এত কার্যকর। এটি সংক্রামিত প্রতিটি বট বের হয়ে অন্যকে সংক্রামিত করে। এছাড়াও, তারা ক্ষতিগ্রস্থ হয়ে গেলে স্বাভাবিকভাবে একে অপরকে মেরামত করার চেষ্টা করবে।
ccarton


3

গণক

এই বট এই চ্যালেঞ্জের লক্ষ্য বুঝতে পারে না, তাই তিনি শত্রুদের জন্য কয়েকটি সংখ্যা গণনা করার সিদ্ধান্ত নিয়েছিলেন।

Equals(Mod(OVar(E),5),0):Copy(Add(OVar(A),OVar(B)),OVar(D))
Equals(Mod(OVar(E),5),1):Copy(Sub(OVar(A),OVar(B)),OVar(D))
Equals(Mod(OVar(E),5),2):Copy(Mult(OVar(A),OVar(B)),OVar(D))
Equals(Mod(OVar(E),5),3):Copy(Div(OVar(A),OVar(B)),OVar(D))
Equals(Mod(OVar(E),5),4):Copy(Mod(OVar(A),OVar(B)),OVar(D))
Start:Move

আপনি ফলাফল OVar(D)না করা উচিত A!
মেগাটম

@ মেগাটম সম্পন্ন;)
কমনগ্যুই

3

CliqueBot

Flag
Start: Copy(11,B)
Not(Equals(Line(20),Line(21))): If(Equals(Line(21),Line(22)),Line(7),Line(8))
Not(Equals(Line(21),Line(22))): If(Equals(Line(20),Line(21)),Line(9),Line(10))
All(BotAt(D),Not(Equals(11,OVar(B)))): If(Equals(Line(20),OLine(OVar(C))),Line(10),Line(11))
Any(BotAt(D),Equals(E,B)): Copy(Add(D,1),D)
Equals(1,1): Move
Copy(Line(21),Line(20))
Copy(Line(20),Line(21))
Copy(Line(21),Line(22))
If(Equals(Line(20),OLine(Sub(OVar(C),1))),Line(5),Line(12))
Copy(Line(20),OLine(OVar(C)))
Copy(Line(20),OLine(E))

বন্ধুদের তাদের Bমানের মাধ্যমে সনাক্ত করে , প্রত্যেকের লাইনে পতাকা দিয়ে পূর্ণ করে। এছাড়াও এটির নিজস্ব পতাকাগুলির একটিটির অখণ্ডতা রক্ষা করতে কিছুটা দৈর্ঘ্যে যায় (এই অংশটি সুন্দর তবে সম্ভবত খুব দরকারী নয়)।

সম্পাদনা: আশ্চর্যজনকভাবে, স্কোর দ্বারা বিচার করে এখানে কোথাও একটি বাগ রয়েছে বলে মনে হচ্ছে।

সন্দেহ করুন যে লাইনগুলি 0-সূচকযুক্ত এবং আমার কোডটি 1-সূচিকৃত। সত্যিই এটি আগে পরীক্ষা করা উচিত ছিল। শুরুতে একটি পতাকা যুক্ত করা হয়েছে যাতে সমস্ত কিছু একসাথে কাটাতে পারে।


আমি মনে করি আমি কন্ট্রোলারে বাগটি পেয়েছি। আমি তাকে একটি অনুরোধ পাঠিয়েছি। যতক্ষণ না তিনি এটি গ্রহণ করেন, আপনি আমার কাঁটাচামচটি চেষ্টা করতে পারেন যদি আপনি পছন্দ করেন এবং আমাকে জানান যে এটি আপনার পক্ষে কাজ করে কিনা।
ccarton

বাগটি সর্বশেষ সংস্করণে স্থির করা হয়েছে।
নাথান মেরিল

2

প্রতিবাদী

Start:Copy(0,A)
Copy(0,B)
Flag
Flag
All(Modified(Line(2)),Equals(A,0)):Copy(1,A)
Copy(Line(3),Line(2))
Copy(0,A)
Copy(10,C)
All(Modified(Line(3)),Equals(B,0)):Copy(1,B)
Copy(Line(2),Line(3))
Copy(0,B)
BotAt(D):Copy(Line(2),OLine(E))


2

আক্রমণকারী

Start:Move
BotAt(D):Copy(Line(Add(Mod(E,6),4)),OLine(E))
Any(BotAt(0),BotAt(1),BotAt(2),BotAt(3)):Move
None(BotAt(0),BotAt(1),BotAt(2),BotAt(3)):Copy(E,D)

BotAt(D):Copy(Line(X),OLine(E))যেখানে লাইন এক্স রয়েছে Equals(1,1):Flag... মজা করার জন্য
seequ

@ সিগ Lineশুধুমাত্র ক্রিয়ার অনুলিপি করে, শর্তটি নয়।
মেগাটম

আমার অত্যধিক শক্তি
চালিত

2

একক লক্ষ্য

Start:Move
All(BotAt(D),Not(Equals(OVar(D),D))): Copy(D,OVar(D))
BotAt(D):Copy(Line(E),OLine(E))
Equals(A,A):Move

আপনাকে শিকার করবে এবং পতাকাগুলি আপনাকে পূর্ণ করবে!


Allশর্ত একটি প্রয়োজন)
নাথন মেরিল

2

প্রতারণাপূর্ণ

Start:Flag           # comments -->                                                                                 # why move when we can fit another flag here?
Equals(E,0):Copy(Add(D,Sub(Mult(2,Mod(E,2)),1)),D)                                                                  # 1/24 chance to turn left or right
All(BotAt(D),Not(Equals(OCond(Sub(OVar(C),1)),Cond(Add(This,4))))):Copy(Cond(Add(This,4)),OCond(Sub(OVar(C),1)))    # Copy the freeze condition
All(BotAt(D),Not(Equals(OLine(Sub(OVar(C),1)),Line(Add(This,4))))):Copy(Line(Add(This,4)),OLine(Sub(OVar(C),1)))    # Copy the flag-copying line
All(BotAt(D),Not(Equals(OLine(Add(OVar(C),0)),Line(Add(This,Add(4,Mod(E,14))))))):Copy(Line(Add(This,Add(4,Mod(E,14)))),OLine(Add(OVar(C),0))) # copy one of my flags to them
BotAt(D):Copy(Add(D,Sub(Mult(2,Mod(E,2)),1)),D)                                                                     # turn left or right if we've infected our target
Equals(A,A):Move                                                                                                    # move if all else fails, also infection freeze condition
Copy(Line(Add(This,1)),Line(Add(This,Mod(E,22))))                                                                   # infection line 1
Flag                                                                                                                # first of many flags

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


Line(4)কিছুটা সরল করা যায়। Add(OVar(C),0)হিসাবে একই OVar(C)এবং Add(This,Add(4,Mod(E,14)))হিসাবে একই Add(This,4,Mod(E,14))
মেগাটম

পূর্ববর্তী লাইনের লজিকাল অংশগুলি লাইন করার জন্য @ মেগাটম আমি প্রথম অপ্রয়োজনীয় যুক্ত করেছি। দ্বিতীয়টি অ্যাড একাধিক প্যারামিটার নিতে পারে তা না জানার কারণে ছিল। ধন্যবাদ
স্পার

1

গার্ড

Start: Move
BotAt(D):IF(Equals(Line(7),OLine(C)),Line(6),Line(5))
BotAt(Add(D,1)):Copy(Add(D,1),D)
BotAt(Add(D,2)):Copy(Add(D,2),D)
BotAt(Add(D,3)):Copy(Add(D,3),D)
Copy(Line(7),OLine(OVar(C)))
Copy(Cond(7),OCond(Sub(OVar(C),1)))

এর পাশের যে কোনও রোবোটকে আক্রমণ করে।


আপনার শেষ লাইনটি শর্ত থেকে কোনও লাইনে অনুলিপি করতে পারে না।
নাথান মেরিল

@ নাথানমারিল আমি ঠিক ঠিক
করছিলাম

OConদরকারOCond
নাথান মেরিল

1

বট বরফ করুন

Start:Move
All(BotAt(D),Not(Equals(OCond(1),Cond(5)))):Copy(Cond(5),OCond(1))
All(BotAt(D),Not(Equals(OLine(1),Line(6)))):Copy(Line(6),OLine(1))
All(BotAt(D),Equals(Mod(OVar(A),24),0)):Copy(Add(D,1),D)
BotAt(D):Copy(Line(20),OLine(OVar(A)))
Equals(A,A):Move
Copy(Add(A,1),A)

আপনাকে নিজের Aভেরিয়েবলের সাথে জড়িত করে একটি লুপে আটকা দেয় , তারপরে আপনাকে পতাকাগুলি পূর্ণ করে এবং পরবর্তী শিকারের দিকে এগিয়ে যায়।


লাইন 3: দয়া করে ডি + 1 এর সাথে অ্যাড (ডি, 1) প্রতিস্থাপন করুন
নাথান মেরিল

আপনি ধরে নিচ্ছেন যে শুরুটি শূন্যরেখায় আছে। এখন সকলেই তাদের প্রারম্ভিক লাইনের 2 শুরু করার জন্য উত্সাহিত হয়েছে This এটি একটি নির্বিকার বৃদ্ধি / পুনর্বাসনের প্রবণতার দিকে নিয়ে যাচ্ছে :(
স্পার

1

অনুকারক

Start:Move
BotAt(D):If(OCond(0),OLine(0),Line(2))
If(OCond(1),OLine(1),Line(3))
If(OCond(2),OLine(2),Line(4))
If(OCond(3),OLine(3),Line(5))
If(OCond(4),OLine(4),Line(6))
If(OCond(5),OLine(5),OLine(OVar(C)))
Not(BotAt(D)):If(BotAt(Add(D,1)),Line(8),Line(0))
Copy(Add(D,1),D)

ভবিষ্যদ্বাণী করে আপনি কি করবেন, তারপরে এটি করে।


দয়া করে ডি + 1 টি অ্যাড (ডি, 1) দিয়ে প্রতিস্থাপন করুন
নাথান মেরিল

এছাড়াও, আপনি একটি কমান্ড একটি লাইন হিসাবে পাস করতে পারবেন না। আপনাকে হয় OLineLine
নাথন মেরিল

@ নাথানমিরিল যেতে প্রস্তুত! (কমপক্ষে আমি এটি মনে করি)
মেগাটম

এই বটটি আমার কোডটি সত্যিই কিছু ঝামেলার মধ্য দিয়েছিল তবে এটি আমার ছিল, তোমার নয়। কয়েকটি বাগ রয়েছে, দয়া করে এর Lineচারপাশে রাখুন 2এবং এর Add(D,1)পরিবর্তেD+1
নাথন মেরিল

1

অলস সিংহতা

মূলত কেবল "সিংহাসন", প্রতিযোগিতায় আমার প্রথম জমাটি সিমুলেটারের সাথে পরিচয় করার সময় আক্ষরিকভাবে কিছুই না করে "অলস" উপাধি অর্জন করেছিল।

তার অলসতা আসলে একটি বাগ (বা সম্ভবত আমার ঘটনাস্থলের ভুল বোঝাবুঝির কারণে) এর ফলে যার মধ্যে প্রথম তিনটি লাইনের শর্তাবলী (পতাকাগুলি ওভাররাইট করা না হয় তা নিশ্চিত করার জন্য একটি সাধারণ প্যার্টি চেক) মাঝে মাঝে, অনিচ্ছাকৃতভাবে মূল্যায়ন করা যায় true, লেওকে লিমিঙ্কেটে লুপে লক করা হয় । অন্যান্য কয়েকটি শর্ত (বিশেষত যারা এই BotAt()শর্তের উপর নির্ভর করে ) এমন সময়েও মূল্যায়ন trueকরে যখন কোনও সংলগ্ন বট (গুলি) উপস্থিত না থাকে। অবশেষে, Moveএবং Copyসিমুলেটারের মধ্য দিয়ে যাওয়ার সময় নির্দেশাবলী স্পষ্টভাবে উপেক্ষা করা হয়। যেহেতু আমার শর্তযুক্ত লজিক চেইনগুলি কিছুটা মহাকাব্যিক, তাই আমার কোড এবং সিমুলেটারে বাগের জন্য প্রচুর জায়গা রয়েছে । ;)

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

ইট ডুজ নোথিং

All(Not(Equals(Line(18),Line(21))),Equals(Line(21),Line(22))):Copy(Line(21),Line(18))
All(Not(Equals(Line(21),Line(22))),Equals(Line(22),Line(18))):Copy(Line(22),Line(21))
All(Not(Equals(Line(22),Line(18))),Equals(Line(18),Line(21))):Copy(Line(18),Line(22))
All(Any(BotAt(Add(D,1)),BotAt(Add(D,2)),BotAt(Add(D,3))),Not(BotAt(D))):Move
All(Any(All(BotAt(D),BotAt(Add(D,2))),All(BotAt(D),BotAt(Add(D,1))),All(BotAt(Add(D,1)),BotAt(Add(D,2)))),Not(BotAt(Add(D,3)))):Copy(Add(D,3),D)
Any(All(Any(All(BotAt(D),BotAt(Add(D,2))),All(BotAt(D),BotAt(Add(D,3))),All(BotAt(Add(D,2)),BotAt(Add(D,3)))),Not(BotAt(Add(D,1)))),All(BotAt(Add(D,1)),BotAt(D),Any(Equals(OCond(2),Cond(20)),Equals(OLine(2),Line(19))))):Copy(Add(D,1),D)
All(BotAt(Add(D,3)),BotAt(D),Any(Equals(OCond(2),Cond(20)),Equals(OLine(2),Line(19)))):Copy(Add(D,3),D)
All(BotAt(D),Not(Equals(OCond(2),Cond(20))),Not(Equals(OLine(2),Line(19)))):Copy(Cond(20),OCond(2))
All(BotAt(D),Equals(OCond(2),Cond(20)),Not(Equals(OLine(3),Line(18)))):Copy(Line(18),OLine(3))
All(BotAt(D),Equals(OCond(2),Cond(20)),Not(Equals(OLine(4),Line(21)))):Copy(Line(21),OLine(4))
All(BotAt(D),Equals(OCond(2),Cond(20)),Not(Equals(OCond(0),Cond(22)))):Copy(Cond(22),OCond(0))
All(BotAt(D),Equals(OCond(2),Cond(20)),Not(Equals(OLine(0),Line(17)))):Copy(Line(17),OLine(0))
All(BotAt(D),Equals(OCond(2),Cond(20)),Not(Equals(OCond(1),Cond(21)))):Copy(Cond(21),OCond(1))
All(BotAt(D),Equals(OCond(2),Cond(20)),Not(Equals(OLine(1),Line(20)))):Copy(Line(20),OLine(1))
All(BotAt(D),Equals(OCond(2),Cond(20)),Not(Equals(OLine(2),Line(19)))):Copy(Line(19),OLine(2))
All(BotAt(D),Not(Equals(OCond(2),Cond(20))),Equals(OLine(2),Line(19))):Copy(Add(D,A),D)
Equals(E,1):Copy(Add(A,2),A)
Any(Equals(E,4),Equals(E,8)):Copy(Add(D,E,A),D)
Not(Equals(A,A)):Flag
Not(Equals(A,A)):Copy(Line(3),OLine(E))
Equals(A,A):Move
Any(Equals(E,4),Equals(E,5),Equals(E,6),Equals(E,7),Equals(E,8),Equals(E,9)):Flag
Any(Equals(E,10),Equals(E,11),Equals(E,12),Equals(E,13)):Flag
Start:Copy(1,A)

আমি কোনও ত্রুটি দেখতে পাচ্ছি না তবে কেবলমাত্র আপনার সম্ভবত ModifiedEquals
কিছুটির

ক্ল্যাকবট দেখতে দেখতে একই সমস্যা রয়েছে বলে মনে হচ্ছে। আমি এটি একটি সংকলক বাগ মনে করি।
মেগাটম

@ মেগা টম: Modifiedশর্তটি অসীম লুপের জন্য একটি আমন্ত্রণ। আমি যদি প্যারিটি চেক ব্যবহার করতে না পারি তবে আমি কেবল লাইনগুলি পুরোপুরি সরিয়ে ফেলব। 'ইমে রাখার জন্য দরকারী আরও কিছু খুঁজে বের করুন। ;)
সিটিও

আমি মনে করি আমি কন্ট্রোলারে বাগটি পেয়েছি। আমি তাকে একটি অনুরোধ পাঠিয়েছি। যতক্ষণ না তিনি এটি গ্রহণ করেন, আপনি আমার কাঁটাচামচটি চেষ্টা করতে পারেন যদি আপনি পছন্দ করেন এবং আমাকে জানান যে এটি আপনার পক্ষে কাজ করে কিনা।
ccarton

1

প্রহরী

উন্নতি চালু Gard। প্রথম 8 লাইনে পতাকা সহ কাছাকাছি বটগুলিতে আঘাত করে। (এটি, সর্বাধিক ব্যবহৃত)

flag
flag
Start:Copy(11,B)
All(BotAt(D),Not(Equals(OLine(Mod(E,8)),Line(0))),Not(BotAt(Add(D,1,Mod(E,3))))):If(Equals(OVar(D),Add(D,2)),Line(7),Line(8))
BotAt(Add(D,1)):Copy(Add(D,1),D)
BotAt(Add(D,2)):Copy(Add(D,2),D)
BotAt(Add(D,3)):Copy(Add(D,3),D)
copy(D,OVar(D))
copy(Line(Mod(E,2)),OLine(Mod(E,8)))
Not(Equals(Line(0),Line(1))):copy(Line(Add(9,Mod(E,16))),Line(Mod(E,2)))

আমার মনে হয় আপনার 3 লাইনে একটি ভুল জায়গায় বন্ধনী রয়েছে প্রথমটি সঠিকভাবে বন্ধ করা হয়নি। আমি মনে করি এটি হওয়া উচিতAll(BotAt(D),Not(Equals(OLine(Mod(E,8)),Line(0))),Not(BotAt(Add(D,1,Mod(E,3))))):
ccarton

1

CliqueBorg

Flag
BotAt(D): Copy(Line(Sub(This,1)),OLine(E))
Equals(1,1): Copy(Line(Sub(This,2)),Line(Add(This,Mod(E,21))))
Start: Move
All(BotAt(D),Not(Equals(OLine(Sub(OVar(C),1)),Line(3)))):Copy(Line(3),OLine(Sub(OVar(C),1)))
All(BotAt(D),Not(Equals(OCond(Sub(OVar(C),1)),Cond(3)))):Copy(Cond(3),OCond(Sub(OVar(C),1)))
All(BotAt(D),Not(Equals(OLine(Sub(OVar(C),2)),Line(2)))):Copy(Line(2),OLine(Sub(OVar(C),2)))
All(BotAt(D),Not(Equals(OCond(Sub(OVar(C),2)),Cond(2)))):Copy(Cond(2),OCond(Sub(OVar(C),2)))
All(BotAt(D),Not(Equals(OLine(Sub(OVar(C),3)),Line(1)))):Copy(Line(1),OLine(Sub(OVar(C),3)))
All(BotAt(D),Not(Equals(OCond(Sub(OVar(C),3)),Cond(4)))):Copy(Cond(4),OCond(Sub(OVar(C),3)))

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


প্লাস অ্যাড এবং মাইনাস সহ সাব
নাথন মেরিল

1

চালিত হচ্ছে

শেষ তারিখের আগে শেষ চেষ্টা করুন।

Flag
Flag
BotAt(D):Copy(Line(Sub(This,1)),OLine(E))
Equals(1,1):Copy(Line(Sub(This,2)),Line(Add(This,Mod(E,21))))
Start:Move
All(BotAt(D),Not(Equals(OLine(Sub(OVar(C),1)),Line(3)))):Copy(Line(3),OLine(Sub(OVar(C),1)))
All(BotAt(D),Not(Equals(OCond(Sub(OVar(C),1)),Cond(3)))):Copy(Cond(3),OCond(Sub(OVar(C),1)))
All(BotAt(D),Not(Equals(OLine(Sub(OVar(C),2)),Line(2)))):Copy(Line(2),OLine(Sub(OVar(C),2)))
All(BotAt(D),Not(Equals(OCond(Sub(OVar(C),2)),Cond(2)))):Copy(Cond(2),OCond(Sub(OVar(C),2)))
All(BotAt(D),Not(Equals(OLine(Sub(OVar(C),3)),Line(1)))):Copy(Line(1),OLine(Sub(OVar(C),3)))
All(BotAt(D),Not(Equals(OCond(Sub(OVar(C),3)),Cond(4)))):Copy(Cond(4),OCond(Sub(OVar(C),3)))
BotAt(D):Copy(Add(D,1),D)
Equals(1,1):Move
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.