ब्रेनएफ *** edBotsForBattling - एक ब्रेनफ *** टूर्नामेंट


88

युद्ध के मैदान में सभी बोट्स का अचानक दिमाग खराब हो गया और कोई भी यह नहीं बता सकता कि क्यों। लेकिन जब तक वे अभी भी लड़ने में सक्षम होते हैं, तब तक - हालांकि ब्रेनफक एकमात्र ऐसी भाषा है जिसे वे अब भी समझते हैं।


यह अंतिम सबमिशन के बाद से एक समय हो गया है, इसलिए मैं आखिरकार ब्रेनफेडबॉट्सफोरबोटलिंग के विजेता की घोषणा करूंगा: 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 के खिलाफ जीत सकता है, जब यह इतनी तेजी से दुश्मन के झंडे तक पहुंचने से पहले होता है जब तक कि उसके प्रतिद्वंद्वी ने बड़े डिकॉय बनाए हों।


5
मूल, मुझे यह पसंद है। मुझे डर है कि यह पर्याप्त रणनीतिक गहराई के लिए अनुमति नहीं देगा, लेकिन यह सिर्फ मुझे हो सकता है।
atı 17uʎs

11
यह बेफ्यूज के साथ और भी मजेदार होगा ।
IchBinKeinBaum

6
मुझे एक बीएफ जॉशिंग वेबपेज मिला, जो जॉशिंग मैच की कल्पना कर सकता है।
PhiNotPi

4
इस KOTH, सिफर की मेजबानी के लिए धन्यवाद। इतने सबमिशन के साथ बहुत काम होना चाहिए।
एंडोअडैन

3
मैं इसके बजाय अभी भी भाग लेने के लिए सभी को धन्यवाद कहना चाहूंगा ^ ^
सिफर

जवाबों:


18

न्यूर्की जादुई कल्पना

मुझे लगता है कि यह गंभीर होने का समय है ~ मैंने बीएफ जैल कार्यक्रमों को आसान बनाने के लिए थोड़ा एचएलएल के लिए अपना कंपाइलर तैयार किया। यह इसके साथ कुछ करने का मेरा पहला गंभीर प्रयास था। बॉट की अवधारणा बहुत सरल है। यह अलग-अलग ध्रुवीयताओं के कुछ decoys को स्थापित करता है, फिर बीच में एक रिवर्स ऑफसेट स्पष्ट के साथ एक बड़े विगल के साथ पागल हो जाता है।

ओह, वैसे, अंतिम दौर की पहाड़ी के मुकाबले अपेक्षित स्कोर लगभग 577 अंक है। यह एक 93% जीत दर है। <3

संकलित | सोर्स कोड

Nyuroki Magical Fantasy by Lymia Aluysia
Released under the terms of MIT license

>>>>>>>>++<--<+<--<++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+<-------------------------------------------------------------<---------------
----------------------------------------------<++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++<(-)*19(>)*8(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-
[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[
+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-
[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[
-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3
+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[
-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>
[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[
-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*
82[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(
-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[
+[+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+
[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[
+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-
[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[
+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-
[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*
41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3+[+[+[
(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[
-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>[-[-[-
[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[
-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.]
.]--(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[
-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+
[(+)*82[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[
+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+
[+[+[+[+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16
+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+
[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[
-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+
[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-[
-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-
[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3+
[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-
[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>[
-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-
[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82
[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)
*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[
+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(+)*16+[+[+[+
[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[+[+[+[+[+[+[
+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--(>[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[-[-[-[-[-[(
+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+[+[+[+[+[+[
+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]-->[-[-[-[(+)*3+[+[+[(-)*6-[-[-[-[-[
-[-[-[-[-[(+)*16+[+[+[+[+[+[+[+[(-)*24-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[(+)*41+
[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[(+)*82[[+.].]--]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]--)*2]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]--)*3]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]--)*4]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)*5]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)*6]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)*7]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)*8]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)*9]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]--)*10]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]--)*11]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)
*12]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)*13]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)*14]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)*15]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)*16]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]]]]]]]]]]]--)*17]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]]]]]]]]]]]--)*18]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
]]]]]]--)*19]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)*
20]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]--)*21

संपादित करें : मैं Nyuroki से बाहर कुछ और जीत निचोड़।

संपादित करें 2 : अरे, देखो, मैंने इसे फिर से किया!

संपादित करें 3 : अरीस्टोन में एक बेवकूफ पार्सिंग बग के साथ थोड़ी देर के लिए कुश्ती करने के बाद, मुझे आखिरकार एक और सुधार मिला ~ यह मेरा मतलब है "गंभीर होने का समय", आप जानते हैं। <3


Loke की तरह लगता है कुछ समायोजन की जरूरत है :-) अपनी भाषा से प्यार करें। क्या एरिज़ोना में बग आपके पास व्हाट्सएप के बीच )और *या *और संख्या के बीच था ?
सिल्वेस्टर

@ सिलवेस्टर बहुत अधिक बदतर। लूप्स जहां वे नहीं जा रहे हैं: github.com/redevined/brainfuck/pull/6
Lymia Aluysia

# 1 के साथ बधाई। 92,5% जीत दर मैच के लिए कठिन होने जा रहा है।
सिल्वेस्टर

अच्छी तरह से किया है, लेकिन यह आशुलिपि दुरुपयोग नहीं है? नेस्टेड लूप प्रभावी रूप से 21 भाज्य = 5 * 10 ^ 19 हैं। दूसरे शब्दों में, यह प्रभावी रूप से बेसिक ब्रेनफक में अनपेक्षित है।
वेस्टन

1
@ पश्चिमी हाँ। और सबसे विकसित BF Joust पहाड़ी ( codu.org/eso/bfjoust/in_egobot - smartlock पर एक नज़र डालें, उदाहरण के लिए) पर अधिकांश कार्यक्रम और भी बदतर हैं। यह विशेष रूप से बड़ी बात नहीं है, क्योंकि यह आशुलिपि की तरह है। यह ऐसी रणनीतियाँ बनाता है जो अन्यथा अस्थिर होने के कारण अन्यथा अस्थिर होंगी। :)
लाइमिया एलुसिया

43

क्लोकिंग डिवाइस बॉट

यह बॉट मूल रूप से अपने आधार को छिपाने की कोशिश करता है, जिससे यह बन जाता है कि अन्य बॉट्स इसे अतीत से दूर ले जाएंगे और टेप को बंद कर देंगे।

(-)*127(-+--+-++)*12500

4
बहुत चालाक, इसके लिए मुझे अपने बॉट को समायोजित करना पड़ा।
21

2
यह मेरी राय में, यहाँ सबसे चतुर लोगों में से एक है।
आलमो

+ पहले क्लोकर के लिए च। इससे पहले कि मैं Ràn बना, मैंने इसे नोटिस नहीं किया, लेकिन यह समान विचार है, विभिन्न अनुप्रयोग।
सिल्वेस्टर

19

बली बाल्डर v3

Burly Balder एक मध्यम धीमी गति की भीड़ है। यह भीड़ मोड में जाने से पहले दो बड़े decoys बनाता है। रश मोड में, यह एक लूप है जो केवल प्रत्येक शून्य सेल में 4 चरणों का उपयोग करता है और जब एक गैर शून्य सेल में यह [-18,18] के लिए एक केस विश्लेषण होता है, जिसके साथ क्लीयरिंग से पहले 107 के साथ नेत्रहीन रूप से कम किया जाता है [-.]। वह 242 चरणों में एक अपरिवर्तित ध्वज को साफ़ करता है, एक अनिश्चित से 114 अधिक -*128 और एक भोले [-]स्पष्ट से 14 कम है । जब एक सेल को मंजूरी दे दी जाती है, तो वह -2 डिकॉय का निशान छोड़ देता है। उसके पास एक विशेष मामला है जो केवल 9 इंडेक्स के लिए आकार 10 गेम के लिए कुछ चरणों को बचाने के लिए है और यह सेल को 1 डिकॉय के साथ छोड़ देता है।

>((-)*18>)*2                                  Make two minus seventeen decoys
(->)*6                                        Move to cell nine

[                                             special case for ten cell game 
   +[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[       if not minus one to minus eighteen 
   (-)*18                                     decrease by eighteen
   -[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[       if not plus one to plus eighteen
       (-)*107                                decrease by hundred and seven
       [-.]                                   slow clear
   ]]]]]]]]]]]]]]]]]]                         end plus conditionals
   ]]]]]]]]]]]]]]]]]]                         end minus conditionals
]                                             end special case
+
([>                                           while true go right
  [                                           start clear cell 
   +[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[+[       if not minus one to minus eighteen 
   (-)*18                                     decrease by eighteen
   -[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[-[       if not plus one to plus eighteen
       (-)*107                                decrease by hundred and seven
       [-.]                                   slow clear
   ]]]]]]]]]]]]]]]]]]                         end plus conditionals
   ]]]]]]]]]]]]]]]]]]                         end minus conditionals
  ]                                           end clear cell
  --                                          set to minus two 
 ]                                            while true end
 -                                           decrease and loop
)*5                                          In case of clash or initial column minus seven is zero

