नेटहॉक में स्क्रॉल की स्वचालित मूल्य-पहचान


21

ओह भगवान नहीं !! आप हमें Doorknob के साथ यहाँ नहीं छोड़ सकते हैं! यह हर जगह nethack हो जाएगा! - 1 डी पहले जियोबिट्स द्वारा

खैर, निराश नहीं कर सकता ...

परिचय

(यदि आप व्यय और / या आपके पास टैब विस्फोट सिंड्रोम है तो आप इस अनुभाग को छोड़ सकते हैं )

नेटहॉक (और दुष्ट, और एक ही रग्गुलाइक शैली में इसी तरह के खेल) के विशिष्ट यांत्रिकी में से एक इसकी पहचान प्रणाली है । खेल की शुरुआत में, आपकी प्रारंभिक सूची में केवल आइटम "औपचारिक रूप से पहचाने जाते हैं।" अन्य वस्तुओं का विशाल बहुमत अज्ञात से शुरू होता है; उदाहरण के लिए, "प्रतिबिंब की एक ढाल" शुरू में पहचाने जाने से पहले "पॉलिश चांदी की ढाल" के रूप में प्रदर्शित होगी।

एक "पॉलिश सिल्वर शील्ड" केवल प्रतिबिंब की ढाल हो सकती है , लेकिन इसके दो अन्य मामलों में दिलचस्प परिणाम हैं।

  1. कुछ वस्तुएं एक-दूसरे से भिन्न होती हैं, लेकिन उनकी "उपस्थिति" समान होती है। उदाहरण के लिए, यदि आप " ग्रे स्टोन " पाते हैं, तो यह चार चीजों में से एक हो सकता है: एक चकमक पत्थर (बेकार), एक टचस्टोन (उपयोगी हो सकता है), एक लोडस्टोन (जो आपको गंभीर रूप से घेर लेगा क्योंकि इसका वजन एक टन है और आप इसे छोड़ नहीं सकते हैं), या एक किस्मत (खेल जीतने के लिए बेहद आवश्यक, लगभग सहायक)।

  2. कई आइटम (स्क्रॉल, वैंड, रिंग, स्पेलबुक, कुछ कवच, आदि) एक यादृच्छिक उपस्थिति है। इसका मतलब यह है कि संभावित आश्रयों की एक सूची है, कहते हैं, औषधि हो सकती है; उदाहरण के लिए, [ गोल्डन पोशन , स्वायरली पोशन , फ़िज़ी पोशन , पर्पल-रेड पोशन , इत्यादि]। ये दिखावे तो बेतरतीब ढंग से कि वे वास्तव में कर रहे हैं (करने के लिए आवंटित कर रहे हैं उपचार के पोशन , पक्षाघात की खुराक , अदृश्य को देखने की खुराक , polymorph की खुराक आदि)।

    जिसका अर्थ है कि एक हेक्सागोनल ताबीज आपके जीवन को एक खेल में बचा सकता है (जीवन की बचत का ताबीज) , और अगले (गला घोंटने के ताबीज) को मौत के घाट उतार सकता है

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

अनौपचारिक पहचान। इसका मतलब यह है कि आप निश्चित रूप से (या निश्चित) हैं कि एक निश्चित अज्ञात वस्तु एक निश्चित प्रकार की है (या कि यह केवल कई प्रकारों में से एक हो सकती है), लेकिन आपने "औपचारिक रूप से" अभी तक इसकी पहचान नहीं की है। यह कई तरीकों के माध्यम से किया जा सकता है: वैंड के लिए उत्कीर्णन-परीक्षण , छल्ले के लिए सिंक-परीक्षण , या, सबसे सामान्य विधि ...

स्क्रॉल मूल्य ID चार्ट

... मूल्य पहचान ! यह कौन सी चुनौती है।

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

कुछ आइटम, जैसे कि प्रकाश की स्क्रॉल , एक निश्चित राशि की लागत वाली एकमात्र वस्तु हैं, जो आपको उनकी पहचान करने की अनुमति देता है; हालाँकि, अधिकांश आइटम उसी वर्ग के अन्य आइटमों के साथ एक मूल्य समूह साझा करते हैं, जो आपको केवल संभावनाओं को कम करने देता है (जो अभी भी उपयोगी है)। हालांकि, किसी वस्तु की खरीद / बिक्री की कीमतें कई चर (जैसे कि आपका करिश्मा स्टेट) से प्रभावित होती हैं । इसलिए ऊपर चार्ट।

