युद्ध के मैदान में सभी बोट्स का अचानक दिमाग खराब हो गया और कोई भी यह नहीं बता सकता कि क्यों। लेकिन जब तक वे अभी भी लड़ने में सक्षम होते हैं, तब तक - हालांकि ब्रेनफक एकमात्र ऐसी भाषा है जिसे वे अब भी समझते हैं।
यह अंतिम सबमिशन के बाद से एक समय हो गया है, इसलिए मैं आखिरकार ब्रेनफेडबॉट्सफोरबोटलिंग के विजेता की घोषणा करूंगा: NyurokiMagicalFantasi के साथ जीतने के लिए LymiaAluysia को बधाई!
स्कोरबोर्ड
| Owner | Bot Score |
|--------------------|-------------------------------|
| LymiaAluysia | NyurokiMagicalFantasy - 600 |
| Sylwester | LethalLokeV2.1 - 585 |
| weston | MickeyV4 - 584 |
| Sp3000 | YandereBot - 538 |
| Comintern | CounterPunch - 512 |
| Sylwester | BurlyBalderV3 - 507 |
| LymiaAluysia | NestDarwin - 493 |
| IstvanChung | Bigger - 493 |
| Manu | DecoyMaster - 489 |
| archaephyrryx | Wut - 478 |
| DLosc | LightfootPlodder - 475 |
| archaephyrryx | 99BottlesOfBats - 461 |
| Sylwester | TerribleThorV2 - 458 |
| MikaLammi | WallE2.0 - 443 |
| Mikescher | MultiVAC - 441 |
| archaephyrryx | Twitcher - 439 |
| Timtech | MetalDetector - 438 |
| AndoDaan | BeatYouMate - 433 |
| csarchon | TheWallmaster - 427 |
| Sparr | SeeSawRush - 412 |
| archaephyrryx | Stitcher - 406 |
| PhiNotPi | RandomOscillator - 403 |
| ccarton | AnybodyThere - 398 |
| Comintern | 2BotsOneCup - 392 |
| kaine | SternBot - 387 |
| PhiNotPi | EvoBot2 - 385 |
| PhiNotPi | EvoBot1 - 381 |
| Brilliand | TimedAttack - 373 |
| Sylwester | ReluctantRanV2 - 373 |
| AndoDaan | PrimesAndWonders - 359 |
| Nax | TruthBot - 357 |
| DLosc | Plodder - 356 |
| weston | FastTrapClearBot - 345 |
| MikaLammi | PolarBearMkII - 340 |
| Sp3000 | ParanoidBot - 336 |
| Moop | Alternator - 319 |
| TestBot | FastClearBot - 302 |
| icedvariables | PyBot - 293 |
| TestBot | DecoyBot - 293 |
| kaine | BestOffense - 291 |
| Geobits | Backtracker - 289 |
| bornSwift | ScribeBot - 280 |
| IngoBuerk | Geronimo - 268 |
| flawr | CropCircleBot - 239 |
| plannapus | CleanUpOnAisleSix - 233 |
| frederick | ConBot - 230 |
| frederick | 128Bot - 222 |
| AndoDaan | EndTitled - 219 |
| PhiNotPi | CloakingDeviceBot - 215 |
| AndoDaan | GetOffMate - 206 |
| DLosc | ScaredyBot - 205 |
| isaacg | CleverAndDetermined - 202 |
| PhiNotPi | CantTouchThis - 202 |
| Moop | StubbornBot - 174 |
| Cruncher | StallBot - 168 |
| IngoBuerk | Gambler - 157 |
| BetaDecay | RussianRoulette - 129 |
| flawr | DoNothingBot - 123 |
| SebastianLamerichs | Dumbot - 115 |
| mmphilips | PacifistBot - 112 |
| SeanD | DontUnderstand - 92 |
| proudHaskeller | PatientBot - 83 |
| frederick | Dumberbot - 70 |
| flawr | MetaJSRandomBot - 68 |
| Darkgamma | TheRetard - 61 |
| BetaDecay | Roomba - 61 |
| BetaDecay | PrussianRoulette - 31 |
| frederick | Dumbestbot - 0 |
09.10.2014 से अंतिम स्कोर
EDIT6 : अत्यधिक आकार और रनटाइम के कारण अस्वीकृत लॉग। आप लाइनों को अनइंस्टॉल करके स्वयं उन्हें उत्पन्न कर सकते हैं RunThisTournament.py
।
EDIT5 : नियंत्रक में लागू किया गया संक्षिप्तकरण, अब कोई विशाल रनटाइम नहीं है। इसका साइड इफेक्ट यह है कि संख्या और कोष्ठक को अब टिप्पणियों के रूप में नहीं माना जाता है। यदि आप एक एनोटेट संस्करण प्रदान करना चाहते हैं, तो भी आप उनका उपयोग कर सकते हैं, लेकिन यह बहुत उपयोगी होगा यदि आपके कोड का एक अनियोजित संस्करण भी होगा , इसलिए मुझे टिप्पणियों को मैन्युअल रूप से निकालने की आवश्यकता नहीं है। धन्यवाद!
EDIT4 : शीर्षक बदल गया, क्योंकि टूर्नामेंट गर्म नेटवर्क प्रश्नों से हटा दिया गया था। इसे इंगित करने के लिए @Geobits का धन्यवाद!
EDIT3 : bf कार्यक्रमों में हटाए गए टिप्पणियों, एक अप्रत्याशित परिणाम के कारण, अब तय किया जाना चाहिए। यदि किसी को अपनी टिप्पणियों को हटाने में कोई समस्या है, तो कृपया रिपोर्ट करें।
EDIT2 : चूंकि इसने मेरे काफी धीमी गति से कंप्यूटर पर एक आर्कन रनटाइम का कारण बना, इसलिए मैंने समय सीमा को 100000 चक्रों से घटाकर 10000 चक्र कर दिया। ऐसा नहीं है कि किसी ने भी नतीजे को इस बिंदु से आगे नहीं बढ़ाया है।
EDIT1 : कन्वर्ट स्क्रिप्ट में एक बग फिक्स्ड है जिससे दुभाषिया टिप्पणी किए गए कार्यक्रमों में संख्याओं की अनदेखी नहीं कर सकता है।
विवरण
यह एक ब्रेनफक टूर्नामेंट है जो बीएफ जैड से प्रेरित है । दो बॉट्स (ब्रेनफक प्रोग्राम) एक क्षेत्र में एक दूसरे से लड़ रहे हैं जिसे मेमोरी टेप द्वारा दर्शाया गया है। प्रत्येक सेल -127 से 128 तक मान रख सकता है और अपनी सीमा में लपेट सकता है (इसलिए 128 + 1 = -127)।
मान्य निर्देश ब्रेनफक को नियमित करने के लिए उपयुक्त हैं, जिसका अर्थ है:
+ : Increment cell at your pointer's location by 1
- : Decrement cell at your pointer's location by 1
> : Move your memory pointer by 1 cell towards the enemy flag
< : Move your memory pointer by 1 cell away from the enemy flag
[ : Jump behind the matching ']'-bracket if the cell at your pointer's location equals 0
] : Jump behind the matching '['-bracket if the cell at your pointer's location is not 0
. : Do nothing
अखाड़े का आकार 10 से 30 कोशिकाओं का होता है, जो प्रत्येक लड़ाई को छद्म रूप से चुना जाता है। दोनों सिरों पर एक 'ध्वज' स्थित है, जिसका प्रारंभिक मूल्य 128 है, जबकि अन्य सभी कोशिकाएँ शून्य हैं। इससे पहले कि वह आपका अपना झंडा लहराए, आपके बॉट का लक्ष्य लगातार 2 चक्रों तक दुश्मन के झंडे को शून्य करना है।
प्रत्येक बॉट अपने स्वयं के झंडे पर शुरू होता है, जो अपने दृष्टिकोण से सेल [0] है। प्रतिद्वंद्वी टेप के दूसरी तरफ स्थित है।
[ 128 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 128 ]
^ ^
my bot other bot
दोनों बॉट एक साथ अपनी कार्रवाई को अंजाम देते हैं, इसे एक चक्र माना जाता है। खेल 10000 चक्रों के बाद समाप्त होता है या जैसे ही एक जीतने की स्थिति तक पहुंच जाता है। यदि कार्यक्रमों में से एक इसके अंत तक पहुँचता है, तो यह खेल के अंत तक कुछ करना बंद कर देता है, लेकिन फिर भी जीत सकता है।
जीतने की स्थिति
आपका बॉट निम्नलिखित स्थितियों में से एक के तहत जीतता है:
- आपके सामने आपके शत्रु का झंडा शून्य है
- आपका दुश्मन अपने पॉइंटर को टेप से बाहर ले जाता है (
>
आपके झंडे या<
अपने दम पर निष्पादित होता है ) - 10000 चक्रों के बाद आपके प्रतिद्वंद्वी के झंडे के मूल्य की तुलना में आपके झंडे का मूल्य 0 से बहुत अधिक दूर है
नियम
आपकी पोस्ट में आपके बॉट और उसके कोड के लिए एक नाम होना चाहिए।
- अपने कोड को अधिक पठनीय बनाने के लिए आप निम्नलिखित संक्षिप्त नाम वाक्य रचना का उपयोग कर सकते हैं:
- जैसे
(+)*4
ही है++++
, यह किसी भी निर्देश के लिए मान्य है, क्योंकि कोष्ठक में बेजोड़ कोष्ठक को छोड़कर, क्योंकि लूप लॉजिक संक्षिप्त नाम लॉजिक से टकराता है। के[-[-[-
बजाय का उपयोग करें([-)*3
- जैसे
- की तुलना में हर दूसरे चरित्र
+-><[].
, एक टिप्पणी है और सिवाय इसलिए नजरअंदाज कर दिया()*
संक्षिप्त रूपों के लिए
नियम का पालन नहीं करने वाले बॉट्स को टूर्नामेंट से बाहर कर दिया जाएगा।
- केवल मूल ब्रेनफैक की अनुमति है, कोई अन्य संस्करण जो प्रक्रियाओं या अंकगणितीय संचालन का समर्थन करता है
- आपके बॉट के सोर्स कोड में बेजोड़ कोष्ठक नहीं होना चाहिए
आप बुनियादी रणनीतियों के बारे में खुद को सूचित कर सकते हैं, लेकिन अपने स्वयं के बॉट के लिए किसी दूसरे के कोड का उपयोग न करें।
स्कोरिंग
एक बॉट का स्कोर अन्य सभी बॉट के खिलाफ जीत की संख्या से निर्धारित होता है। 2 बॉट्स के बीच एक मुठभेड़ में अलग-अलग मेमोरी टेप की लंबाई के साथ 10 मैच होते हैं, जिसके परिणामस्वरूप अधिकतम प्रति अंक 10 अंक मिलते हैं। इस मैच के लिए कोई अंक नहीं है।
नियंत्रण कार्यक्रम
आप लड़ाई से पूर्ण लॉग्स के साथ, जीथब पर नियंत्रण कार्यक्रम पा सकते हैं । लीडरबोर्ड यहां उत्पन्न होने के बाद पोस्ट किया जाएगा।
बेझिझक रिपॉजिटरी को क्लोन करें और अपने बॉट को दूसरों के खिलाफ आजमाएं। python Arena.py yourbot.bf otherbot.bf
एक मैच चलाने के लिए उपयोग करें । आप कमांड-लाइन झंडे के साथ शर्तों को संशोधित कर सकते हैं -m
और -t
। यदि आपका टर्मिनल एएनएसआई से बचने के क्रम का समर्थन नहीं करता है, तो --no-color
रंगीन आउटपुट को अक्षम करने के लिए ध्वज का उपयोग करें ।
उदाहरण बॉट
FastClearBot.bf
(>)*9 Since the tape length is at least 10, the first 9 cells can be easily ignored
([ Find a non-zero cell
+++ Increment at first, since it could be a decoy
[-] Set the cell to zero
]> Move on to the next cell
)*21 Repeat this 21 times
DecoyBot.bf
>(+)*10 Set up a large defense in front of your flag
>(-)*10 Set up another one with different polarity
(>+>-)*3 Create some small decoys
(>[-] Move on and set the next cell to zero
. Wait one round, in case it is the enemy's flag
)*21 Repeat this 21 times
DecoyBot हर मैच को दस से अधिक की लंबाई के साथ जीतता है, क्योंकि FastClearBot छोटे डिकॉय से बच सकता है, लेकिन बड़े लोगों से नहीं। एकमात्र ऐसी स्थिति जिसमें FastClearBot DecoyBot के खिलाफ जीत सकता है, जब यह इतनी तेजी से दुश्मन के झंडे तक पहुंचने से पहले होता है जब तक कि उसके प्रतिद्वंद्वी ने बड़े डिकॉय बनाए हों।