ट्रिविया: बाल्डर एक नॉर्डिक भगवान और ओडिन का बेटा है। वह ज्यादातर अपनी मौत की कहानी के लिए जाना जाता है : वह अपनी सुरक्षा के लिए डर गया था इसलिए अन्य देवताओं ने हर खतरे के खिलाफ भविष्यवाणी करने और ढालने की कोशिश की। अंततः वह लोकी द्वारा मार दिया गया था, जबकि उन्होंने तलवारों और तीरों के खिलाफ उनकी रक्षा की थी और वे मिस्टलेटो के खिलाफ उसकी रक्षा करना भूल गए थे।


2
तुम्हारे फरमान मुझे मार रहे हैं। बहुत बढ़िया।
एंडोआडान

1
@AndoDaan धन्यवाद आपका BeatYouMateचतुर था। मुझे डर है कि ज्यादातर बॉट पर डिकॉय अगले राउंड तक भी बड़े होने वाले हैं, जब तक कि यह पेनल्टी नहीं देता। तब शायद हमारे पास कुछ और शानदार रणनीतियाँ उभरने
लगेंगी

2
फंदा का आकार बढ़ाने के साथ समस्या यह है कि यह तेजी से हमले के बॉट के खिलाफ छोटे टेप पर प्रदर्शन के साथ बंद हो जाता है। 10 यादृच्छिक दौरों के साथ, एक मीठी जगह की संभावना अधिक होती है जो इस बात पर निर्भर करती है कि अन्य प्रविष्टियां कितनी तेजी से हमला करती हैं।
कॉमिंटर

2
हाँ, तुम अभी भी हरा करने के लिए एक हो।
एंडो डैन

4
@AndoDaan मेरे साथ बेतरतीब अखाड़े के आकार का समर्थन करने के लिए इतने सारे नॉर्डिक देवता मेरे पक्ष में प्रतीत होते हैं :-)
सिलवेस्टर

13

EvoBot 1

यह एक सरल बॉट है जिसे जेनेटिक एल्गोरिदम के माध्यम से बनाया गया है। मैंने एक टेम्पलेट के साथ शुरुआत की, और मेरे कार्यक्रम ने धीरे-धीरे बेहतर योद्धा-बॉट बनाने के लिए संख्याओं को समायोजित किया। पठनीयता बढ़ाने के लिए नीचे दिए गए कोड को संपादित किया गया है।

>+>---(>)*6(>[+++[-]])*30

मैंने विभिन्न उम्मीदवारों की फिटनेस को मापने के लिए प्रतियोगिता में अन्य प्रविष्टियों का उपयोग किया।

चूंकि यह एक एबोबोट पर मेरा पहला प्रयास था, इसलिए मैंने एक साधारण टेम्पलेट के साथ शुरुआत की:

>(+)*n>(-)*n(>)*n(>[(+)*n[-]])*30  #template

मेरा अनुमान है कि इस बॉट को 50 से 60 के दशक की सीमा में एक अंक प्राप्त होगा।

मैं वर्तमान में एक रिवर्स डिकॉय टेम्पलेट पर काम कर रहा हूं।

EvoBot 2

यह एक आनुवांशिक एल्गोरिथ्म द्वारा निर्मित बॉट है, लेकिन निम्नलिखित टेम्पलेट के साथ:

>>>>(-)*n<(+)*n<(-)*n<(+)*n(>)*8(>[+++[-]])*30  #template

यह बॉट अलग-अलग ऊंचाई के 4 डिकॉय सेट करने के लिए रिवर्स डिकॉय रणनीति का उपयोग करता है। परिणामी बॉट है:

>>>>(-)*4<(+)*6<(-)*7<(+)*8(>)*8(>[+++[-]])*30

मुझे उम्मीद है कि यह नया बॉट पिछले बॉट्स की तुलना में बेहतर किराया देगा, संभवतः 70 के दशक में स्कोर कमाएगा (शायद इससे बहुत अधिक है क्योंकि कई नई प्रविष्टियां हैं)।


2
आनुवंशिक एल्गोरिदम के लिए +1। मुझे उन पर बहुत भरोसा है। मुझे उम्मीद है कि आपके बॉट्स अच्छा करेंगे।
AndoDaan

12

आवर्तित्र

यह मानता है कि ज्यादातर लोग इसे जोड़ने या घटाने के द्वारा एक सेल को शून्य कर देंगे, इसलिए औसतन प्रत्येक कोशिका शून्य से 128 मोड़ लेगी।

(>+>-)*4>+(>[-][.])*21

एनोटेट संस्करण

(>+>-)*4       Move eight squares alternating polarity    
>+             Move one more
(
    >          Move to the next square
    [-]        Zero it
    [.]        Wait while it is zero
)*21           Repeat

लानत है, आपके नवीनतम परिवर्तन Geronimo के खिलाफ अल्टरनेटर के लिए जीत की दर को ~ 60% से ~ 90% तक सुधारते हैं। अच्छा लगा।
इंगो बुर्क

हाँ, मैं 18 बार बढ़ रहा था जब मैंने किया (> +> -) * 9, तो यह टेप से गिर जाएगा। मूर्खतापूर्ण गलती।
मूप

यहां तक ​​कि सेल को शून्य करने के लिए बारी-बारी से जोड़कर / घटाकर जेरोनिमो की रक्षा करना मेरी जीत दर को बिल्कुल भी नहीं बदलता है। अल्टरनेटर यहां विजेता के रूप में सामने आ सकता है - यह जाल को दरार करने के लिए काफी मुश्किल सेट करने के लिए कुछ सिलिंडरों का उपयोग करता है।
इंगो बुर्क

अरे, मुझे सही करें अगर मैं गलत हूं, लेकिन क्या यह बॉट स्वचालित रूप से बोर्ड से दूर नहीं जाता है यदि बोर्ड 10 लंबा है? शून्य पर कुछ भी सेट करने का प्रयास करने से पहले यह 10 वर्गों में बढ़ रहा है।
एक बॉशमैन

11

इसलिए, यहां कोई व्यक्ति आनुवंशिक एल्गोरिथ्म का उपयोग करके यहां कार्यक्रमों को बनाने की कोशिश करता है। खैर ... बहुत समय पहले, मैंने एक IRC चैनल में चल रही पहाड़ी के लिए BF Joust evolver लिखा था। मैंने इसे इस प्रतियोगिता के लिए एक स्पिन देने का फैसला किया ~

और ... एक एवोल्वर वाले दूसरे व्यक्ति के विपरीत, मेरा एवोल्वर वास्तव में बार-बार दोहराने वाले काउंट्स से अधिक प्रोग्राम को बदल सकता है। :)

NestDarwin (जनरेशन 309)

यह अब तक का मेरा सबसे अच्छा परिणाम है। मुझे यकीन नहीं है कि इस मामले में नेस्टेड संरचना कितनी मदद करती है, लेकिन, इस तरह की संरचनाएं जो कि एवोल्वर करने में सक्षम होने के लिए होती हैं। 27.08.2014 पहाड़ी पर अपेक्षित प्रदर्शन 474 अंक है। (सभी 21 टेप लंबाई पर लड़ाई चलाने और 10/21 से गुणा करके परिकलित करें। ध्यान दें कि यह इस तथ्य के लिए सामान्यीकृत नहीं है कि इस पहाड़ी पर एक अतिरिक्त कार्यक्रम है)

(-)*5(>[(-)*4----[.+]]--((-)*5(>[(-)*4----[.+]]--((-)*5(>[(-)*4----[.+]]--((-)*5(>[(-)*4----[.+]]--)*10000)*10000)*10000)*10000)*10000)*10000)*10000

EDIT : उन कार्यक्रमों की सूची बदली गई है जो मैं इस पहाड़ी में प्रवेश करना चाहता हूं। रात भर दौड़ाते रहे। :)


संपादित 2 : मैं गया और मैन्युअल रूप से एवोल्वर के आउटपुट का विश्लेषण किया। बहुत अलग दिखने के बावजूद, NestDarwin मूल रूप से TinyDarwin का अनुकूलित संस्करण है ... मैन्युअल रूप से न्यूनतम (समान कार्यक्षमता के साथ) और विश्लेषण किया गया है:

(-)*5                     Break stuff that assumes flag size.
(>[(-)*8[.+]](-)*7)*3     Make a few larger decoys next to our flag. 
                          The clear loop is basically dead code here.
                          Few things are going to approach so fast, so.
(>[(-)*8[.+]](-)*2)*10000 And go on an rampage with an offset clear!
                          I presume the slow clear is to beat tripwires.