क्या आप बता सकते हैं कि मुझे नेटहैक पसंद है?

इनपुट

वर्तमान में खेला जा रहा है, एक (वेनिला, 3.4.3) नेटहॉक गेम के रूप में इनपुट प्रदान किया जाएगा:

"For you, most gracious sir; only 177 for this scroll labeled VERR YED HORRE."
--More--

        ------------
        |          .                                        ---------
        |          |                         ----------     |    ^  |
        |          .##       ################.        +#   #.       .#
        |          | #                       |       _|#   #---------#
        |          | ###                   ##.<       |#   ####      #
        |          .#########################----------#      #      #
        ------------   ###     #         ############# #      #      #
           #             #  -----------  #             #      #   ####
         ###             ###|         |###             #      #   #----------
         #                 #.         |#             ### #    #   #|.???????|
        ##                  |         |#             #--------#   #|.??@????|
    ----.----###############.         |#             #|      |#   #-@???????|
    |.......+#              |         |#             #.      |#    ----------
    |.......|               |         .#              |      |#
    |......>|               -----------               |      +#
    ---------                                         --------


Wizard the Evoker         St:12 Dx:14 Co:11 In:16 Wi:12 Ch:10  Chaotic
Dlvl:2  $:0  HP:11(11) Pw:0(8) AC:9  Exp:1 T:11

इसका मतलब है कि इसमें कई गुण होने की गारंटी है:

  • यह हमेशा 24 लाइन लंबी होगी।

  • प्रत्येक पंक्ति हमेशा 80 वर्ण या उससे कम लंबाई की होगी।

  • दूसरी-से-अंतिम पंक्ति में निम्नलिखित " टोकन " शामिल होंगे: खिलाड़ी का नाम और शीर्षक (" फूबार " के रूप में), विशेषताओं की सूची (एकल स्थान से अलग), और खिलाड़ी का संरेखण ( वैध, तटस्थ या अराजक)। प्रत्येक टोकन को रिक्त स्थान की एक चर संख्या से अलग किया जाएगा। 1

  • विशेषताओं की सूची हमेशा रहेगी St:* Dx:* Co:* In:* Wi:* Ch:*, जहां एक *चरित्र 3 से 25 तक पूर्णांक का प्रतिनिधित्व करता है। 2 (यहां रुचि का बिंदु अंतिम स्टेट, करिश्मा है, जिसे आपको कीमतों की गणना करने की आवश्यकता है।)

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

    "For you, {TITLE}; only {PRICE} for this scroll labeled {LABEL}."--More--
    

    और बेचने के लिए, यह है:

    {SHK} offers {PRICE} gold pieces for your scroll labeled {LABEL}.  Sell it? [ynaq] (y)
    

    जहाँ सूचीबद्ध "चर" {curly braces}निम्नलिखित हैं:

    • {TITLE}हमेशा " अच्छा ", " सम्मानित ", " सबसे दयालु ", या " सम्मानित " में से एक होता है, जिसे " महिला " या " सर " के साथ जोड़ा जाता है ।

    • {PRICE} हमेशा एक पूर्णांक होता है।

    • {LABEL}हमेशा निम्नलिखित में से एक होगा ( स्रोत ):

      ZELGO MER       JUYED AWK YACC  NR 9             XIXAXA XOXAXA XUXAXA
      PRATYAVAYAH     DAIYEN FOOELS   LEP GEX VEN ZEA  PRIRUTSENIE
      ELBIB YLOH      VERR YED HORRE  VENZAR BORGAVVE  THARR
      YUM YUM         KERNOD WEL      ELAM EBOW        DUAM XNAHT
      ANDOVA BEGARIN  KIRJE           VE FORBRYDERNE   HACKEM MUCHE
      VELOX NEB       FOOBIE BLETCH   TEMOV            GARVEN DEH
      READ ME
      
    • {SHK}हमेशा निम्नलिखित में से एक होगा ( स्रोत ):

      Skibbereen      Ballingeary     Inishbofin      Annootok        Abitibi
      Kanturk         Kilgarvan       Kesh            Upernavik       Maganasipi
      Rath Luirc      Cahersiveen     Hebiwerie       Angmagssalik    Akureyri
      Ennistymon      Glenbeigh       Possogroenoe    Aklavik         Kopasker
      Lahinch         Kilmihil        Asidonhopo      Inuvik          Budereyri
      Kinnegad        Kiltamagh       Manlobbi        Tuktoyaktuk     Akranes
      Lugnaquillia    Droichead Atha  Adjama          Chicoutimi      Bordeyri
      Enniscorthy     Inniscrone      Pakka Pakka     Ouiatchouane    Holmavik
      Gweebarra       Clonegal        Kabalebo        Chibougamau     Lucrezia
      Kittamagh       Lisnaskea       Wonotobo        Matagami        Dirk
      Nenagh          Culdaff         Akalapi         Kipawa
      Sneem           Dunfanaghy      Sipaliwini      Kinojevis
      

    यह संदेश दूसरी पंक्ति में विभाजित किया जा सकता है (लेकिन यह कभी भी 2 रेखाओं से अधिक नहीं लेगा)। 3

  • पहली कुछ पंक्तियों के अलावा, सभी दांव बंद हो गए हैं कि बाकी स्क्रीन कैसी दिखती है। नेटहॉक ASCII वर्ण सेट के बहुमत का उपयोग करता है । केवल एक चीज जिसे आप सुरक्षित रूप से मान सकते हैं कि इनपुट विशुद्ध रूप से ASCII होगा (हालांकि यह शायद कोई फर्क नहीं पड़ेगा क्योंकि आप लाइनों को वैसे भी 3-22 छोड़ सकते हैं)।