तो, एक लगभग समान कार्यक्रम इस प्रकार होगा ... जो मूल रूप से टाइनीडर्विन का एक सुपर-अनुकूलित संस्करण है।

(-)*5(>.(-)*7)*3(>[(-)*8[.+]](-)*2)*10000

TinyDarwin इस प्रकार था। बहुत अलग नहीं, हुन? मैं बस इसे पहाड़ी से वापस लेने जा रहा हूं। मुझे लगा कि यह अलग है, लेकिन ... ठीक है, मैं गलत था।

((-)*5>[(-)*4.[+.]].)*10000

यह स्पष्ट हो गया है कि वर्तमान पहाड़ी इतनी मजबूत नहीं है कि वह बहुत अधिक जटिल चीजों को विकसित कर सके। :(


1
पहले स्थान के साथ बधाई। क्या जेनेटिक एल्गो प्रोग्राम आपके वर्तमान संस्करण को एक टेम्पलेट के रूप में उपयोग करने में सक्षम है और आगे भी इसे बेहतर बनाने के लिए नए संस्करणों के साथ जारी है?
सिल्वेस्टर

पहले स्थान के साथ बहुत अच्छा काम। मैं एक आनुवंशिक एल्गोरिथ्म बहुत खुश हूँ (अच्छी तरह से, इसके स्पॉन) ने इसे वहाँ बना दिया!
AndoDaan

अब अगर हम सभी खेलों के परिणाम ले सकते हैं, और अधिक विकसित कर सकते हैं, कुछ मशीन सीखने को जोड़ सकते हैं ... तो हमें दयनीय मनुष्यों के पास अब कोई मौका नहीं होगा: पी
Sp3000

@ सिलवेस्टर की तरह? मेरा आंतरिक प्रतिनिधित्व एक (खराब तरीके से सोचा गया) जीन सक्रियण प्रणाली का उपयोग करता है जो इसे सुपरस्ट्रक्चर (और व्यवहार में, वास्तव में नहीं) विकसित करने देता है। मैं अंतिम कार्यक्रम को वापस नहीं ला सकता और आंतरिक प्रतिनिधित्व को पुनर्प्राप्त कर सकता हूं, लेकिन मैं निर्देशों को एक जीन में डाल सकता हूं और इसे विकसित करना जारी रख सकता हूं (हालांकि बहुत मदद मिलेगी)।
लूमिया एलुसिया

@ Sp3000 दुर्भाग्य से मेरा एल्गोरिथ्म अच्छी तरह से विकसित #esoteric पहाड़ी पर मुश्किल से प्रगति कर सकता है। यह अच्छा होगा अगर मैं ऐसा कर सकता हूं, लेकिन, अफसोस, आनुवांशिक एल्गोरिदम में मेरा कौशल अभी अच्छा नहीं है। जब मैं अपने सभी बदसूरत हैक्स को साफ कर लेता हूं, तो मैं शायद किसी दिन अपनी एवोल्वर जारी करूंगा।
लाइमिया एलुसिया

10

ध्रुवीय भालू एमके II

ध्रुवीय भालू दो प्रकार के होते हैं : वे जो फंस जाते हैं और जो दूसरे लोगों को फंसा लेते हैं।

प्रतिद्वंद्वी की ध्रुवीयता का अनुमान लगाने की कोशिश करता है और फिर उस जानकारी का उपयोग प्रतिद्वंद्वी को अनंत लूप में बंद करने के लिए करता है। सरल समाशोधन रणनीतियों और कुछ अन्य के खिलाफ यादृच्छिक रूप से अच्छी तरह से काम करता है। जाल से काफी आसानी से बचा जा सकता है इसलिए मैं बाद में कुछ बैकअप रणनीतियों को जोड़ सकता हूं।

>++>- create polar bear traps
[[]]<
[][
[[]]<
(+)*290 (>)*9  (+)*120 (.+)*16 (<)*9
(+)*112 (>)*10 (+)*120 (.+)*16 (<)*10
(+)*112 (>)*11 (+)*120 (.+)*16 (<)*11
(+)*112 (>)*12 (+)*120 (.+)*16 (<)*12
(+)*111 (>)*13 (+)*120 (.+)*16 (<)*13
(+)*111 (>)*14 (+)*120 (.+)*16 (<)*14
(+)*111 (>)*15 (+)*120 (.+)*16 (<)*15
(+)*110 (>)*16 (+)*120 (.+)*16 (<)*16
(+)*110 (>)*17 (+)*120 (.+)*16 (<)*17
(+)*110 (>)*18 (+)*120 (.+)*16 (<)*18
(+)*109 (>)*19 (+)*120 (.+)*16 (<)*19
(+)*109 (>)*20 (+)*120 (.+)*16 (<)*20
(+)*109 (>)*21 (+)*120 (.+)*16 (<)*21
(+)*108 (>)*22 (+)*120 (.+)*16 (<)*22
(+)*108 (>)*23 (+)*120 (.+)*16 (<)*23
(+)*108 (>)*24 (+)*120 (.+)*16 (<)*24
(+)*107 (>)*25 (+)*120 (.+)*16 (<)*25
(+)*107 (>)*26 (+)*120 (.+)*16 (<)*26
(+)*107 (>)*27 (+)*120 (.+)*16 (<)*27
(+)*106 (>)*28 (+)*120 (.+)*16 (<)*28
(+)*106 (>)*29 (+)*120 (.+)*16 (<)*29
(+)*106 (>)*29 [-]
]<
(-)*290 (>)*9  (+)*120 (.+)*16 (<)*9
(-)*112 (>)*10 (+)*120 (.+)*16 (<)*10
(-)*112 (>)*11 (+)*120 (.+)*16 (<)*11
(-)*112 (>)*12 (+)*120 (.+)*16 (<)*12
(-)*111 (>)*13 (+)*120 (.+)*16 (<)*13
(-)*111 (>)*14 (+)*120 (.+)*16 (<)*14
(-)*111 (>)*15 (+)*120 (.+)*16 (<)*15
(-)*110 (>)*16 (+)*120 (.+)*16 (<)*16
(-)*110 (>)*17 (+)*120 (.+)*16 (<)*17
(-)*110 (>)*18 (+)*120 (.+)*16 (<)*18
(-)*109 (>)*19 (+)*120 (.+)*16 (<)*19
(-)*109 (>)*20 (+)*120 (.+)*16 (<)*20
(-)*109 (>)*21 (+)*120 (.+)*16 (<)*21
(-)*108 (>)*22 (+)*120 (.+)*16 (<)*22
(-)*108 (>)*23 (+)*120 (.+)*16 (<)*23
(-)*108 (>)*24 (+)*120 (.+)*16 (<)*24
(-)*107 (>)*25 (+)*120 (.+)*16 (<)*25
(-)*107 (>)*26 (+)*120 (.+)*16 (<)*26
(-)*107 (>)*27 (+)*120 (.+)*16 (<)*27
(-)*106 (>)*28 (+)*120 (.+)*16 (<)*28
(-)*106 (>)*29 (+)*120 (.+)*16 (<)*29
(-)*106 (>)*29 [-]

आप कोड आकार को आधा कर सकते हैं (]< (+)*290 (>)*9 ... [-])*2?
सिल्वेस्टर

@ सिलवेस्टर मैं इसलिए नहीं कर सकता क्योंकि दूसरा आधा उपयोग करता है +और दूसरा उपयोग करता है -
मिका लम्मी

ध्रुवीय भालू ऑफसेट
क्लीयर के

@ Sp3000 क्या आपको यकीन है? मैं कई ऑफसेट और ध्रुवाभिसारिता के साथ करने की कोशिश की है (जैसे [(+)*3[-]], [(-)*6[+]]) और यह बहुत अच्छा काम करता है (कम से कम काफी छोटा ऑफसेट के लिए)।
मिका लम्मी

ओह, मुझे पता है कि क्या गलत है: / मैं ऐसे कार्यक्रमों की कोशिश कर रहा था, >>>>>>>>>((-)*4[+][--.]>)*21जो सेल की दोहरी जांच करते हैं और आपका (+/-)*290दूसरा ऑफ-सिंक लूप ट्रिगर हो रहा था। ऑफसेट स्पष्ट नहीं है।
Sp3000

10

पेसिफिस्ट बॉट

मेरा बॉट मानता है कि हिंसा कभी जवाब नहीं देती और हर कीमत पर युद्ध से बचने की कोशिश करेगी।

(.)*8       Since it takes at least 9 turns for a bot to come to mine, remain idle for 8
>           Skedaddle over one spot
([(>)*8     If a bot has approached, RUN
[(<)*8      If you accidentally ran into a bot, run the other way this time
]].         If it's safe here, chill out
)*6249      keep running until the end of battle, or until tired

8
मैंने आपकी टिप्पणियों में 'को हटाने की स्वतंत्रता ले ली क्योंकि वे ब्रेनफक कोड के रूप में गिना जाएगा और आपके बॉट को आवश्यक से थोड़ा धीमा कर देगा। यदि डॉट्स जानबूझकर हैं, तो मुझे सुधारने के लिए स्वतंत्र महसूस करें!
सिफर

ओह ठीक है। बल्कि मुझे मूर्खतापूर्ण थे, उन्हें हटाने के लिए धन्यवाद: पी
एमफिलिप्स

9

कोई वहा है?

समय-समय पर यह निर्धारित करने के लिए पीछे लग जाता है कि दुश्मन ने इसे ठीक करना शुरू कर दिया है, फिर आगे बढ़ता है।

अच्छा करने के लिए लगता है, लेकिन मुझे यकीन नहीं है कि अगर रणनीति के कारण या सिर्फ इसलिए कि मैं समाशोधन से पहले हर सेल में 10 जोड़ रहा हूं।

संपादित करें: एक तर्क समस्या फिक्स्ड। पहली बार एक दिमाग़ी कार्यक्रम लिखने। यह नाम तक रहता है।

>>>+<(+)*5<(-)*5>>             Initial defense
[                              While he hasn't passed us yet
  (>[([(+)*10[-]]>)*29])*4     Jump ahead four, checking for enemy
  +                            Front marker
  <<<<                         Check behind
  [                            If he hasn't passed us yet
    >>>
    (+)*5<(-)*5                Set decoys in reverse
    <<[-]                  
  ]
  >>>>                         Check ahead
]                              
([-[(+)*10[-]]]>)*29           Clear to the end

+1: यह पहला बॉट है जिसे मैंने देखा है कि स्ट्रिंग्स डिकॉय (+/- 1 के अलावा) पहली 9 कोशिकाओं से परे हैं। लंबे समय तक टेप पर, यह एक हत्यारा है। कुछ और अब लाइटफुट
प्लॉडर को

9

WALL-E 2.0

9 स्थान पर पहुँचता है और इसमें 128 जोड़ देता है, यदि साइज़ 10 के क्षेत्र में जल्दी जीत जाता है यदि प्रतिद्वंद्वी ने प्रारंभिक ध्वज मूल्य नहीं बदला है। बड़े एरेनास पर, यह बड़े डिकॉय के रूप में काम करता है। उसके बाद यह स्थान 9 और खुद के झंडे के बीच के स्थान को बड़े डिकॉय से भरता है। जब decoys रखा जाता है, तो यह गैर-रिक्त स्थानों के लिए स्कैन करता है और उन्हें जल्दी से साफ़ करने की कोशिश करता है।

संस्करण 2.0 में बड़े डिकॉय का निर्माण होता है और प्रारंभिक ध्वज मूल्य को बदलने के खिलाफ कुछ सहनशीलता होती है। अगर चीजें रूखे लगने लगें तो यह बैकअप रणनीति में भी बदल सकती है।

(>)*9
(+)*128 <
< [ (<)*7 ((-+-)*256)*15 ] > [ (<)*8 ((+-+)*256)*15 ]
(-)*47 < (+)*63 < (-)*72 < (+)*69 <
(-)*84 < (+)*66 < (-)*76 < (+)*66 <
++++ (>)*9 +.+.+.----.-.-. (>[-[++[(+)*124.+.+.+.+.+.+.+.+.>]]])*21

इस बॉट की प्रभावशीलता दो तथ्यों पर आधारित है:

  1. अधिकांश बॉट अपने ध्वज के प्रारंभिक मूल्य को नहीं बदलते हैं।
  2. बड़े डिकोय का निर्माण उन्हें साफ करने से तेज है।

ये दीवारें मुझे मार रही हैं
Sp3000

9

लेथल लोके V2.1 (मिस्टलेटो के साथ)

यह निश्चित रूप से एक घातक बॉट है और वह बेली बैलर के साथ न केवल सुंदर बेली को मारता है, बल्कि अन्य बॉट्स के खिलाफ भी लगभग हर बार जीतता है। यह एक संयुक्त माध्यम और तेज दौड़ है। मेरा टेस्ट मुझे 567 का स्कोर देता है

लड़ाई के लिए संकलित BFJ फ़ाइल , रैकेट BFJ जनरेटर स्रोत:

#lang racket
;; bare minimum bfj support
(define (bf . args)
  (apply string-append 
         (map (lambda (x) 
                (if (number? x)
                    (number->string x)
                    x))
              args)))