यदि इनपुट को एक फ़ंक्शन तर्क के रूप में लिया जाता है, तो इसे ठीक उसी प्रकार दिया जाएगा जैसा कि ऊपर दिए गए उदाहरण में दिखाया गया है (नई पंक्ति अलग)। यदि आप STDIN के माध्यम से इनपुट करते हैं, तो इसे इनपुट की लगातार 24 लाइनों (फिर से, जैसा कि ऊपर दिखाया गया है) के रूप में दिया जाएगा। आप चुन सकते हैं कि आप इनपुट के लिए अनुगामी न्यूलाइन चाहते हैं या नहीं। इनपुट के लिए कोई स्थान नहीं होने की गारंटी है।

उत्पादन

आउटपुट के रूप में प्रदान किया जाना चाहिए कि मुझे क्या #nameस्क्रॉल करना चाहिए कि मैं सिर्फ मूल्य-आईडी कर दूं। जो नामकरण प्रणाली मैं उपयोग करता हूं (और जो मैंने दूसरों को उपयोग करते देखा है) है:

  • यदि स्क्रॉल को स्पष्ट रूप से एक निश्चित स्क्रॉल (पहचान, प्रकाश, करामाती हथियार) के रूप में पहचाना जाता है, #nameतो यह। यह निम्नलिखित बेस कीमतों के स्क्रॉल के लिए मामला है (आप नीचे बेस प्राइस की गणना करने का तरीका देखेंगे): 20 -> पहचान, 50 -> प्रकाश, 60 -> करामाती हथियार।

  • अन्यथा, स्क्रॉल की उपस्थिति के पहले तीन अक्षरों को लें, या पहला शब्द यदि यह 3 वर्णों से कम है। उदाहरण के लिए, ZELGO MERहो जाता है ZEL, VE FORBRYDERNEहो जाता है VE, आदि इस के साथ CONCATENATE (एक अंतरिक्ष, और उसके बाद) पुस्तक का आधार मूल्य। उदाहरण के लिए, ELB 300

  • यदि आधार मूल्य दो संभावनाओं में से एक हो सकता है, तो मैं आमतौर पर आइटम खरीदने या बेचने की कोशिश करता रहता हूं जब तक कि मुझे एक प्रस्तावित मूल्य नहीं मिलता है जो कि स्पष्ट रूप से एक निश्चित मूल्य स्लॉट में रखता है। हालाँकि, आप इस चुनौती में ऐसा नहीं कर सकते, इसलिए बस दो संभावित आधार कीमतों को एक स्लैश ( /) के साथ अलग कर दें । उदाहरण के लिए, HAC 60/80

यहां किसी वस्तु के आधार मूल्य को उस मूल्य में परिवर्तित करने का सूत्र है जिसे आप उसे खरीदने के लिए प्रस्तुत करते हैं:

  • आइटम के आधार मूल्य के साथ शुरू करो

  • संभावित 33% "अज्ञात अधिभार," के माध्यम से गणना का मौका price += price / 3

  • 33% "चूसने वाला मार्कअप" का एक और मौका (यह वास्तव में यादृच्छिक मौका नहीं है, लेकिन इस चुनौती के प्रयोजनों के लिए), उसी तरह से गणना की गई है

  • एक करिश्मा संशोधक, जो इस प्रकार लगाया जाता है:

    Ch    3-5     6-7       8-10      11-15  16-17     18        19-25
    Mod   +100%   +50%      +33%      +0%    -25%      -33%      -50%
    Code  p *= 2  p += p/2  p += p/3  ---    p -= p/4  p -= p/3  p /= 2
    