(define (dup x num)  
  (let loop ((n num) (lst '()))
    (cond ((< n 0) (error "Negative n"))
          ((zero? n) (apply bf lst))
          (else (loop (sub1 n) (cons x lst))))))


;; Useful procedures
(define (wiggle amount default-zero n)
  (let rec ((n n))
    (if (zero? n)
        ""
        (bf "["
            (dup "-[" amount)
            (bf "(+)*" amount)
            (dup "+[" amount)
            default-zero
            ">"
            (rec (sub1 n))
            (dup "]" (* amount 2))
            "]"))))

(define (goto from to)
  (let* ((dst (- to from))
         (op (if (> dst 0) ">" "<"))
         (abs (if (> dst 0) dst (- dst))))
    (if (= from to) 
        ""
        (bf "(" op ")*" abs))))

(define max-position 30)
(define initial-decoy  "(-)*17")
(define small-decoy "(+)*10")
(define large-decoy "(-)*32")
(define flag-position 7)
(define decoy-phase-end-position 14)
(define wiggle-amount 8)
(define plodd-clear "..(+)*120(+.)*27>")
(define plodd-inner-clear (bf "(+)*" 
                              (- 78 wiggle-amount) 
                              "..(+)*42(+.)*27"))
;; Main body of Loke V2
(define (generate-loke2)
  (bf ">" 
      initial-decoy
      ">->+>->+>->"
      (let gen-rec ((n flag-position) (p #t))
        (if (> n decoy-phase-end-position)
            (bf (medium-slow n))
            (bf "[" 
                (medium-slow n)
                "]" 
                (if p small-decoy large-decoy)
                ">"
                (gen-rec (+ n 1) (not p)))))))

;; Retreat goes back to home
;; leaving a trail of flags
;; from flag position
(define (medium-slow last-index)
  (bf (goto last-index 2)
      (let medium-rec ((n 2) (p #f))
        (if (= n flag-position)
                (fast-rush n last-index)
            (bf (if p "-" "+")
                "[" (fast-rush n (max 9 last-index)) "]" 
                (if p small-decoy large-decoy)
                ">"
                (medium-rec (+ n 1) (not p)))))))

(define (fast-rush cur-position last-known)
  (bf (goto cur-position last-known)      
      "([" plodd-clear 
      "("
      (wiggle wiggle-amount
              plodd-inner-clear 
              (- max-position last-known 1))
      ">)*" (- max-position last-known)
      "]>)*" (- max-position last-known)))

(display (generate-loke2))

ट्रिविया : लोके (लोकी) नॉर्डिक पौराणिक कथाओं में एक भगवान है जो हर किसी के साथ खेलना और उन्हें धोखा देना पसंद करता है। वह एक आकार शिफ्टर है (जानवरों और लोगों में) और आमतौर पर अपने तरीके से जाता है। कहानियों में वह अक्सर अन्य देवताओं के साथ यात्रा करते हैं और छोटी-छोटी चालें करते हैं और चीजों को हिलाते हैं। बाल्डर को मारने के अलावा उन्होंने हेल (नरक / हेल्वे के देवता), जानवर फेनरीर, और मिडगार्ड सर्प कि रग्नारोक (नॉर्स आर्मडेडन) शुरू किया।

यह काम किस प्रकार करता है

शुरुआत में वह एक बड़ा (-17) डिकॉय बनाता है फिर +-पैटर्न को इंडेक्स करने के लिए सभी रास्ते बनाता है। वह (13, 10 -32) + डेसील का निशान छोड़ते हुए 13 से आगे की ओर स्कैन करता है, लेकिन जब वह एक सेट का पता लगाता है तो वह गर्भपात कर देगा और एक मध्यम * 1 भीड़ मोड शुरू करें। यदि कोई सेल सेट नहीं है, तो वह धीमी * 3 रश मोड भी शुरू करेगा।

* 1 मध्यम भीड़ मोड में उसने 7-13 में से एक सूचकांक में प्रतिद्वंद्वी गतिविधि का पता लगाया है और वह सूचकांक से शुरू होता है। 2. कुछ प्रतिद्वंद्वी शून्य छोड़ देते हैं और अन्य एक अलग मूल्य छोड़ते हैं और अब उनके पास डिकॉय बनाने से पहले प्रतिद्वंद्वी गतिविधि का पता लगाने का मतलब है सूचकांक 2-6 (-32, + 10) +। यदि सेल अपेक्षित मान नहीं है (-1, 1) या वह सभी डिकॉय बनाता है जो वह तेज * 2 रश मोड में जाता है।

* 2 तेजी से भीड़ मोड वह उम्मीद करता है कि वह पता चला है ताकि decoys काम नहीं करेगा। हमें उम्मीद है कि हमने जो पहले से सेट किया है, वह प्रतिद्वंद्वी को रोक रहा है और विरोधियों के डिकॉय के माध्यम से चलने पर ध्यान केंद्रित कर रहा है। वह सबसे दूर के बिंदु पर दौड़ना शुरू कर देता है जिसे हम पिछले स्कैनिंग [9,14] या इंडेक्स 9 के आधार पर जानते हैं अगर हम उससे पहले बने थे। उनके पास पहले डिकॉय के लिए विशेष मामला है, जहां हम सिर्फ 120 और प्लोडड 27 जोड़ते हैं क्योंकि वह शून्य मान से नीचे था मूल्य को कम नहीं करना चाहते हैं, यह एक जाल है, लेकिन बढ़ने से पहले [-8,8] पर स्पष्ट होने के बाद हम हर डिकॉय के लिए १२० और २ forward कदम आगे की सेल के लिए आगे बढ़ते हुए।

धीमी गति वाली मोड को हटा दिया गया था क्योंकि यह वर्तमान पहाड़ी के साथ स्कोर को प्रभावित नहीं करता था और यह मेरे बॉट को थोड़ा छोटा करता है (लेकिन ज्यादा नहीं)।


3
अब हम पागलपन देखना शुरू कर रहे हैं। मुझें यह पसंद है।
Sp3000

@ Sp3000 YandereBotv2 यही कारण था कि मुझे सिर्फ डिकॉय और स्विंग मूल्यों को बढ़ाने के अलावा नया सोचने की जरूरत थी। यह पिछले दौर के सभी बॉट्स की तुलना में हर्ड के मुकाबले एक उच्च जीत प्रतिशत था इसलिए आप अखाड़े के आकार के साथ बदकिस्मत थे।
सिल्वेस्टर

अहाहा हो सकता है - मुझे लगता है कि मुझे लगातार बढ़ते हुए डिकॉय आकारों के खिलाफ एक काउंटरप्लान की आवश्यकता है: / मुझे वास्तव में पसंद है कि आपके पास कैसे अलग-अलग तरीके हैं
Sp3000

आह । मुझे अपना एचएलएल प्राप्त करना होगा बीएफ जौग के लिए बेहतर काम करना ताकि मेरा एवोल्वर फिर से एक मौका खड़ा कर सके। # 1 ~ पर बधाई हो
Lymia Aluysia

@ लाइमियालुइसिया धन्यवाद। मैं बाल्डर से अधिक हैरान था। मैं NestDarwin, YandereBot और Mickey :-) के नए संस्करणों की गिनती कर रहा हूँ
सिल्वेस्टर

8

Geronimo

यहां तक ​​कि कीन के बेस्टऑफेंस बॉट से भी अधिक आक्रामक है क्योंकि यह किसी भी रक्षा का निर्माण नहीं करता है। यहां की रणनीति यह है: अन्य लोग चालाक बनने की कोशिश करेंगे, लेकिन चतुर होने के कारण चक्र लगता है। तो चलो बस उस हिस्से को छोड़ दें जो हमें पता है कि दुश्मन अंदर है और हमें जो कुछ भी मिलता है उसे साफ करें।

(>)*9(>[-])*21

ओपी के उदाहरण बॉट और कीन के बॉट के खिलाफ अधिकांश मैच जीतने के लिए लगता है।


7

SternBot

एक वास्तविक आधा गंभीर बॉट अब चीजें शुरू हो गई हैं। इनमें से कुछ बॉट्स के सिमुलर प्रकृति को संबोधित करते हुए।

(>->+>)*3(>[+]>[-])*21

1
स्टर्नबोट मुझे समता के मुद्दे देता है :(
Sp3000

7

DoNothingBot

सबसे अच्छा बचाव (...) अज्ञानता है।

.

यह कुछ नहीं करता है।

संपादित करें: वाह, मैं यह देखकर चकित रह गया कि इसने सभी बॉट्स =) का कम से कम 20% से अधिक बेहतर काम किया है (क्या इसका मतलब यह बेहतर रणनीति का उपयोग करता है या ....?)


2
अन्य बॉट्स में से कुछ छोटे एरेनास पर आत्महत्या करते हैं। जैसे। जुआरी सीधे 20 वें सेल में जाता है और गेम 10-19 के लिए यह ढीला हो जाएगा, यहां तक ​​कि इसके खिलाफ भीDoNothingBot
सिल्वेस्टर

2
जिज्ञासा से बाहर, मैंने अन्य प्रविष्टियों के खिलाफ अपने परीक्षक (सभी टेप लंबाई खेलता है) के माध्यम से इसे चलाया। शर्म की दीवार निहारना ... +1
Comintern

Haha, साझा करने के लिए धन्यवाद - मुझे उम्मीद है कि एक या दो काले भेड़ हो सकते हैं, लेकिन मुझे उम्मीद नहीं थी कि यह इतने सारे बॉट = को 'हरा देता है'
दोष

7

काउंटरपंच - संपादित

एक मजबूत रक्षा के निर्माण और फिर हमला करने का संतुलित संयोजन।

(+)*6>(-)*12(>)*7(<(-)*12<(+)*12)*3(>)*7(([-([(-)*6[+.]])*5])*4>)*21

एनोटेट:

(+)*6                             Switch polarity of the flag
>(-)*12                           Build a quick decoy in front of the flag
(>)*7(<(-)*12<(+)*12)*3           Hop out and start building decoys backward
(>)*7                             Tally ho!
(([-([(-)*6[+.]])*5])*4>)*21      Clear toward the opposite end

@ Geobit के समान बचाव Backtracker , लेकिन एक त्वरित प्रलोभन पहले ध्वज के सामने बाहर रखकर तेजी से हमलावरों के खिलाफ बचाव।

हमले को विपरीत ध्रुवीयता के साथ साफ करने की कोशिश की जाती है ताकि छोटे मूल्यों के साथ डिकॉय को तुरंत साफ़ किया जा सके। सबसे खराब स्थिति में 64 (या तो ध्रुवीयता) का एक फंदा होना चाहिए।

संपादित करें 1: डिकॉय के खिलाफ हमलावर दक्षता में सुधार (ध्रुवीयता स्विचिंग में एक तर्क त्रुटि थी)।

संपादन 2: परीक्षण इंगित करता है कि ठहराव आंतरिक-सबसे अधिक लूप में थोड़ा बेहतर प्रदर्शन करता है।


6

Backtracker

एक रिवर्स डिकॉय रणनीति। सामने की ओर से नीचे डिकॉय करना शुरू करें, इसलिए कोई भी बाकी को छोड़ नहीं सकता है क्योंकि मैं उन्हें बना रहा हूं।

यदि बोर्ड आकार 20 या उससे कम है, तो यह फास्ट-अटैक बॉट्स के खिलाफ काम नहीं करता है, क्योंकि मैं बस एक दूसरे को पास करना शुरू कर दूंगा, जब तक मैं दौड़ना शुरू नहीं करता।

(>)*9((-)*4<+<-<(+)*4<)*2(>)*8(>[-])*21

(>)*9                   Jump ahead 9
((-)*4<+<-<(+)*4<)*2    Lay down alternating polarity/size decoys for 8 spots behind
(>)*8                   Jump back forward
(>[-])*21               Clear until flag

नोट: मैं बीएफ नहीं है, लेकिन इस तरह से यह वही करता है जो मैं चाहता हूं। यदि नहीं, तो कृपया मुझे अभी करने दें।


6

इसे छू नहीं सकते

यह एक रक्षा-उन्मुख कार्यक्रम है जो यह निर्धारित करने का प्रयास करता है कि प्रतिद्वंद्वी कोशिकाओं को कैसे साफ़ कर रहा है, और उचित आकार का एक डिकॉय बनाता है।

>---    create 1st decoy
>+      decoy for timing
>+      decoy for waiting
[]<     tripwire activated!
[<-->]  increase size of 1st decoy while opponent clears 2nd decoy
(>)*8   attack!
[+(<)*9(+)*20(>)*9]    slowly clear, while going back to stop enemy progress
>[+(<)*10(+)*22(>)*10]
>[+(<)*11(+)*24(>)*11]
>[+(<)*12(+)*26(>)*12]
>[+(<)*13(+)*28(>)*13]
>[+(<)*14(+)*30(>)*14]
>[+(<)*15(+)*32(>)*15]
>[+(<)*16(+)*34(>)*16]
>[+(<)*17(+)*36(>)*17]
>[+(<)*18(+)*38(>)*18]
>[+(<)*19(+)*40(>)*19]
>[+(<)*20(+)*42(>)*20]
>[+(<)*21(+)*44(>)*21]
>[+(<)*22(+)*46(>)*22]
>[+(<)*23(+)*48(>)*23]
>[+(<)*24(+)*50(>)*24]
>[+(<)*25(+)*52(>)*25]
>[+(<)*26(+)*54(>)*26]
>[+(<)*27(+)*56(>)*27]
>[+(<)*28(+)*58(>)*28]

मैं वर्तमान में एक ऐसे संस्करण पर काम कर रहा हूं जो दोनों ध्रुवीयताओं के खिलाफ जीत सकता है।


6

इम्पैटिएंटट्रिपवायर (उर्फ यैंडेरेबॉट)

एक ट्रिपवायर होने की कोशिश करता है ताकि यह इसी ध्रुवता का (ज्यादातर) डिकॉय कर सके, लेकिन अगर आप बहुत लंबा समय लेते हैं और मान लेते हैं कि आप इसके बजाय विपरीत समानता रखते हैं। छोटे बोर्डों के लिए एक रिवर्स ट्रिपवायर है।

(+)*5                                     Toggles the base
>-                                        Sets up reverse tripwire
>>++>-->                                  Sets up basic decoys    
(+)*20                                    Makes a massive antioffset tripwire
(([)*150                                  Waits for a while
    <<<<                                  Goes to check on the other tripwire
    +[
      <                                   Bot found you and is furious
      ((+)*128 (>)*9 (+.)*55 (<)*9)*5     Tries to tie you up
      ((+)*128 (>)*10 (+.)*54 (<)*10)*5   And torture you
      ((+)*128 (>)*11 (+.)*53 (<)*11)*5   As it destroys the world
      ((+)*128 (>)*12 (+.)*52 (<)*12)*5
      ((+)*128 (>)*13 (+.)*51 (<)*13)*6
      ((+)*128 (>)*14 (+.)*50 (<)*14)*6
      ((+)*128 (>)*15 (+.)*49 (<)*15)*6
      ((+)*128 (>)*16 (+.)*48 (<)*16)*6
      ((+)*128 (>)*17 (+.)*47 (<)*17)*6
      ((+)*128 (>)*18 (+.)*46 (<)*18)*6
      ((+)*128 (>)*19 (+.)*45 (<)*19)*6
      ((+)*128 (>)*20 (+.)*44 (<)*20)*6
      ((+)*128 (>)*21 (+.)*43 (<)*21)*6
      ((+)*128 (>)*22 (+.)*42 (<)*22)*7
      ((+)*128 (>)*23 (+.)*41 (<)*23)*7
      ((+)*128 (>)*24 (+.)*40 (<)*24)*7
      ((+)*128 (>)*25 (+.)*39 (<)*25)*7
      ((+)*128 (>)*26 (+.)*38 (<)*26)*7
      ((+)*128 (>)*27 (+.)*37 (<)*27)*7
      ((+)*128 (>)*28 (+.)*36 (<)*28)*8
      ((+)*128 (>)*29 (+.)*35 (<)*29)*8      
    ]-
    >>>>)*2                                 Waits again
      <(+)*20                               Bot got stood up, is sad
      <(+)*20                               Sets up some decoys
      <(+)*20                               Grabs a knife
      <(-)*20                               Licks the blade
      <(-)*5                                Locks the house
      >>>>>>>>                              Goes to hunt you down
     (
       >                                    Start searching
       [
         +[+[+[                             Search from minus three
         ---
         -[-[-[                             To plus three
         (-)*17                             If that's no good, do an offset
         [+]                                Clear by adding
         [-.--]                             Just in case
         ]]]]]]                             I would duplicate the program to skip these like at
       ]                                    the bottom but the file would get too large
       [--.---]                             Also just in case
       -                                    Leave a small trail
     )*22
(
  ]                                         Skip the bracket closing
  <(-)*20                                   Bot found you and is happy
  <(-)*20                                   Has just the perfect presents for you
  <(-)*20                                   You like decoys right?
  <(+)*20                                   Here's a plus one in case you are sneaky
  <(-)*5
  >>>>>>>>                                  Time to hunt you down

  (>[+[+[+[----[-[-[(-)*17[+][-.--]]]]]]]][--.---]-)*22
)*300

वर्तमान संस्करण: 1.3 - छोटे बोर्ड पर बेहतर करने के लिए संपादित, दुश्मनों की वजह से गेम हारने की कीमत पर, यात्रा की जाँच के दौरान अतीत से डरते हुए

पिछले संस्करण: 1.2.1

(मुझे एक बेहतर स्पष्ट एल्गोरिथ्म चाहिए: /)


1
OMG 411k को पूरी तरह से विस्तारित और छीन लिया गया: -ओ चीपर का कोड बस इस पर लटका हुआ है।
सिल्वेस्टर

बस कुछ टिप्पणियों को बदल दिया ताकि यह अब सिफर के नए कोड के साथ काम करे
Sp3000

चूंकि नवीनतम तर्क, कोष्ठक में बेजोड़ कोष्ठक अजीब व्यवहार करते हैं क्योंकि लूप लॉजिक संक्षिप्त नाम लॉजिक से टकराता है। क्या मैं ([)*300वापस जैसे निर्माणों को बदल सकता हूं [[[ and so on?
सिफर

@ साइपर हाँ, इसके लिए जाएं - हालांकि पास्टबिन संस्करण बिल्कुल वैसा ही होना चाहिए
Sp3000

1
3 पर आने के लिए एक अच्छी जगह है। बहुत बढ़िया।
एंडो डैन

5

लाइटफुट प्लोडर - EDITED

प्लोडर के आधार पर , यह शीघ्र बीहमोथ लगातार 0 के माध्यम से "तेजी से आगे" करने में सक्षम है जब तक कि यह कुछ नॉनजरो तक नहीं पहुंचता है (जिस बिंदु पर यह अपेक्षा के अनुसार पलटना शुरू होता है)।

अब अधिक मजबूत स्किमिंग एल्गोरिदम के साथ सुधार हुआ, जो छोटे डिकॉय के माध्यम से तेजी से अग्रेषण करने की अनुमति देता है, और अपने स्वयं के बड़े डिकॉय।

# 2 को संपादित करें : अगर यह शून्य की अधिक जेब पाता है तो अब वापस स्कीइंग करने में सक्षम है।

>(-)*4
>(-)*7
>(-)*4
>(+)*7
>(-)*17
>(+)*3
> -
>(-)*10
>(+)*16[-]<-
([
[>>
 [+
  [--
   [+++
    [<+>(+)*14[-]]
   ]
  ]
 ]<-
]>>
[(+)*126(+.)*4>]
<]+)*10

वहाँ अच्छा "सुविधाजनक" आकार परिवर्तन :)
लिली चुंग

@IstvanChung बहुत सुविधाजनक है। ;) किसी भी अधिक मुझे कई अन्य बॉट के लिए अंक खोने, मुझे बहुत धीमा कर दिया होता। यदि आपने बड़ा को बड़ा किया है, तो मुझे नहीं लगता कि मैं गति बनाए रखने की कोशिश करूंगा।
DL44

खैर, मैं आकार से टकरा गया हूं यह देखने के लिए कि यह कैसे काम करता है। मुझे लगता है कि बड़ा आकार भी बड़ा आकार खींचने में सक्षम हो सकता है, लेकिन इसे पूरी तरह से परखने का समय नहीं है। सौभाग्य!
लिली चुंग

क्लोकिंग बॉट्स के खिलाफ काउंटर माप से प्यार करें और यह तथ्य कि यह वास्तव में बीएफ प्रोग्रामिंग जैसा दिखता है :)
सिल्वेस्टर

5

अनिच्छुक रान v2

रणनीति आसान है। प्रतिद्वंद्वी को यह सोचने की कोशिश करें कि उसका झंडा बोर्ड से अलग है और पूर्ववर्ती है और ढीला (एक तरह का ट्रिपवायर / वाइब्रेटर) है। 10 पूर्ण दौर के बाद वह हार मान लेती है और यह निर्धारित करने की कोशिश करती है कि प्रतिद्वंद्वी उसके झंडे पर है और नहीं तो वह एक सेट सेल को हिट करने तक -17 डिकॉय करेगी। वह जिस क्लीयरिंग विधि का उपयोग करती है, वह [-12,12] के लिए विशेष मामला है और लोके के समान प्लोडिंग शुरू कर देती है।

>>-<<                                  set a flag
(.)*11                                 wait for sixteenth step
((-)*256)*10                           reduce by ten rounds
                                       We give up check flags
> [(>)*7                               detected fast rush mode
    (-[>[
        -[-[-[-[-[-[-[-[-[-[-[-[       from plus one to twelve
        (+)*12                         reduce by twelwe
        +[+[+[+[+[+[+[+[+[+[+[+[       from minus one to twelve
          (+)*66..(+)*41(+.)*17>       increase and plod
        ]]]]]]]]]]]]]]]]]]]]]]]]]-])*3 
  ](-)*31
>+[(>)*6                               detected fast rush mode
    (-[>[
        -[-[-[-[-[-[-[-[-[-[-[-[       from plus one to twelve
        (+)*12                         reduce by twelwe
        +[+[+[+[+[+[+[+[+[+[+[+[       from minus one to twelve
          (+)*66..(+)*41(+.)*17>       increase and plod
        ]]]]]]]]]]]]]]]]]]]]]]]]]-])*3 
  ](-)*21
[>[                                    propably a trapper so we move slow
    ..+..-(+)*119(+.)*17               plodd the first cell so we dont go to zero on low positive
    ([>[
        -[-[-[-[-[-[-[-[-[-[-[-[       from plus one to twelve
        (+)*12                         reduce by twelwe
        +[+[+[+[+[+[+[+[+[+[+[+[       from minus one to twelve
          (+)*66..(+)*41(+.)*17>       increase and plod
        ]]]]]]]]]]]]]]]]]]]]]]]]]-]-)*3 
  ](-)*17
]

ट्रिविया: रान एक नॉर्डिक पौराणिक समुद्र देवी है जो नाविकों को समुद्र में मरने से पहले ले जाती है।


5

मिकी V4

V4 के लिए मैंने V3 के समान विधि का उपयोग किया, अद्यतन बॉट्स के खिलाफ लेकिन अधिक समवर्ती आबादी (30 नहीं 10) के साथ।

सहित सभी 60 बॉट्स के खिलाफ विकसित किया गया है BurlyBalderV3और LethalLoke(लेकिन 2botsonecup को छोड़कर जो मेरे सख्त कार्यान्वयन से एकतरफा है)।

अगर मैंने अलग-अलग यादृच्छिक बीजों के साथ शुरुआत की, तो मुझे बेतहाशा अलग-अलग बॉट्स और सक्सेस रेट का पता चला। इसलिए मैंने इन विभिन्न शुरुआती बिंदुओं को आबादी में अलग करने का फैसला किया और उन्हें कभी-कभी क्रॉस-परागण करने दिया।

1400 पीढ़ियों में, 30 समवर्ती विकसित आबादी ने इस कार्यक्रम को बनाया:

++>------>->---<<<------------->------>->
---->------------->>--->------<----------
------<------<-<<--<------------->-------
-<-->------>------->----------->---------
----->-------->------->----------------[>
[--[-[+]]]>[--[+]]-]-------[>[--[-[+]]]>[
--[+]]-]<--<------>------->--------------
--[>[--[-[+]]]>[--[+]]-]<--<-------------
--------->------>->-<-----

मैं वर्तमान फसल के मुकाबले इस बॉट की जीत दर की गणना 90.0% करता हूं । (1135/125/0 टेप की लंबाई जीत / हार / ड्रा)।

V3 जानकारी

89.2% (1124/62/74 टेप लंबाई जीत / खो / खींचा) की परिकलित जीत दर।

V2 जानकारी

पीढ़ी के कार्यक्रम में अब यह बताने के लिए विश्लेषण है कि कार्यक्रम के अंत का कौन सा हिस्सा अप्रयुक्त है और इससे आने वाली पीढ़ियों को उत्पन्न करने से पहले इसे ट्रिम करता है। इसका मतलब है कि यादृच्छिक उत्परिवर्तन कार्यक्रम के उपयोग किए गए हिस्सों में ही होते हैं और इसलिए विकास तेजी से होता है।

उस समय चालू फसल के मुकाबले 72%। (892/204/143 टेप लंबाई जीत / हार / खींची गई)।

V1 जानकारी

31500 पीढ़ियों, केवल 12 बॉट का सामना करना पड़ा। 65% (165/80/7 टेप लंबाई जीत / खो / खींचा गया)। मैं सभी 21 टेप लंबाई का उपयोग करता हूं।

संभावित बॉट्स द्वारा रैंक की जाती है:

  • तब सबसे ज्यादा जीतता है;
  • फिर सबसे अधिक ड्रॉ;
  • फिर सबसे तेज समय;
  • सबसे तेज समय जीता

सामान्य ज्ञान

  • मिक्की का नाम मेरी बिल्ली और
  • टीएस इलियट को पैराफ्रेज करने के लिए: The Naming of Cats is a difficult matter, It isn't just one of your brainfuck bots
  • मेरा जावा bf vm और आनुवंशिक एल्गोरिथ्म github पर है
  • Vm एक i7 के एक कोर पर 4 सेकंड से कम समय में एक पूर्ण टूर्नामेंट चलाने में सक्षम है (सावधानी - परिणाम हमेशा टूर्नामेंट इंजन के समान नहीं होते हैं)।

सभी 60 बॉट का उपयोग करना बेहतर नहीं होगा?
सिल्वेस्टर

@ सिल्वेस्टर हो सकता है, मैं मुख्य रूप से नहीं था क्योंकि यह इतना धीमा है। ऐसा करने में दो घंटे लग गए। हालांकि, यह विकसित करने के लिए इसे सामना करने के लिए और अधिक बॉट धीमी थी। मुझे लगा कि अगर यह शीर्ष लोगों को हरा देगा, तो यह अच्छा होगा। पाइथन परेशानियों की पुष्टि करने के लिए मैं वास्तविक टूर्नामेंट नहीं चला पा रहा हूं। तो सोचा था कि मैं इसे पोस्ट करूंगा और देखूंगा ...
वेस्टन

@ वेस्टन शायद हम आपके अजगर परेशानियों में आपकी मदद कर सकते हैं?
सिफर

@ धन्यवाद धन्यवाद, मैंने github github.com/redevined/brainfuck/issues/2
वेस्टन

@ सिलवेस्टर मैं अब ज्यादातर बॉट्स का उपयोग करता हूं क्योंकि मेरा जनरेटर बहुत तेज और मल्टीथ्रेडेड है।
वेस्टन

4

जुआरी

यह मेरे जेरोनिमो बॉट से निकटता से संबंधित है। लेकिन जहां जेरोनिमो एक निश्चित चीज खेल रहा है, जुआरी वह करने की कोशिश करता है जो वह सबसे अच्छा करता है - जुआ: यह 20 वें सेल में जाता है और वहां से शून्य-आईएनजी शुरू होता है।

इसका मतलब है कि यह आसानी से खो सकता है क्योंकि अखाड़ा इतना बड़ा नहीं है। लेकिन अगर ऐसा है, तो यह कुछ चक्र हो सकते हैं जो गिनती करते हैं।

(>)*19(>[-])*11

मजेदार तथ्य: मैं वास्तव में बॉट्स के एक समूह में प्रवेश करने पर विचार कर रहा था, (>)*X(>[-])*Yजहां सभी जहां X in 9..29और जैसे दिखते हैं Y = 30 - X। लेकिन मुझे लगता है कि बीस बॉट में प्रवेश करना थोड़ा बहुत होगा :) या चालीस भी अगर मेरे पास दो संस्करण हैं, एक जो शून्य-एस के साथ [+]और एक वह जो इसके साथ करता है [-]


क्या 13, या 14 जैसी संख्या आपको 20 से बेहतर जीत प्रतिशत नहीं देगी?
21

हाँ शायद। मैं सिर्फ बीच के लिए चाहता हूं। दिलचस्प बात यह है कि अगर मैं सिर्फ दाएं के बजाय बाएं जाता हूं तो मेरी जीत की संभावना बहुत कम हो जाती है। विपरीत की उम्मीद की होगी।
इंगो बुर्क

चूंकि प्रत्येक बॉट झगड़े तो किसी अन्य बॉट के खिलाफ से मेल खाता है, यहां तक कि 40 उन के अवसरों को उठा नहीं है कि डी: - ज्यादा और मैं कॉपी करने और चिपकाने की बहुत मेहनत करनी पड़ी
सिफर

4

Dumbot

उल्लेखनीय रूप से बेवकूफ बॉट जो सिर्फ पर्यावरण के साथ खिलवाड़ करता है और उम्मीद करता है कि यह जो लड़ाइयाँ करता है वह सभी टेप से दूर जाती हैं।

(+)*50(>-)*7(([.])*50(+)*50>)*7([-])*256

(मुझे यकीन नहीं है कि यह भी काम करता है - हालांकि यह त्रुटि नहीं है!)

एनोटेट (मुझे लगता है कि यह क्या करता है):

(+)*50      Increase home cell by 50
(>-)*7      For next 7 cells, decrement once
(           Open loop
([.])*50    If cell is non-zero, do nothing. If cell is zero... Still do nothing? I'unno.
(+)*50      Now let's increment it fifty times for some reason.
>)*7        And let's do the above two instructions ten times more, in the next 7 cells
([-])*256    If the cell we're on is non-zero, decrement it continuously and hope it's the enemy.

(अगर यह एक भी लड़ाई जीतता है तो मैं चौंका जाऊंगा)


1
आपकी दूसरी पंक्ति वास्तव में इसके अलावा सेल को शून्य कर देगी, और फिर एक पंक्ति में एक सात बार घटाना होगा।
गर्वित हैकेलर

1
@proudhaskeller तुम सही हो ... यही कारण है कि मैं थोड़ा नींद के साथ Brainfuck सामान करने की कोशिश कर रहा हूँ। क्या यह वास्तव में ठीक से काम करने के बदले में इसे सरल बना दिया है।
सेल्यमे

4

CropCircleBot

[>>[+][-]-<[-][+]+][>[+][-]<[-][+]++]

यह बॉट उन्नत एल्गोरिदम का उपयोग करता है जो एलियंस द्वारा काटे गए फसल चक्रों द्वारा प्रेषित किए गए थे जो उन्होंने पृथ्वी पर रखे थे। यह मानव जाति को बदल देगा और विशाल तकनीकी प्रगति प्रदान करेगा और यहां तक ​​कि कई पर्यावरणीय समस्याओं को हल करेगा।


आप जानते हैं कि आपको कभी भी उपयोग नहीं करना चाहिए] [, सही है?
कैलक्यूलेटरफलाइन

मैं नहीं, क्या आप समझा सकते हैं क्यों?
दोष

जब आप एक लूप छोड़ते हैं, तो वर्तमान सेल 0. है। फिर, आप अगले लूप को छोड़ देते हैं क्योंकि पॉइंटर पर सेल अभी भी 0. है।
कैलक्यूलेटरफिलीन

ओह, मैंने हमेशा सोचा था कि चेक लूप के अंत में होता है?
निर्दोष

यह शुरुआत में भी होता है। कुछ कार्यान्वयन में, [कुछ भी नहीं करता है, लेकिन यह एक पूरी तरह से अलग भाषा है (एस्कोलंग विकी पर newbiefuck)
कैल्क्युलेटरलाइन

4

BeatYouMate

और क्योंकि हर किसी को एक बॉट पोस्ट करना चाहिए जो पहले बॉट को हरा देगा जो वे पोस्ट करते हैं, यहाँ एक 5+ डिकॉय बॉट है:

(>------>+++++++)*4>([(+)*6[-]]>)*21

4

CleverAndDetermined

>+>-(>+++[-])*21

कुछ छोटे जाल सेट करता है, फिर दूसरी तरफ दौड़ता है, और शून्य से ऊपर या नीचे सब कुछ साफ करने की कोशिश करता है। पर विफल रहता है ----


+++पहले [-]वास्तव में सरल जाल से बचने के लिए चतुर है!
इंगो बुर्क

एक बेजोड़ के कारण फेंक दिया अपवाद (, क्या मैं इसे टिप्पणी की तरह मान सकता हूं?
सिफर

@ साइफर मैं ठीक कर दूंगा, क्षमा करें।
isaacg

4

MetaJSRandomBot

+[[>-[->+]>>[-]>-<<[>][+]<]+<]->

इस बॉट के पीछे का विचार कुल मिलाकर यादृच्छिक बना रहा है जो अभी भी बहुत बेकार के बिना एक वैध जेएस कोड है। मैंने इसे बनाने के लिए निम्नलिखित कोड ( JSFiddle लिंक ) लिखा था । देखते हैं कि यह कितना अच्छा करता है =)

var nchars = 30;
var nbrack = 10;
var alphab = "+ - < >".split(' ');
var s = [];
for(var i=0;i<nchars;i++){
    s.push(alphab[(Math.random()*alphab.length)|0]);
}
var ind1,ind2;
for(var i=0;i<nbrack;i++){
    ind1 = (s.length*Math.random())|0;
    s.splice(ind1,0,'[');
    ind2 = ((s.length-ind1-1)*Math.random())|0 + ind1;
    s.splice(ind2,0,']');
}
s = s.join('')
for(var i=0;i<Math.max(nchars,nbrack);i++){//remove useless stuff
    s=s.replace('[]','');
    s=s.replace('+-','+');
    s=s.replace('-+','-');
    s=s.replace('<>','');
    s=s.replace('><','');
}
alert(s);

4

प्रशिया रूले

रूसी रूले ने अपने दोस्त प्रशिया के साथ एक शर्त लगाई, और अब उसकी खेलने की बारी है।

>(+)*5(-.[>.[>(-)*10]]>>)*1000

आपके पास अपने मुख्य लूप में 2 पॉइंटर डेक्रिमेंट और केवल 1 वेतन वृद्धि है - यह आपको टेप के अपने खुद के अंत की आशा करने वाला है।
कॉमिनेटर

2
यह अभी भी सिर्फ खुद को बाहर फेंक देगा।
गर्वित हैकेलर

शुरुआत में आपके पास एक प्लस होता है और उसके बाद एक माइनस होता है। 2 बर्बाद चक्र।
वेस्टन

4

बड़ा

हथियारों की दौड़ शुरू !!

दोनों अधिकांश प्रतियोगियों की तुलना में 16 18 की ऊँचाई की दीवारों का निर्माण और विनाश करते हैं । क्लोकर, ध्वज-रक्षक, विरोधी-अल्टरनेटर और बॉट को अछूता झंडा मानने वाले को हरा देने के लिए भी थोड़ा तर्क है

+>->+>+>-(>(-)*18>(+)*18)*2(>([(+)*18[-][-[+]]])*2)*21

एनोटेट संस्करण

Off by one
==========
Adjust own flag a little for fun
-

Decoy stage
===========
Build decoys

>->+>+>-        Add four quick walls to deter rushers
                Also throw off bots depending on the alternation
(>(-)*18
 >(+)*18)*2     Build four large decoys

Clear stage
===========
(               Repeat the following forever:
  >             Move forward
  ([            Skip if the space is zeroed already
      (+)*18    Bust negative decoys smaller than 18
      [-]       Clear
      [-[+]]    Check that the wall is actually cleared; if it isn't,
                clear in the opposite direction to defeat bots that try
                to sense our clear direction and defend the flag
  ])*2          Repeat the "non-zero" check to guard against the cloaker
)*21

3

PatientBot

आंशिक रूप से गंभीर बॉट। यह बॉट 100000 चक्रों की सीमा से जीतने का प्रयास करेगा। यह रास्ते में कुछ जाल डालते हुए दुश्मन के झंडे पर जाएगा, इसे थोड़ा कम कर देगा, वापस जाएगा और झंडे का बचाव करेगा।

>++>->->+>+>->->+(>+[-[-[(<)*9--[<--](+)*10000]]])*20

यह मान लेगा कि सब कुछ 1 से बड़ा है या -1 से छोटा है, और जब उसका सामना होगा, तो वह वापस चला जाएगा। यह केवल लगातार वृद्धि द्वारा बचाव करता है। यह मान लेता है कि अधिकांश कार्यक्रम या तो उपयोग करेंगे [] यह जांचने के लिए कि क्या ध्वज 0 बन गया है, और इसलिए (+) * 100000 बहुत तेज़ होगा

संपादित करें: इसे BF Joust दुभाषिया पर काम करने के लिए नहीं मिल सकता है। मैं छोड़ रहा हूं। शायद आप मुझे बताएं कि मुझे अपने कोड में सुधार कैसे करना चाहिए।

संपादित करें: अब बॉट फ्लैग 2 से ठीक पहले स्पॉट बनाता है, और इसके बाद फ्लैग को थोड़ा कम करने के बाद, यह एक 2 को खोजता है। इसका मतलब उस परिदृश्य को रद्द करना है, जहां बॉट को एक से पहले एक के अलावा 0 सेल मिलेगा। झंडा।


आपका बॉट लम्बाई 10 के साथ एक (काफी दुर्लभ, मैं मानता हूं) टेप को मारने लगता है क्योंकि शुरुआत में 10 '>' होते हैं। इसके अलावा, [<]यह इतना अच्छा विचार नहीं है, क्योंकि यह तब तक दोहराता है जब तक कि आपके पॉइंटर के नीचे की सेल शून्य के बराबर न हो जाए , जो कि आपके झंडे के सामने की कोशिकाओं में से एक है या बस आत्महत्या करता है यदि आपका सूचक ध्वज तक पहुंचता है (आपके झंडे के बाद से) उम्मीद है कि शून्य नहीं है )।
सिफर

@ साइपर नोटिस बॉट सिर्फ झंडे के सामने जगह में एक जाल नहीं डालता है - मेरा विचार इस स्थान को चिह्नित करना था ताकि बॉट वहां रक्षा करेगा। क्या कोई बेहतर तरीका है? Bfjoust में कभी-कभी दुश्मन जाल साफ करता है और फिर बॉट को इससे पहले बंद कर देना चाहिए।
गर्वित हैकेलर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.