और यहाँ आधार मूल्य के लिए सूत्र है -> बिक्री मूल्य:

  • आइटम के आधार मूल्य के साथ शुरू करो

  • इसे क्रमशः 2 या 3 ("सामान्य" या "चूसने वाला मार्कअप" द्वारा विभाजित करें; फिर से, यादृच्छिक नहीं, लेकिन यह इस चुनौती के उद्देश्यों के लिए है)

  • एक और 25% की कमी 4 का मौका , के माध्यम से गणना कीprice -= price / 4

विभाजन पूर्णांक विभाजन है, जिसका अर्थ है कि प्रत्येक चरण पर परिणाम नीचे गोल है। (स्रोत: विकी , और थोड़ा स्रोत कोड खुदाई। इन फॉर्मूलों को उलट देना आपका काम है।)

अंत में, यहां एक आसान-डंडी एएससीआईआई चार्ट है जो संभावित खरीद मूल्य (करिश्मा स्टेट द्वारा वर्गीकृत) दिखाता है और एक निश्चित आधार मूल्य के साथ एक स्क्रॉल की कीमतों को बेचता है:

Base  Ch<6          6-7          8-10         11-15        16-17        18           19-25        Sell
20    40/52/68      30/39/51     26/34/45     20/26/34     15/20/26     14/18/23     10/13/17     5/6/8/10
50    100/132/176   75/99/132    66/88/117    50/66/88     38/50/66     34/44/59     25/33/44     12/16/19/25
60    120/160/212   90/120/159   80/106/141   60/80/106    45/60/80     40/54/71     30/40/53     15/20/23/30
80    160/212/282   120/159/211  106/141/188  80/106/141   60/80/106    54/71/94     40/53/70     20/26/30/40
100   200/266/354   150/199/265  133/177/236  100/133/177  75/100/133   67/89/118    50/66/88     25/33/38/50
200   400/532/708   300/399/531  266/354/472  200/266/354  150/200/266  134/178/236  100/133/177  50/66/75/100
300   600/800/1066  450/600/799  400/533/710  300/400/533  225/300/400  200/267/356  150/200/266  75/100/113/150

(यह विकी पर चार्ट के समान है, सिवाय इसके कि यह सभी संभावित विक्रय मूल्यों को सूचीबद्ध करता है, जबकि विकी चार्ट चार संभावित बिक्री मूल्यों में से दो को शामिल करने की उपेक्षा करता है। नहीं, मैंने मैन्युअल रूप से उस चार्ट को नहीं बनाया है, इस रूबी स्क्रिप्ट के साथ उत्पन्न हुआ है; ।)

परीक्षण के मामलों

इनपुट:

"For you, honored sir; only 80 for this scroll labeled LEP GEX VEN ZEA."
--More--                   #                                          #
                      ----------------                              -----
                      |              |              ------------####+   |
      -----           |              -##############+          .#   |   |
      |   .###########|           >  |#           # |          |  ##.   |
      |   |          #------------.---#           ##.          |  # -----
      -+---          ##################             ----.-------###    #
       ####                     ###                     #       #      #
          #                     #                       #     ###      ###
          ###                 ###                       #     #          #
            #                 #                         #   ###     -----|--
       -----.---            ###                     ----+---#       |...@..|
       |       |            #                       |      |#       |???+??|
       |  <    .#          ##                     ##+      |        |+?????|
       |       |#    ------.-------                 |      |        |??]?@?|
       ---------###  |            |                 |      |        --------
            #     #  |            |                 --------
                  ###|            |                       #
                    #+            |
                     --------------

Wizard the Evoker         St:11 Dx:15 Co:9 In:20 Wi:9 Ch:11  Chaotic
Dlvl:7  $:0  HP:11(11) Pw:1(8) AC:9  Exp:1

आउटपुट: LEP 60/80


इनपुट:

"For you, most gracious sir; only 80 for this scroll labeled DAIYEN FOOELS."
--More--                                                             #
                ------------                         -----      -------
 -----          |          |                         |   |      |     |
 |!)%|          |          |     ---------------     |   |     #-     |
 |*[@|          |          .#####|   <         |#####.   |   ###|     |
 |?(?|          ---------.--    #+             |#    |   |   #  |     |
 |[!(|                  ##       |             |#    |   +#### #.     .#
 |.@.|         ##################.             +#    ---.-     #|     |#
 ---|-                ###        ---------------#       ##     #-------#
    ##                #                    ######        #     #       #
     #              ###                         #        #     #       #
     ##             #                           #        #     #       #
  ------        #####                           #        #     #       #
  |    |       -.----                           #        #     #       #
  |    .#####  |^   |                        ####        #     #       #
  |    |    #  |    |          ----          #-----------.---- #       #------
  |    |    ###|    |          |  |          #.      >       | #       #|    |
  ------      #.    |          |  |           |              .##       #|    |
               |    |          ----           |              |         #.    |
               ------                         ----------------          ------

Wizard the Evoker         St:11 Dx:14 Co:16 In:15 Wi:10 Ch:9  Chaotic
Dlvl:6  $:0  HP:11(11) Pw:9(9) AC:9  Exp:1

आउटपुट: enchant weapon


इनपुट:

Aklavik offers 113 gold pieces for your scroll labeled GARVEN DEH.  Sell it?
[ynaq] (y)

     -----      ------                                 ---------      -------
     |   |      |    |                         #     ##.       |      |.?)%/|
     |   |    ##.    |                       -----   # |       |      |.@!=*|
     |<  |    # |    |            #        ##.   .#####+    >  |#    #-.*?@[|
     |   .##### |    |      ------------   # | { |#    |^      |#    #|.=%)+|
     ---.-      |    |      |          .#### |   |#    ---------##   #-------
       ##       -.----     #.          |     |   |#          # ###   #
       #         ########  #|          .##   |   |#            ##    #
     ###                #  #------------ #   -----#          ####    #
     #                  #######          ##########################  #
     #                    #   #                            ###----.--#
     #                    ### #                            # #|     |#
   --.----       ########################################### #.     |#
   |     |       #----------.-#                               |     |#
   |     |       #|          |#                               -------
   |     |       #|          .#
   |     |########|          |
   -------        ------------
                   #    #
Wizard the Evoker         St:9 Dx:14 Co:11 In:19 Wi:10 Ch:12  Chaotic
Dlvl:4  $:0  HP:11(11) Pw:5(9) AC:9  Exp:1 Satiated

आउटपुट: GAR 300


इनपुट:

"For you, good lady; only 67 for this scroll labeled VE FORBRYDERNE."--More--

                                                 -------
                                               ##|     |
  ------------                                 # |     |
  |+[!/!?%[?)|                               ### |     |          --------
  |[)(!/+]?!@|               #               #   |     |        ##+      |
  |.......@..|            --------------   ###   | <   | ##       |      |
  --------+---           #|            |   #     |     |  #       |    > |
          #            ###|            .####     --.----  ###    #-      |
          #            ###.            |           #        #  ###|      |
          #          #### ---.----------           #        ######.      |
          #          ####    ##                    #         ###  --------
          #        ####       #                    #         #
          #        ####       ########################     ###
        ###      ####                            ----+---- #
        #   #    ####                            |       .##
    ----.------####                              |  ^    |
    |         +####                              |    >  |
    |         |                                  | ^     |
    -----------                                  ---------

Wizard the Evoker         St:18 Dx:18 Co:16 In:20 Wi:20 Ch:18  Chaotic
Dlvl:4  $:150 HP:11(11) Pw:5(7) AC:9  Exp:1

आउटपुट: VE 100


इनपुट:

Droichead Atha offers 5 gold pieces for your scroll labeled XIXAXA XOXAXA
XUXAXA.  Sell it? [ynaq] (y)
                                                ------------
                   -----                        |          .#
                   |   .### -----------        #.       {  |#
       -----       |   |  # |         |      ###|          |#
       |   .#     #.   |  # |         |      #  ---------+--#
       |   |    ###-|---    |         .##  ###          ##  #
       |   |    #   # #     |         | #  #            #   #
       |   -#####   #       |         | #### ############   #
       |>  | ##     #       ---------+-  ## -.----------    # ----------
       |   .####    ###             ## #####|          |    # |.*??/?)*|
       -----   #      #             #  #    |          |    # |@*)%!)]%|
               ###    ###         ######    |          |    # |.=)!%*!!|
                 #      #         #  #      |          |    ##+@*[%)(%?|
                 #####################      |          |      |.]?*?)%%|
                    -----+---.----##########.          |      |.%)%!!!%|
                    |            +##        ------------      ----------
                    |    <       |                  #
                    |            |
                    --------------

Wizard the Digger          St:11 Dx:9 Co:14 In:6 Wi:6 Ch:9  Lawful
Dlvl:3  $:0  HP:15(15) Pw:0(1) AC:9  Exp:1

आउटपुट: identify

(मुझे नेटहैक को मैन्युअल रूप से अन्य सभी दुकानदार नामों को हटाने के लिए संकलित करना पड़ा क्योंकि मुझे एक दुकानदार नहीं मिला, जिसके नाम में जगह थी ...)

नियम


1: नेटॉक गेम के दौरान यह हमेशा सही नहीं होता है, लेकिन हम इसे सरलता के लिए मानते हैं।

2: फिर से, हमेशा सच नहीं। 18/ ** के माध्यम से ताकत 18/01 हो सकती है, लेकिन आपको इसे संभालने की आवश्यकता नहीं है।

3: अधिक सकल oversimplifications। उदाहरण के लिए, एक दुकानदार के लिए आपको "मैल" या "सबसे प्रसिद्ध और पवित्र प्राणी" कहना संभव है, लेकिन आपको इसमें से किसी को भी संभालने की आवश्यकता नहीं है।

4: जो एक स्मार्ट खिलाड़ी को उच्च कीमत दिए जाने तक बार-बार आइटम बेचने की पेशकश के द्वारा चारों ओर हो जाता है।


15
पाठ की पवित्र दीवार!
orlp

जवाबों:


10

जावास्क्रिप्ट (ईएस 6), 1610 724 601 612 419 405 बाइट्स

a=>(b=a.match(/(\d+) (g|f).+d (\w{0,3})[\s\S]+h:(\d+)/m),c=+b[4],d=[20,50,60,80,100,200,300].map(e=>(f=e>>1,g=~~(e/3),[e,b[2]=='g'?[g-(g>>2),g,f-(f>>2),f]:[e,e+g,e+g+~~((e+g)/3)].map(h=>c<6?h*2:c<8?h+h>>1:c<11?h+~~(h/3):c<16?h:c<18?h-(h>>2):c<19?h-~~(h/3):h>>1)])).filter(i=>i[1].includes(+b[1])),j={20:'identify',50:'light',60:'enchant weapon'}[d[0][0]],k=b[3]+' '+d[0][0],d.length==1?j||k:k+'/'+d[1][0])

पाठ की बड़ी दीवार, कोड की बड़ी दीवार से मिलती है।

Ungolfed

inp => (
    extraction = inp.match(/(\d+) (g|f).+d (\w{0,3})[\s\S]+h:(\d+)/m),

    charisma = +extraction[4],

    allowed = [20, 50, 60, 80, 100, 200, 300].map(base => (
        tmp1 = base >> 1,
        tmp2 = ~~(base / 3),
        [
            base,
            extraction[2] == 'g' ?
                [tmp2 - (tmp2 >> 2), tmp2, tmp1 - (tmp1 >> 2), tmp1]
            :
                [base, base + tmp2, base + tmp2 + ~~((base + tmp2) / 3)].map(val =>
                    charisma < 6 ?
                        val * 2
                    : charisma < 8 ?
                        val + val >> 1
                    : charisma < 11 ?
                        val + ~~(val / 3)
                    : charisma < 16 ?
                        val
                    : charisma < 18 ?
                        val - (val >> 2)
                    : charisma < 19 ?
                        val - ~~(val / 3)
                    : val >> 1
            )
        ]
    )).filter(key => key[1].includes(+extraction[1])),

    name_ = {
        20: 'identify',
        50: 'light',
        60: 'enchant weapon'
    }[allowed[0][0]],

    tmp3 = extraction[3] + ' ' + allowed[0][0],

    allowed.length == 1 ?
        name_ || tmp3
    :
        tmp3 + '/' + allowed[1][0]
)

उदाहरण


1
यह स्क्रिप्ट का एक बड़ा ढेर है।
घातक

1
वाह, किसी ने आखिरकार इसका जवाब दिया? अच्छा: डी
दरवाज़े

@Doorknob कुछ समय के लिए इसे अपडेट करना चाहता था, आखिरकार इसके आसपास हो गया।
usandfriends
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.