9 होल चैलेंज [बंद]


65

द 9 होल चैलेंज

  • अलग-अलग कठिनाई की 9 कोड गोल्फिंग चुनौतियां।
  • एक से अधिक बार एक ही भाषा का उपयोग करने पर जुर्माना।
  • प्रश्न को पार्स, होल चैंपियन और ट्रॉफी विजेताओं के साथ अपडेट किया जाएगा।

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

छेद

  1. ग्रीनवे (24)

    f(c:string, n:integer)
    के nउदाहरणों वाली एक रेखा प्रिंट करता है c

  2. कहीं न कहीं (73)

    f(t:string, s:string, n:integer) -> i
    कहाँ iका सूचकांक है nthके कहने sमें t

  3. रात के खाने के लिए करी (6235)

    f(x:function, y: function) -> ggएक फ़ंक्शन कहाँ है जो कॉल करेगा y, nसमय; nका वापसी मूल्य कहां हैx

  4. स्पू (92)

    f(p:string) पर लिखने के लिए लिखता है pऔर इसे यादृच्छिक वर्ण (ascii) के एक यादृच्छिक आकार के आयत से भरता है।

  5. ट्रेजर हंट (75)

    f(p:string, c:char) -> (x, y) फ़ाइल को पढ़ता है, pजिसमें प्रतीकों का एक ग्रिड होता है और ग्रिड के भीतर उस प्रतीक के पहले उदाहरण के निर्देशांक xऔर yनिर्देशांक देता है , मान लें कि यह मौजूद है।

  6. Kwai नदी पर पुल (179)

    f(l:list[int]) प्रिंट अंतर पुल के लिए आरेख l। जैसे के लिए[1,7,3,17,1]

     /+6\ /-4\ /+14\  /-16\
    1    7    3     17     1
    

    सुनिश्चित करें कि रिक्त स्थान ऊपर की संख्या के आकार के अनुसार बनाए गए हैं। 3 अंकों की लंबी संख्या के लिए, आपको नीचे की रेखा पर अंकों के बीच 4 रिक्त स्थान की आवश्यकता होगी।

    कैच: कहीं न कहीं, आपके कोड में ट्राउजर ट्राउजर होना चाहिए (कम से कम 1 गैर-अल्फ़ान्यूमेरिक सीमांकक होना चाहिए। उदा।) tr(ou,se)(rs)

  7. समय मक्खियों जब आप गोल्फ खेल रहे हैं (1157)

    f(p:string) -> [h, m] उस फ़ाइल को पढ़ता है pजिसमें एक एनालॉग घड़ी का ASCII प्रतिनिधित्व होता है, जहां घंटे के हाथ को एक रेखा और दो मिनट के साथ दर्शाया जाता है। दो तत्वों से युक्त सूची का उत्पादन करें: घड़ी पर दिखाए गए घंटे और मिनट। यदि केवल एक हाथ दिखाई दे रहा है, तो दोनों को उस स्थिति में इंगित करें।

    यहां एक हाथ के लिए सभी संभव संयोजन दिए गए हैं।

    \ | /
     \|/
    --o--
     /|\
    / | \
    

    ये पद क्रमशः, (१२, १, ३, ५, ६, (, ९, ११) हैं। मान लें कि घड़ी चेहरे के भीतर अन्य वर्ण रिक्त स्थान हैं।

  8. इमारती लकड़ी! ()

    f(p:string) -> b:boolean जहाँ p एक आस्की बिल्डिंग वाली फाइल का रास्ता है। उसके नीचे सफेद जगह वाले ब्लॉक गिरेंगे। (स्लैश को छोड़कर, जो जगह में बने रहते हैं, तो विपरीत दिशा में एक स्थिर ब्लॉक होता है)। यदि इमारत संरचनात्मक रूप से अभिन्न रूप से वापस लौटी है, तो अन्यथा झूठी लौटें। सभी गैर व्हॉट्सएप ब्लॉक को ठोस होने के रूप में गिना जाता है और स्लैश के अलावा, वे सभी गिर जाते हैं।

    संरचनात्मक रूप से सुरक्षित है

    ____
    |/\|
    |  |
    

    असुरक्षित

    |__
      | 
      |
    

    सुरक्षित संस्करण

    |__
    \\| 
      |
    
  9. सुस्त समाचार (218)

    f(s:string, r:string, p:string) पर हैकर समाचार शीर्ष 20 कहानियों का खिताब हो जाता है और के सभी उदाहरणों में परिवर्तन sकरने के लिए r, तो कम से html फ़ाइल के लिए नए खिताब लिखते हैं p, जहां प्रत्येक शीर्षक एक h1 तत्व भीतर निहित है।

    आउटपुट फ़ाइल कुछ इस तरह होनी चाहिए

    <h1>Some title</h1></h1>Some other title</h1>...etc

    कैच :

    • आप HN एपीआई का उपयोग नहीं कर सकते हैं।
    • आप Regex का उपयोग नहीं कर सकते हैं।
    • आप अपने कोड में कहीं भी एंगल ब्रेसिज़ का उपयोग नहीं कर सकते हैं।

स्कोरिंग

  • कैरेक्टर काउंट फंक्शन की लंबाई है जो सही तरीके से कंपाइल और रन करेगा। हालाँकि आपको अभी भी आयात सहित पूर्ण कोड जमा करने की आवश्यकता है।
  • आपके प्रस्तुत करने में हर दोहराया भाषा के लिए 10% । (उदा। यदि आप 3 समाधानों के लिए रूबी का उपयोग करते हैं, तो आपका अंतिम स्कोर 1.2 से गुणा किया जाएगा)। एक ही भाषा की गिनती के विभिन्न संस्करण अभी भी एक ही भाषा के रूप में गिने जाते हैं।
  • प्रत्येक छेद के लिए बराबर औसत स्कोर होगा।
  • एक उत्तर में अपने समाधान प्रस्तुत करें।
  • आपका कुल स्कोर आपकी वर्ण गणना + आपकी भाषा दंड है, फिर इसे गोल करें।

ट्राफी

  • गोल्ड जैकेट - ( @Sprigyig - 1290) सबसे कम समग्र स्कोर
  • निशानेबाज - ( @Sprigyig - 9) अधिकांश भाषाओं का उपयोग किया जाता है
  • बंकर - किसी भी छेद पर सबसे ऊपर बराबर स्कोर
  • एक प्लेन पर सांप - ( @AsksAnyway - 1727) एक ही समाधान में सबसे ज्यादा अजगर चरित्र प्रस्तुत
  • अच्छे हिस्से - ( @AsksAnyway - 255) एकल समाधान में उच्चतम जेएस चरित्र गिनती
  • शेक स्टीव - सबसे छोटा समाधान जो इंटरफेस का उपयोग करता है
  • यू आर नॉट फ्रॉम राउंड हियर - सबसे छोटा अनोखा भाषा समाधान जो भाषा का सबसे छोटा विकिपीडिया पेज है।
  • Happy Gilmoore - ( @AsksAnyway - 31) सबसे छोटा समाधान जिसमें कोड में 'एलीगेटर' शब्द है।
  • यूनीसाइकलिंग ड्वार्फ मैजिक - आपकी 9 सबमिशन सोर्स फाइल्स की डिफॉल्ट एक्सटेंशन ऑक्सफोर्ड डिक्शनरी में एक शब्द का परफेक्ट अनाग्राम है।

एक बार जब आप सभी 9 छेद पूरे कर लेते हैं तो आप केवल एक ट्रॉफी के लिए पात्र होते हैं


प्रस्तुतियाँ

  1. @ श्रीपिगिग 1290
  2. @ फ़ाइरफ़्लेम 1320
  3. @grc 1395
  4. @ ट्रेवर एम 1465
  5. @ सी गियरहार्ट 1654
  6. @ गुय सिरटन 1719
  7. @AsksAnyway 4651

2
@anorton <&>
Dan प्रिंस

1
एक एनालॉग घड़ी में प्रत्येक हाथ के लिए 12 स्थितियां होती हैं, लेकिन आप केवल हमें 8. 8. वह काम कैसे करता है?
केविन

1
@DanPrince क्या आप चाहते हैं कि /स्थिति 1 बजे या 2 बजे की हो? (और इसी तरह बाकी के सभी विकर्णों के लिए)
एपनॉर्टन

1
@anorton 1/5, 5/25, 7/35, 11/55
Dan Prince

2
क्या किसी भाषा के विभिन्न संस्करणों या स्वादों को स्कोरिंग उद्देश्यों के लिए "अलग" माना जाएगा? जैसे पायथन 2 बनाम पायथन 3? विजुअल बेसिक बनाम VB.Net बनाम VBScript? C बनाम C ++ जैसे सुपरसेट या निकट-सुपरसेट के बारे में कैसे? पांडित्य के लिए क्षमा करें, लेकिन यह है कोड गोल्फ! :-)
डैरेन स्टोन

जवाबों:


11

स्कोर: 4651

2907 + 60% जुर्माना

1. गोल्फस्क्रिप्ट - 14 अक्षर

{*}:a;lligator

उपयोग: c n aउदा "test" 3 a->testtesttest

तारा हैप्पी गिल्मोर

2. पायथन - 72 वर्ण

def f(t,s,n,p=-1):
 while n:p=t.find(s,p+1);n-=1 if p+1 else n
 return p

3. जावास्क्रिप्ट - 255 वर्ण

/*
Curry for Dinner

f(x:function, y: function) -> g Where g is a function that will call y, n times; where n is the return value of x
*/
function f(x, y) {
    var g = function() {
        var n = x();
        for (var i = 0; i < n; ++i) {
            y();
        }
    };
    return g;
}

ताराबंकर तारागुड पार्ट्स

4. पायथन - 132 वर्ण

from random import randrange as r
def f(p):l=range(r(9));open(p,'w').writelines([''.join([chr(r(94)+33)for _ in l])+'\n'for _ in l])

5. पायथन - 89 वर्ण

def f(p,c):
 for y,d in enumerate(open(p).readlines()):
  x=d.find(c)
  if x+1:return x,y

6. पायथन - 189 वर्ण

def f(l):
 for i in 0,1:
  for n,u in enumerate(l):
   o=l[n+1] if len(l)>n+1 else id 
   if i:print u,' '*4,
   elif o!=id:print' /'+('+' if o-u>0 else '')+str(o-u)+'sers'*0+'\\ ',
  print

7. पायथन - 1727 अक्षर

def f(p):
    lines = open(p).read().split('\n')

    # preprocess lines to ensure correct format
    if len(lines) < 5:
        for i, line in enumerate(list(lines)):
            if 'o' in line:
                if i == 0:
                    lines.insert(0, ' ' * 5)
                    lines.insert(0, ' ' * 5)
                elif i == 1:
                    lines.insert(0, ' ' * 5)
        while len(lines) < 5:
            lines.append(' ' * 5)

    # find characters that can only be the hour hand
    for i, line in enumerate(lines):
        if i == 0:
            if '\\' in line:
               hour = 11
            elif '|' in line:
                hour = 12
            elif '/' in line:
                hour = 1
        elif i == 2:
            if '--o' in line:
                hour = 9
            elif 'o--' in line:
                hour = 3
        elif i == 4:
            if '/' in line:
               hour = 7
            elif '|' in line:
                hour = 6
            elif '\\' in line:
                hour = 5

    # find characters that might represent the minute hand
    possible_minutes = []
    for i, line in enumerate(lines):
        if i == 1:
            if '\\' in line:
                possible_minutes.append(55)
            if '|' in line:
                possible_minutes.append(0)
            if '/' in line:
                possible_minutes.append(5)
        elif i == 2:
            if '-o' in line:
                possible_minutes.append(45)
            if 'o-' in line:
                possible_minutes.append(15)
        elif i == 3:
            if '/' in line:
                possible_minutes.append(35)
            if '|' in line:
                possible_minutes.append(30)
            if '\\' in line:
                possible_minutes.append(25)

    HOUR_MINUTES = {
        12: 0,
        1: 5,
        3: 15,
        5: 25,
        6: 30,
        7: 35,
        9: 45,
        11: 55,
    }

    # remove minute hand that is actually hour hand
    if len(possible_minutes) > 1:
        not_minute = HOUR_MINUTES[hour]
        if not_minute in possible_minutes:
            possible_minutes.remove(not_minute)

    assert(len(possible_minutes) == 1)
    minute = possible_minutes[0]

    h, m = hour, minute          
    return [h, m]

तारा एक प्लेन पर सांप

8. पायथन - 226 वर्ण

def f(p):
 e=set;q,t=e(),True
 for l in open(p).readlines():
  r,b,q=e(q),e(),e()
  for i,c in enumerate(l):
   if c.strip():b.add(i);q.add(i-1 if c == '/' else i+1 if c == '\\' else i)
  if not r.issubset(b):t=False
 return t

9. पायथन - 203 वर्ण

import urllib
def f(s,r,p):f,l,g=open(p,'w'),'\74','\76';[f.write(l+'h1'+g+t.replace(s,r)+'h1'+g)for i,t in enumerate(urllib.urlopen('http://x.co/3WYln').read().split('title'+g))if(i in range(2,42))&i%2]

"#Alligator" टिप्पणी का कोड # 1 के साथ क्या करना है? यह किसी कारण से शब्द गणना में शामिल किया गया लगता है।
धरा

1
@धारा यह हैप्पी गिल्मोर ट्रॉफी के लिए है: "सबसे छोटा समाधान जिसमें कोड में शब्द 'मगरमच्छ' है।"
PhiNotPi

# 9 कोण ब्रेसिज़ ( i<i<42) का उपयोग करता है , या जब तक आप केवल उन्हें ऑपरेटरों के रूप में उपयोग करते हैं, तब तक उन्हें अनुमति दी जाती है?
क्रिस्टोफर Creutzig

@ChristopherCreutzig फिक्स्ड धन्यवाद।
१३

7

स्कोर: 1320

मैंने इस स्कोर को बेहतर बनाने के लिए बहुत कुछ किया है ... ओह ठीक है, कम से कम मैंने बार-बार होने वाले दंड से बचा लिया। :-)

1. अजगर (21 वर्ण)

def f(c,n):print(c*n)

"स्पष्ट" समाधान।

2. ECMAScript 6 (47 वर्ण)

f=(t,s,n)=>t.split(s).slice(0,n).join(s).length

सूचकांक की लंबाई को एक अपरंपरागत तरीके से ढूँढता है, इससे पहले प्रतिस्थापन की लंबाई की गणना करके।

3. जे (12 वर्ण)

f=:2 :'v^:u'

अंतर्निहित संयोजन ^:एक फ़ंक्शन को एक शक्ति तक बढ़ाता है (यानी एक फ़ंक्शन को कई बार दिया जाता है)। यही कारण है, f^:3 y = f (f (f y)))। हालाँकि, यह पूर्णांक के बजाय फ़ंक्शन को स्वीकार करने के लिए अतिभारित है, इस स्थिति में यह इनपुट पर फ़ंक्शन को दोहराव की संख्या प्राप्त करने के लिए चलाता है। दुर्भाग्य से हमें कार्य के लिए ऑपरेंड को फ्लिप करने की आवश्यकता है, अन्यथा हमारे पास सहमति उत्तर होगा f=:^:

4. सी (95 वर्ण)

#include <stdio.h>
#include <stdlib.h>

f(char*p){FILE*f=fopen(p,"a");for(int n=rand(),y=n*n;y--;y%n||putc(10,f))putc(rand()%94+32,f);}

यह कार्य व्याख्या और दुरुपयोग के लिए काफी जगह छोड़ देता है: क्या यह सिर्फ एक यादृच्छिक मुद्रण योग्य ASCII चरित्र का उत्पादन करना ठीक है और यह कहना है कि सेट {1} से आयामों के साथ यह एक यादृच्छिक रूप से परिमाणित आयत है? शायद ऩही। वैसे भी, मैं सादे के साथ गया था, rand()लेकिन वास्तव में आप शायद इसे जोड़ना चाहते हैं %9या कुछ और बनाना चाहते हैं। मेरे लिनेक्स बॉक्स पर मुझे इसे लिखने के लिए फाइल को फ्लश नहीं करना था (मुझे लगता है कि यह प्रोग्राम एक्जिट पर अपने आप फ्लश हो जाता है), लेकिन मुझे पूरा यकीन है कि आपको मानकों के अनुरूप होने के लिए फ्लश करना होगा, इसलिए महसूस करें fflush(f);यहाँ गिनती में जोड़ने के लिए स्वतंत्र ।

5. हास्केल (100 वर्ण)

import Control.Arrow
import Data.List
import Data.Tuple
import Control.Applicative

h p c=head.filter(p c.snd).zip[1..]
g c=swap.(id***fst.h(==)c).h elem c.lines
f p c=g c<$>readFile p

मुझे पंक्ति और स्तंभ खोजने के बीच दोहराया पैटर्न पसंद है (के माध्यम से सार h)।

6. लुआ (261 वर्ण)

function f(s,m,y,...)if s and m then for i,v in pairs(m)do
io.write(v,(" "):rep(#tostring(s[i])))end print()elseif s then
r=unpack f(s,{"",f(trouse,r(s))})f({f(nil,r(s))},s)elseif y then
return ("/%s%d\\"):format(m<y and"+"or"-",math.abs(m-y)),f(s,y,...)end end

मतभेदों की गणना करने के लिए कई वापसी मूल्यों और पुनरावृत्ति का उपयोग करता है। यह मुझे नमूना उत्पादन (बिल्कुल हर जगह रिक्त स्थान की सही मात्रा को जोड़ने) से मेल खाने के लिए कुछ वर्णों की लागत आई।

7. गो (307 वर्ण)

func f(p string)[]int{var l[]string
g,_:=os.Open(p)
H,M,s,m:=0,0,bufio.NewScanner(g),[][]int{{-1,-1,11},{-1,0,12},{-1,1,1},{0,-1,9},{0,1,3},{1,-1,7},{1,0,6},{1,1,5}}
for s.Scan(){l=append(l,s.Text())}
for _,a:=range m{if l[2+a[0]*2][2+a[1]*2]!=' '{M=a[2]}
if l[2+a[0]][2+a[1]]!=' '&&(H==0||M!=a[2]){H=a[2]}}
return[]int{H,M}}

शायद बहुत अधिक गोल्फ हो सकता है; मैं मुश्किल से जाना जानता हूँ।

8. कॉफीस्क्रिप्ट (+ नोड.जेएस) (223 चार्ट)

f=(p)->
 a=require('fs').readFileSync(p).toString().split "\n"
 U=(i,j)->a[i]?[j]and a[i][j]==' '
 for l,i in a
  for c,j in l
   m =
    "/":[i+1,j-1]
    "\\":[i+1,j+1]
    a:[i+1,j]
   return if U.apply(0,m[c]or m.a)
 1

एक सस्ता शॉट के बाद से मैं पहले से ही जेएस है। ओह अच्छा। उत्तर को इंगित करने के लिए undefinedएक मिथ्या मान (क्रमशः) या एक सत्य मान (क्रमशः) लौटाता है 1

9. बैश (254 चार्ट)

f(){
curl https://news.ycombinator.com/rss|
awk -Ftitle '{OFS="h1\76\n\74h1";ORS="";print substr(OFS,4);print$2,$4,$6,$8,$10,$12,$14,$16,$18,$20,$22,$24,$26,$28,$30,$32,$34,$36,$38,$40;print substr(OFS,0,3)}'|
while read l;do echo ${l//$1/$2};done|
tee $3
}

(पठनीयता के लिए जोड़े गए पाइप के बाद की नई लाइनें।) शेल के साथ प्रतिबंधों के आसपास काम करना मजेदार था। मुझे लगता है कि ऐसा करने का एक बेहतर तरीका है $2,$4,$6,..., लेकिन मैं यही चाहता था।


1
क्या कोई कारण है कि आपने वर्ण गणना में आयात / शामिल नहीं किया है? अन्यथा, महान काम!
जीआर

1
अरे हाँ, मैं यह उल्लेख करना भूल गया। चूँकि यह प्रश्न जोर देता है कि "आपको केवल फ़ंक्शन सबमिट करने की आवश्यकता है" मैं सोच रहा था कि मानक पुस्तकालयों सहित लागत को अनदेखा करना उचित होगा।
फायरफली

छेद 1 के लिएf=str.__mul__
सांप और कॉफी

@ सर्नकैन्डॉफी जो इसे प्रिंट नहीं करती है, दुर्भाग्य से। :(
फायरफली

5

स्कोर: 1,394.4

996 वर्ण + 40% जुर्माना

1. ग्रीनवे - हास्केल, 19 वर्ण

f c n=replicate n c

उपयोग:

> f "hello" 5
["hello","hello","hello","hello","hello"]

2. रफ - पीएचपी, 72 चार्ट

<?
function f($t,$s,$n){for($i=-1;$n--;$i=strpos($t,$s,++$i));return$i;}

3. करी - जावास्क्रिप्ट 1.8, 45 चार्ट

f=function(x,y)function(){for(i=x();i--;)y()}

4. स्पु - जे, 43 वर्ण

f=:3 :'((33+?(1+?2#100)$1#93){a.)fwrites y'

उपयोग:

f 'file.txt'

5. खजाना - जे, 64 चार्ट

f=:4 :0
a=.freads x
b=.1+a i.u:10
c=.a i.y
d=.<.c%b
e=.d,c-b*d
)

उपयोग:

'file.txt' f 'c'

6. पुल - पायथन, 166 वर्ण

def f(l):J=''.join;t=map;r=lambda n:' '*len(n);s=t(str,l);o=['/%+d\\'%(y-x)for x,y in zip(l,l[1:])];print J(t(J,zip(t(r,s),o)))+'\n'+J(t(J,zip(s,t(r,o)+['users'*0])))

7. समय - पायथन, 205 वर्ण

def f(p):
 s=open(p).read();a=[s[:12],s[18:],s[11:15],s[15:18]];z=[0]*3
 for l in(0,1):
  for c in'/|\\':z[a[l].count(c)]=('|/'.find(c)+6*l)%12or 12
  z[a[2+l].count('-')]=3+6*l
 print[z[1]or z[2],z[2]*5%60]

मान लें कि लाइनें पाँच वर्णों वाली चौड़ी होने के लिए स्थान गद्देदार हैं। दूसरे इंडेंटेशन स्तर के लिए टैब का उपयोग करता है।

8. टिम्बर - पायथन, 190 वर्ण

def f(p):g=open(p).readlines();C='\\/ ';return all(1-[x+2>len(g[y])or g[y][x+1]in C,x<1or g[y][x-1]in C,0,' '==g[y+1][x]][C.find(g[y][x])]for y in range(len(g)-1)for x in range(len(g[y])-1))

9. स्लैकर - पायथन, 192 वर्ण

import urllib
def f(s,r,p):F=open(p,'w');d=urllib.urlopen('http://x.co/3WYmQ').read()[37:];o,c='\x3c\x3e';exec"d=d[d.find(o+'t')+7:];F.write(o+'h1'+c+d[:d.find(o)].replace(s,r)+o+'/h1'+c);"*20

Url शॉर्टनर विचार के लिए Tyzoid का धन्यवाद।


आपके पाइथन से बहुत प्रभावित हैं, जिनसे बहुत कुछ सीखने को मिलता है।
13

1
@AsksAnyway धन्यवाद यदि आपने पहले से ही ऐसा नहीं किया है, तो इसे अवश्य देखें ।
जीआर

1
उम्म, निश्चित रूप से आपका (1) जे में है, नहीं? हो सकता है कि आप शीर्षक / नमूना रन अपडेट करना भूल गए हों।
FireFly

@FireFly हाँ, मेरी गलती है। मैंने स्कोरिंग और उपयोग को अद्यतन किया लेकिन वास्तविक समाधान बदलना भूल गया।
जीआर

4

संपादित करें: सोचें कि मैं इसे केवल इस प्रकार प्रस्तुत करूंगा: 1290 कुल, कोई भाषा दोहराता नहीं है।

ग्रीनवे, सी # 53

void g(string s,int n){while(n-->0)Console.Write(s);}

मैंने # 1 और # 9 के साथ भाषाओं को स्वैप करने का फैसला किया। पूरी तरह से 30 के लायक यहाँ सैकड़ों बाद में।

कहीं न कहीं, पाइथन 59

मुझे वास्तव में एक आसान समस्या पर इतनी अच्छी भाषा का उपयोग नहीं करना चाहिए था। इसके अलावा, यह किसी भी भाषा के इंडेक्सऑफ फ़ंक्शंस का हिस्सा नहीं है? मुझे हमेशा इसकी ज़रूरत लगती है ...

def f(t,s,n):return sum(map(len,t.split(s))[:n+1])+n*len(s)

डिनर के लिए करी, लिस्प 61

मैंने कॉलेज में एक सप्ताह से लिस्प को नहीं छुआ है ...।

(defun f (c g)(loop for i from 1 to(funcall c)do(funcall g)))

बोले, बाश / खोल के बर्तन १०२

मेरा बैश-फू कभी भी शुरू करने के लिए अच्छा नहीं था। मैं इस एक के साथ बाद में बेला हूँ। BTW यदि आप इसे तेजी से खत्म करना चाहते हैं, तो इसे / dev / urandom पर स्विच करें।

f(){
c=$(($RANDOM%9+9))
for i in $(seq $c);do
echo `tr -cd [:print:]</dev/random|head -c$c`>>$1
done
}

ट्रेजर हंट, सी 113

संभवतः अधिक सी अनुकूल समस्याओं में से एक। मैंने "रिटर्न दो पूर्णांकों" की व्याख्या की, एक तर्क के रूप में रिटर्न एरेस पॉइंटर लिया। चेतावनी? क्या चेतावनियाँ? एक int * एक FILE * = p जितना ही अच्छा है।

void f(int*p,int c,int*r){int*f,t;*r=r[1]=0;f=fopen(p,"r");while(c-(t=fgetc(f))){*r=t-'\n'?*r+1:0;r[1]+=*r?0:1;}

क्वाई नदी पर पुल, पर्ल 207

मैंने इसे लिखते हुए पर्ल सीखना शुरू किया। (पहले से कहीं ज्यादा देर!) मैं रेगेक्स हीरोइक करने की चाहत में आया था, इसलिए मैं पुल की दोनों परतों को एक साथ स्ट्रिंग बनाता हूं, फिर दो अलग-अलग लाइनों को बनाने के लिए स्पेस रिप्लेसमेंट के साथ रेजेक्स का उपयोग करता हूं।

sub f{@trouse=0..$#_-1;foreach $i(@trouse){$r.=sprintf("%d/%+d\\",$_[$i],$_[$i+1]-$_[$i])}$r.=$_[$#_]."\n";print$r=~s/(^|\\)(\d+)(\/|$)/$1.' 'x length($2).$3/egr;print$r=~s/(\/[+-]\d+\\)/' 'x length($1)/egr}

समय मक्खियों जब आप गोल्फ, जावा 297 खेल रहे हैं

आप केवल जावा ट्रे बनाने के लिए बहुत कुछ कर सकते हैं ... यह मानता है कि घड़ी अंतरिक्ष में गद्देदार है इसलिए प्रत्येक पंक्ति 5 स्थान लंबी है।

public boolean p(int r,int m,String s){int c[]={1,1,0,-1,-1,-1,0,1};return s.charAt(6*c[(r+6)%8]*m+14+c[(r)%8]*m)!=' ';}
public int[]time(String c){int h=9,m=0,t[]={3,5,6,7,9,11,12,1};for(int i=0;i<8;i++)if(p(i,1,c))if(p(i,2,c))m=i;else h=i;if(h==9)h=m;m=(t[m]*5)%60;h=t[h];return new int[]{h,m};}

इमारती लकड़ी! जावास्क्रिप्ट 201

यह क्रोम के कंसोल में चलता है। मैं कहीं और कोई गारंटी नहीं देता = पी। इसके लिए आवश्यक है कि लाइनों को सबसे लंबी लाइन की लंबाई तक स्पेस पेड किया जाए। मुझे ऐसा लगता है कि यह ASCII कला का एक उचित अनुरोध है।

function f(s) {s=s.split("\n")
d={};m={'/':-1,'\\':1};r=1
s.forEach(function(x){t={}
for(i=0;i<x.length;i++){if(x[i]!=' '){j=m[x[i]]?i+m[x[i]]:i
t[j]=1}}for(n in d){if(x[n]==' '){r=0}}d = t})
return r}

स्लेकर न्यूज़, रूबी 197

def s(f,s,t)
l=60.chr
r=62.chr
IO.write(f,l+"h1"+r+URI.parse("https://news.ycombinator.com").read().split('mhead')[0,20].map{|x|x[0,x.length-19].split(r).last.sub(s,t)}.join(l+"/h1#{r+l}h1"+r))
end

न केवल यह एक महान जवाब है, यह एक महान पढ़ने के लिए भी बनाता है। बहुत बढ़िया!
दान प्रिंस

धन्यवाद, मुझे लगता है कि यह अब थोड़ा कम दिलचस्प है कि मैंने माणिक और सी # की अदला-बदली की। .Net के
इनसिन

4

थोड़ी सी भाषा को छूने में मज़ा आता था ...

अनावश्यक रिक्त स्थान / newlines को हटाने के बाद प्राप्त चरित्र मायने रखता है लेकिन प्रस्तुत करना ज्यादातर पठनीय रखा गया है। चूँकि प्रश्न फ़ंक्शंस और प्रोग्राम्स का मिश्रण है, जिसमें मैंने केवल उस फ़ंक्शन के निकाय को शामिल किया है जहाँ आवश्यक हो ... इसके अलावा "वापसी" का अर्थ क्या है के साथ कुछ स्वतंत्रता ली गई है ...

कुल ~ १ 17१ ९

1- पायथन (~ 20)

def f(c, n):
    print c*n

2- सी (~ 109)

int f(char*t,char*s,int n){int i;char*q=t;int l=strlen(s);for(i=0;i<n;++i){t=strstr(t, s)+l;}return(t-q-l);}

पठनीय संस्करण:

#include <string.h>

int f(const char *t, const char *s, int n)
{
  int i;
  char *start = t;
  int l = strlen(s);
  for(i = 0; i < n; ++i)
  {
    t = strstr(t, s) + l;
  }
  return(t - start - l);
}

3- जावास्क्रिप्ट (~ 56)

function(x, y) {return function() {for(i=0; i<x(); i++) y();}}

4- Rexx (~ 136)

f: Procedure
  Parse arg p
  w = random(1, 9)
  h = random(1, 9)
  Do y = 1 to h
    Do x = 1 to w
      Call CHAROUT p, d2c(random(32, 99))
    End
    Call LINEOUT p, ""
  End

5- स्काला (~ 290)

def f(p: String, c: Char) {
  def sc(w: String, c: Char, x: Int, y:Int ): Boolean =
    {
      if(w.isEmpty) false else
      if(w.head==c) {println(x, y); true} else sc(w.tail, c, x+1, y)
    }
  def sr(w: Array[String], c: Char, x: Int, y: Int)
  {
    if(!sc(w.head, c, 0, y)) sr(w.tail, c, 0, y+1)
  }
  sr(io.Source.fromFile(p).mkString.split('\n'), c, 0, 0)
}

6- सी ++ (~ 355)

void b(list<int> l) // trouser+s
{
  auto i = l.begin();
  auto j = i;
  j++;
  list<int> d;
  while(j!=s.end()) d.push_back(*j++ - *i++);
  j = d.begin();
  ostringstream o[2];
  for(auto i : l)
  {
    while(o[0].tellp()!=o[1].tellp()) o[1] << " ";
    o[1] << i;
    if(j != d.end())
    {
      while(o[0].tellp()!=o[1].tellp()) o[0] << " ";
      o[0] << "/" << (*j>=0 ? "+" : "") << *j++ << "\\";
    }
  }
  cout << o[0].str() << endl << o[1].str() << endl;
}

7- गो (~ 301)

ध्यान दें कि घड़ी को गद्देदार होना चाहिए (अर्थात सभी लाइनें समान लंबाई की हैं)।

func f(p string)(h int,m int) {
  var a=[8]int {0, 2, 4, 12, 16, 24, 26, 28}
  var b=[8]int {7, 8, 9, 13, 15, 19, 20, 21}
  var d=[8]int {11, 12, 1, 9, 3, 7, 6, 5}
  h=9
  c, e := ioutil.ReadFile(p)
  if e==nil {
    for i:=range a {
      if c[a[i]]>32 {
        m=i
      }
    }
    for i:= range b {
      if c[b[i]]>32 {
        if i!=m {
          h=i
        }
      }
    }
    if h==9 {
      h=m
    }
    h=d[h]
    m=d[m]*5%60
  }
  return
}

8- रूबी (~ 259)

def f(p)
  a,b = File.read(p).split(/\n/).reverse,Hash.new(1)
  a.each_with_index {
    |l,i|
    l.split("").each_with_index {|k,j|
      case k
        when ' '
          b[j] = 0
        when '/'
          b[j] = b[j]|b[j-1]
        when '\\'
           b[j] = b[j]|b[j+1]
      end
      unless k==' '
        if b[j]==0
          return 0
        end
      end
    }
  }
  return 1
end

9- बैश / यूनिक्स हैक (~ 193)

wget -qO - http://news.ycombinator.com/rss | tr "\074\076" "\n" | grep -B1 /title | awk 'NR % 3 == 1' | head -21 | tail -20 | sed 's/$1/$2/' | awk '{ print "\074h1\076" $0 "\074/h1\076"}' > $3

1
अच्छा है, लेकिन आपके # 9 कोण ब्रेसिज़ का उपयोग करते हैं, जो उस छेद के नियमों के खिलाफ है।
रिक स्मिथ-उन्नाव

@ रीचर्डस्मिथ: धन्यवाद ... मुझे उस एक को ठीक करना होगा।
गाइ सीरटन

1
छेद # 3 पर सावधान, इसमें कोई गारंटी नहीं है कि x () प्रत्येक फ़ंक्शन कॉल पर एक ही नंबर लौटाएगा!
टाइजॉइड

@ टायज़ॉइड: मैं इसे कैप्चर करने पर विचार कर रहा था ... आप सही हैं कि मेरी कल्पना / कल्पना की व्याख्या है।
गाइ सिरटन

2

यहाँ वास्तव में गोल्फ नहीं है, लेकिन यहाँ कुछ Tcl है, क्योंकि भाषा को और अधिक प्यार की आवश्यकता है:

set holes {
    greenway
    rough
    curry
    spew
    hunt
    bridge
    time
    timber
    slacker
}

proc greenway {c n} {
    puts [string repeat $c $n]
}

proc rough {t s n} {
    set i [string first $s $t] ;# a bit wet
    while {[incr n -1]} {
        incr i [string first $s $t $i]
    }
    return $i
}

proc curry {x y} {
    set n [uplevel 1 $x]
    set body [string repeat "$y;" $n]
    return [list apply [list args $body]]
}

proc spew {p} {
    set w [expr {int(rand()*80)}]
    set h [expr {int(rand()*80)}]
    set f [open $p w]
    for {set y 0} {$y<$h} {incr y} {
        set ln ""
        for {set x 0} {$x<$h} {incr x} {
            append ln [format %c [expr {int(rand()*96+32)}]]
        }
        puts $f $ln
    }
    close $f
}

proc hunt {p c} {
    set f [open $p r]
    set y 0
    while {[gets $f line]>=0} {
        set x [string first $f $c]
        if {$x != -1} {
            return [list $x $y]
        }
        incr y
    }
}

proc bridge {l} {
    set l [lassign $l m]
    set top ""
    set btm $m
    foreach n $l {
        set t "/[expr {$n>$m?"+":""}][expr {$n-$m}]\\"
        append top "[string repeat \  [string length $m]]$t"
        append btm "[string repeat \  [string length $t]]$n"
        set m $n
    }
    # trousers
    return $top\n$btm
}

proc time {p} {
    set f [open $p r]
    while {[gets $f line] >= 0} {
        set line [format %-.5s $line]
        lappend c [split $line {}]
    }
    close $f
    foreach {x y h} {
        -1 -1  0
         0 -1  1
         1 -1  3
         1  0  5
         1  1  6
         0  1  7
        -1  1  9
        -1  0 11
    } { 
        set 2x x; incr 2x $x
        set 2y y; incr 2y $y
        if {[lindex $c $2y $2x] != " "} {
            set hh $h
        } elseif {[lindex $c $y $x] != " "} {
            set mm $h
        }
    }
    if {![info exists $mm]} {
        set mm $hh
    }
    set mm [expr {$mm*5}]
    if {$hh == 0} {set hh 12}
    list $hh $mm
}

proc timber {p} {
    set f [open $p r]
    set must {}
    while {[gets $f line] >= 0} {
        set line [format %-.5s $line]
        foreach i $must {
            if {[string index $line $must] eq " "} {
                close $f
                return false
            }
        }
        set must {}
        set i 0
        foreach c [split $line] {
            switch $c {
                "\\" {lappend must [expr {$i+1}]}
                "/"  {lappend must [expr {$i-1}]}
                " "  { }
                default  {lappend $must $i}
            }
            incr i
        }
    }
    close $f
    return true
}

proc slacker {s r p} {
    package require tdom
    set f [open $p w]
    set h [::http::geturl https://news.ycombinator.com/]
    set html [string trim [::http::data $h]]
    ::http::cleanup $h
    set dom [dom parse $html]
    lappend map , [string index $html 0]
    lappend map . [string index $html end]
    set root [$dom documentElement]
    foreach n [$root selectNodes {//td[@class=title]/a}] {
        set x [$n text]
        set x [string map [list $s $r] $x]
        puts $f [string map $map ",h1.$x,/h1."]
    }
    close $f
}

ज्यादातर अप्रकाशित क्योंकि आधे घंटे में इन गद्यों को लिखना इंजिनियर गोल्फ कोड को ठीक से आज़माने की तुलना में कहीं अधिक दिलचस्प है। का आनंद लें!


2

इनमें से 1/2 पर काम करने के लिए केवल समय था। आप उन्हें एक फंक्शन के रूप में चाहते हैं, न कि एक लाइनर के रूप में। तो ये सभी कार्य हैं। फ़ंक्शन के नीचे परीक्षण कोड। पर्ल में।

हरित मार्ग:

sub f{print$_[0]x$_[1]}

#test
&f("abc",5);

किसी न किसी तरह:

sub f{$i=-1;$n=$_[2];do{$i=index$_[0],$_[1],$i+1;$n--}while($n>0 && $i>-1);print$i+1}

#test
&f("abcefgacefgabcefgabcefgabcefg","cef",4);

करी:

use Sub::Curried;
curry f($x,$y){$q=0;foreach(1..&$x){$q=&$y};return $q;}

#test
sub fy { return 1;}
sub fx { return 10;}
print&f(\&fx,\&fy);

वमन:

use Crypt::PRNG qw(random_string_from irand);
sub f{open($o,">$_[0]");$m=(irand)%10+1;map{printf $o "%s\n",random_string_from(['A'..'z'],$m)}(1..$m)}

#test
&f('/tmp/t');

खजाना:

sub f{open($i,"<$_[0]");$x=$y=0;@l=<$i>;while($y<=$#l){$x=1+index$l[$#l-$y],$_[1];@a=($x,$y+1)if($x);$y++;}return\@a}

#test
@b=@{&f('/tmp/t','f')};
print join(",",@b);

मैं कल 6-9 पर काम करूंगा।


2

विप। ध्यान दें, चरित्र मायने रखता है '\n'और के कारण बंद हो सकता हैwc

[१ ग्रीनवे] माइंडफ * सीके, ५४ अक्षर

>>+[+>,-]<[<]>,<<++++++++[>>------<<-]>>[>[.>]<[<]>-]

उपयोग: कोड लिखे जाने के बाद, अपनी स्ट्रिंग इनपुट करें, और अपने स्ट्रिंग को ^ a (ctr + a) के साथ समाप्त करें, फिर तुरंत बाद अपना नंबर दर्ज करें।

एक चेतावनी: दी गई संख्या केवल 0-9 से होनी चाहिए (यदि आप एक बड़ा चाहते हैं, तो आपके द्वारा इनपुट किए जाने वाले किसी भी वर्ण का एएससीआई मूल्य -48 n)

स्क्रीनशॉट:

स्क्रीनशॉट

[3 डिनर के लिए करी] जावास्क्रिप्ट, 59 वर्ण

function f(x,y){return function(){n=x();while(--n!=0)y();}}

[४ स्पू] बैश, ५६ अक्षर

f(){ dd if=/dev/urandom of="$1" count=$((RANDOM%30+2));}

[7 टाइम मक्खियाँ जब आप गोल्फ खेल रहे हों] C, 334 वर्ण (412 मैक्रो परिभाषा के साथ)

#define E(A) else if(s[A]==
#define G(A) else if(A)m=
#define M(A) &&m!=A)h=A
int (*f(char* s)){short h=0,m=0;if(s[0]=='\\')m=11;G(s[2]=='|')12;G(s[4]='/')1;G(s[11]=='-')9;G(s[15]=='-')3;G(s[22]=='/')7;G(s[24]=='|')6;G(s[26]=='\\')5;if(s[7]=='\\'M(11);E(8)'|'M(12);E(9)'/'M(1);E(12)'-'    M(9);E(14)'-'M(3);E(18)'/'M(7);E(19)'|'M(6);E(20)'\\'M(5);int* i=malloc(sizeof(int)*2);i[0]=(h==0)?m:h;i[1]=m*5;return i;}

नोट: यह फ़ंक्शन एक पॉइंटर को दो आयामी पूर्णांक सरणी में लौटाता है, जैसे स्वरूपित: {3, 55} (3 घंटे पर घड़ी की स्थिति के लिए, 11 मिनट पर)

[९ स्लेकर न्यूज़] पीएचपी, २४६ अक्षर

function f($a,$b,$c){$t=file_get_contents("http://x.co/3WQoY");$g=explode('d class="t',$t);$f=fopen($c,"w");for($i=1;++$i!=count($g)-10;){$e=explode("\x3e",$g[$i]);fwrite($f,"\x3ch1\x3e".str_replace($a,$b,s    ubstr($e[2],0,-3))."\x3c/h1\x3e\n");}}

BASH + AWK, 218 वर्णों में अलग / मूल कार्यान्वयन

f(){ wget -qO- x.co/3WQoY|grep "e_"|awk '{n=split($0,a,"d class=\"t");for(q=1;++q!=n-10;){split(a[q],b,"\x3e");m=substr(b[3],0,index(b[3],"\x3c/")-1);gsub("'"$1\",\"$2"'",m);print "\x3ch1\x3e"m"\x3c/h1\x3e"    }}'>"$3";};

2

1654

1. ग्रीनवे (हास्केल - 37)

f x y=do print(concat(replicate x y))

2. कहीं न कहीं (गणितज्ञ - 43)

f[t_,s_,n_]:=StringPosition[t, s][[n+1, 1]]

3. रात के खाने के लिए करी (लिस्प - 58)

(defun f(x y)(lambda()(dotimes(c(funcall x))(funcall y))))

4. स्पू (मतलाब / सप्तक - 83)

function x(f)
    save f arrayfun(@char,randi(255,randi(255),randi(255)))
endfunction

5. ट्रेजर हंट (सी - 176)

char* f(char* s,char c){FILE* n;char* r;int i=0,j=0,k=0;n=fopen(s,"r");while(!feof(n)){k=fgetc(n);if(k==(int)c)break;j++;if(k=='\n'){i++;j=0;}}sprintf(r,"%d %d",i,j);return r;}

6. Kwai नदी पर पुल (रूबी - 192)

def f(l)
    trouse="\n%s"
    rs = l[0].to_s
    for i in 1..l.length-1
        s = "/%+d\\"%(l[i]-l[i-1])
        print " "*l[i-1].to_s().length+s
        rs += " "*s.length+"%d"%l[i]
    end
    puts trouse%rs
end

7. समय मक्खियों जब आप गोल्फ खेल रहे हैं (Node.js - 406)

function f(n){var g,h,m,q;fs.readFile(n,'ascii',function(e,d){l=d.split('\n');g=function(x,y){try{return l[x][y].trim()&&1;}catch(e){return 0;}};h=g(0,0)*11||g(0,2)*12||g(0,4)*1||g(2,0)*9||g(2,4)*3||g(4,0)*7||g(4,2)*6||g(4,4)*5;m=(g(1,1)&&h!=11)*55||(g(1,2)&&h!=12)*0||(g(1,3)&&h!=1)*5||(g(2,1)&&h!=9)*45||(g(2,3)&&h!=3)*15||(g(3,1)&&h!=7)*35||(g(3,2)&&h!=6)*30||(g(3,3)&&h!=5)*25||h*5%60;return [h,m];});}

8. इमारती लकड़ी! (गो - ३२ ९)

func f(p string)bool{
    x,_:=ioutil.ReadFile(p)
    b:=strings.Split(string(x),"\n")
    for j:=0;j<len(b)-2;j++{
        for i:=0;i<len(b[j]);i++{
            r,o:=1,0
            switch string(b[j][i]){
            case " ": continue
            case "/": r,o=0,-1
            case "\\": r,o=0,1
            }
            if i+o<len(b[j]) && b[j+r][i+o]==' ' {
                return false
            }
        }
    }
    return true
}

9. स्लेकर न्यूज़ (पायथन - 330)

def f(s,r,p):
    w=urllib2.urlopen('http://news.ycombinator.com')
    a=[l.get_text() for l in BS(w).body("a") if l.find_parent("td", class_="title")]
    t=lambda x:u"\x3c{}\x3e{}\x3c/{}\x3e".format(x,'{}',x)
    m=''.join(t("h1").format(l.replace(s,r)) for l in a[:20])
    with open(p,'w') as h:
        h.write(t("html").format(m).encode('utf8'))

1

मैं एक धोखेबाज़ हूँ और मैंने अभी तक सभी 9 छेद नहीं खेले हैं । बहरहाल, यहाँ मेरा छेद 8, "टिम्बर" समाधान पर्ल (149 चार) में है।

मेरे एक सहकर्मी ने इसे काम में चुनौती के रूप में रखा। हम इसके साथ मज़े कर रहे हैं, विशेष रूप से मेरे लिए, क्योंकि मेरे पास अब तक का सबसे कम सममूल्य समाधान है!

हमारे नियम यह थे कि यह एक ऐसी अकेली लिपि होनी थी, जिसका उत्पादन trueया falseउसके बाद एक नई पंक्ति में होना था STDOUT, और यह कि कोई भी "शेबग" ठीक नहीं था।

नीचे "लघु" समाधान है। मैं भी एक "डाल सार उसी के" है कि गैर- "minified" कोड और (अक्सर tortuously लंबे) मेरी दृष्टिकोण के पीछे तर्क के स्पष्टीकरण भी शामिल है।


$r=tru;open F,pop;while(<F>){y/0/6/;s/^|\s|$/0/g;s#\\(?=0)|(?<=0)/|[^\\/0]#6#g;@n=split//;for(0..@n){!$n[$_]&&$l[$_]==6?$r=fals:1}@l=@n;}print$r,'e
'

0

मैं प्रतियोगिता नियम मेह के अनुसार इसे संशोधित करने के लिए बहुत आलसी हूं, लेकिन यह ठीक काम करता है ...

from numpy import *
import sys

def greenway(c,n):
    print c*n

def somewhereintherough(t,s,n):
    i=-1
    count=0
    while(count<n):
        i = t.find(s,i+1)
        count+=1
    return i

def curryfordinner(x,y):
    def g():
        for i in range(x()):
            y()
    return g

def spew(p):
    f = open(p,'w')
    n = random.randint(1,28)  
    for i in range(n):
        if(i>0):
            f.write('\n')
        str1 = ''.join([chr(random.randint(32,126)) for _ in range(n)])
        f.writelines(str1)
    f.close()
    print "Grid size: ",n,'x',n

def treasurehunt(p,c):
    f = open(p,'r')    
    arr = f.readlines()
    n = len(arr)
    f.close()
    f = open(p,'r')
    found=False
    for i in range(n):
        line = f.readline()
        #print line
        loc = line.find(c)
        if(loc!=-1):
            print c,"found in",p,"at",i,loc
            found=True
            break
    if(not found):
        print c,"not in",p
    f.close()

def bridgeontheriverkwai(l):
    str_list = []
    for i in range(len(l)-1):
        sign = '+' if l[i+1]-l[i]>0 else '-'
        str_1 = '/'+sign+str(abs(l[i+1]-l[i]))+'\\'
        sys.stdout.write(' '*(len(str(l[i])))+str_1)
        str_list.append(str_1)
    print
    for i in range(len(l)):
        if i<len(l)-1:
            print str(l[i])+' '*(len(str_list[i])-1),
        else:
            print l[i]

def timeflieswhenyoureplayinggolf(p):
    f = open(p,'r')
    #clock = [[0]*5,[0]*5,[0]*5,[0]*5,[0]*5]
    line1 = f.readline()
    line2 = f.readline()
    line3 = f.readline()
    line4 = f.readline()
    line5 = f.readline()
    h = 0
    m = 0
    if line1.find('\\')!=-1:
        h = 11
        m = 55
    elif line1.find('|')!=-1:
        h = 12
        m = 0
    elif line1.find('/')!=-1:
        h = 1
        m = 5
    elif line5.find('/')!=-1:
        h = 7
        m = 35
    elif line5.find('|')!=-1:
        h = 6
        m = 30
    elif line5.find('\\')!=-1:
        h = 5
        m = 25
    elif line3[4]=='-':
        h = 3
        m = 15
    elif line3[0]=='-':
        h = 9
        m = 45

    if line2[1]=='\\' and h!=11:
        m = 55
    elif line2[3]=='/' and h!=1:
        m = 5
    elif line3[1]=='-' and h!=9:
        m = 45
    elif line3[3]=='-' and h!=3:
        m = 15
    elif line4[1]=='/' and h!=7:
        m = 35
    elif line4[3]=='\\' and h!=5:
        m = 25
    elif line2[2]=='|' and h!=12:
        m = 0
    elif line4[2]=='|' and h!=6:
        m = 30

    print h,m


def timber(p):
    f = open(p,'r')
    linecount=0
    line_size = 0
    line = f.readline()
    while(line):
        linecount+=1
        line_size = max(line_size,len(line)-1)
        line = f.readline()
    block = array([[0]*line_size]*linecount)
    f.seek(0)
    for i in range(linecount):
        line = f.readline()
        for j in range(len(line)-1):
            if(line[j]==' '):
                block[i][j]=0
            elif(line[j]=='/'):
                block[i][j]=1
            elif(line[j]=='\\'):
                block[i][j]=2
            else:
                block[i][j]=3
    f.close()
    for i in range(linecount):
        for j in range(line_size):
            if(block[i][j]==1 and j!=0 and block[i][j-1]==3):
                block[i][j]=4
        for j in range(line_size-1,0,-1):
            if(block[i][j]==2 and j!=line_size-1 and block[i][j+1]==3):
                block[i][j]=4
    for i in range(linecount):
        for j in range(line_size):
            if(block[i][j]==3 and i<linecount-1 and block[i+1][j]==0):
                print "Unsafe Structure"
                return
    print "Safe Structure"

def slackernews(s,r,p):
    import urllib2
    response = urllib2.urlopen('https://news.ycombinator.com')
    html = response.read()
    titles_list = []
    ix = -1
    count = 0
    index_list =  []
    while(count<21):
        ix = html.find("<td class=\"title\"",ix+1)
        index_list.append(ix)
        count+=1
    for i in range(len(index_list)-1):
        line = html[index_list[i]:index_list[i+1]]
        line = line[line.find("a href"):]
        start = line.find('>')
        end = line.find('<')
        titles_list.append(line[start+1:end])
    f = open(p,'w')
    for title in titles_list:
        title = title.replace(s,r)
        f.write('<h1>'+title+'</h1>')
    print "Done writing, Check : ",p
    f.close()


greenway('test!',2)
s='this is a cat. this is a dog. dog is an animal, animal is a beast in disguise.'
t='is'
ix=somewhereintherough(s,t,8)
print ix,s[ix:]
def x():
    return 4
def y():
    print ' !y_called! '
g = curryfordinner(x,y)
g()
spew('test.dat')
treasurehunt('test.dat','a')
bridgeontheriverkwai([-7,-22,6,9])
timeflieswhenyoureplayinggolf('clock.dat')
timber('block.dat')
slackernews('a','b','slacker.html')

0

पहला कोड गोल्फ! (एक काम अभी भी प्रगति में है...)

1. ग्रीनवे

भाषा: अजगर 3.2.3
फ़ाइल का आकार: 23 बाइट्स
कोड:

def f(c,n): print(c*n)

3. रात के खाने के लिए करी

भाषा: अजगर 3.2.3
फ़ाइल का आकार: 64 बाइट्स
कोड:

def f(x,y):
    def g():
        for i in [1]*x(): y()
    return g

अगर मैं सही तरीके से समझ पाया तो आपको एक ही भाषा का उपयोग करने के लिए दो बार अंक दिए जाएंगे। यदि आप इसे केवल मनोरंजन के लिए कर रहे हैं, तो कोई बात नहीं।
होशो २५०

@ user2509848 मैं 9 गोल्फ-सक्षम भाषाओं को नहीं जानता, इसलिए मुझे कुछ डॉक करना होगा। :( सिर के लिए धन्यवाद, हालांकि!
apnorton

रूबी, पर्ल, गोल्फस्क्रिप्ट, और गणितज्ञ अक्सर विजेता होते हैं
होशो २५०

मैं केवल सी ++ जानता हूं, कुछ जावा और कम पायथन 3.2.3 के साथ। HTML और CSS के अलावा और कुछ नहीं (जिसका उपयोग वैसे भी नहीं किया जा सकता है (CSS))।
होशे २५०

0

यहां एक और काम प्रगति पर है, और मैं काम पर हूं इसलिए बाद में वापस आऊंगा।

रूबी में ग्रीनवे (14 अक्षर, #alligator के साथ 24 ), के साथ कॉल करेंf.(c, n)

f=->c,n{p c*n}#alligator

स्क्रीनशॉट

हरित मार्ग

कहीं न कहीं कॉफीस्क्रिप्ट में (38 अक्षर)

f=(t,s,n)->t.split(s,n).join(s).length

स्क्रीनशॉट

कहीं न कहीं रफ भी है

जावास्क्रिप्ट में डिनर के लिए करी (54 अक्षर)

f=function(x,y){return function(){for(i=x();i--;)y()}}

स्क्रीनशॉट

डिनर के लिए करी

वमन PHP में (111 अक्षर)

यह short_open_tagसक्षम करने के लिए PHP कॉन्फ़िगरेशन फ़ाइल में आवश्यक है। अन्यथा उद्घाटन सीमांकक होना चाहिए <?php, @प्रतीकों का उपयोग PHP_NOTICEत्रुटियों को चुप करने के लिए किया जाता है randजो उद्धरणों में संलग्न होने से बचने के लिए फेंक दिए जाते हैं , और स्पष्ट रूप से $sचर घोषित नहीं करने के लिए । यह दोनों अक्ष पर 4 से 30 वर्णों के बीच ascii वर्णों का एक वर्ग ग्रिड उत्पन्न करेगा।

<? @$r=rand;$x=$r(4,30);for($i=$x*$x;--$i;){@$s.=$i%$x!=0?chr($r(33,126)):"\n";}file_put_contents($argv[1],$s);

स्क्रीनशॉट

वमन


वह टर्मिनल आपके उपयोग का क्या है?
अलेक्जेंडर क्रैग

0

1. ग्रीनवे (पायथन 2: 20)

def a(x,n):print x*n

उदाहरण इनपुट: a("asdf",3)-> स्ट्रिंग ( asdfasdfasdf)

2. कहीं न कहीं (पायथन 2: 47)

def b(t,s,n):return len(s.join(t.split(s)[:n]))

उदाहरण इनपुट: b("1,2,333,4,5,6",",",3)-> int (7)

3. डिनर के लिए करी (जावास्क्रिप्ट: 61)

function c(a,b){d=a();return function(){while(d){d--;b()}};};

उदाहरण इनपुट: function z(){ return 3; }; function y(){ console.log( '1' ) }; myfunc = c(z,y); myfunc();-> string(1)कंसोल में लॉग ... 3 बार।

ऐनक के अनुसार, cएक फ़ंक्शन देता है, और वास्तव में उस फ़ंक्शन को निष्पादित नहीं करता है।

4. Spew (C ++ 11: 171)

#include<fstream>
using namespace std;void d(string f){ofstream o;int i=rand()%10;int j=rand()%10;o.open(f);for(int x=0;x<i;x++){for(int y=0;y<j;y++){o.put(rand()%256);}}}

वास्तव में यह परीक्षण नहीं किया गया है, लेकिन काम करना चाहिए।


0

पठनीयता के लिए कुछ इंडेंटेशन बरकरार है लेकिन वर्णों की गिनती करते समय इसे निकाल लिया गया। कुल 1227 के आसपास है । या नहीं, मैं एक समस्या भूल गया। 1486 1465 वर्ण।

1. MIPS ASM (55 वर्ण)

#a0 : the address of the null terminated string.
#a1 : the repetition count.
f:
li $v0,4
syscall
addi $a1,$a1,-1
bne $a1,$0,f
jr $ra

2. योजना (52 वर्ण)

(define (f t s n)(list-ref(string-search-all s t)n))

3. एफ # (39 वर्ण)

let f x y=fun()->for i in 1..x() do y()

4. पॉवर्सशेल (133 वर्ण)

Function f($p){
$r=(Get-Random)%100
$z="";for($b=$r*$r;$b -gt 0;$b--){$z+=[char](33+(Get-Random)%94);if($b%$r -eq 1){"$z">>$p;$z=""}}
}

5. सी ++ ( 184 152 वर्ण)

#include <istream>
#include <string>
int*f(std::string p,char c){int*x=new int[2]();std::ifstream i(p);for(;i>>p;x[1]++)if((x[0]=p.find(c))>0)return x;}

6. सी # ( 291 282 चार्ट)

static void f(List<int> l)
{
    var z = "";
    var o = l[0].ToString();
    for (int j = 1; j < l.Count;j++)
    {
        int p = l[j-1];
        int i = l[j];
        var q = "/"+(i-p<0?"":"+")+(i-p).ToString()+"\\";
        o += new String(' ',q.Length)+i.ToString();
        z+=new String(' ',p.ToString().Length)+q;
    }
    Console.Out.Write(z+"\n"+o);
}

7. हास्केल ( 318 306 वर्ण)

मैं हास्केल को आज़माने का बहाना ढूंढ रहा था। मुझे लगा कि संख्याओं के संयोजन के माध्यम से पदों की सूची तैयार करके मैं चतुर था, लेकिन वर्णों की संख्या के साथ मुझे यह मुश्किल लग सकता था कि लानत है। ओह अच्छा। कोड अत्याचारी है, लेकिन वैसे भी लिखना मजेदार था।

संपादित करें: फिक्स्ड तो यह सही ढंग से मिनट रिटर्न।

w i s=[s!!(j!!1)!!(j!!0)/=' '|j<-mapM(const i)[1,2],j/=[2,2]]
k[e,r](i,o,n)|i&&o=[e, n]|i&&not o=[n, r]|not$o||i=[e, r]
g s=let[h,m]=foldl k[0,0](zipWith3(\x y z->(x,y,z))(w[1,2,3]s)(w[0,2,4]s)[11,9,7,12,6,1,3,5])in let u=mod(m*5)60 in if h==0 then[m,u]else[h,u]
f p = do
  s<-readFile p
  return$g$lines s

8. लुआ (259 वर्ण)

मुझे यह जानकर आश्चर्य हुआ कि स्ट्रिंग्स ऐरे स्टाइल इंडेक्सिंग का समर्थन नहीं करते थे, इसलिए मुझे उप पर निर्भर रहना पड़ा।

function f (p)
    s=' ' g=''
    for l in io.open(p):lines() do l=l..s:rep(#g-#l) for v=1,#g do
        d=({['/']=v-1,['\\']=v+1,[s]=0})[g:sub(v,v)] or -1
        if l:sub(v,v)==s and (d<0 or d>0 and g:sub(d,d)==s and l:sub(d,d)==s) then
            return false
        end
    end g=l end
    return true
end

9. पायथन (187 वर्ण)

Url शॉर्टनर के लिए grc / Tyroid के लिए धन्यवाद।

import urllib2
def f(s,r,p):[open(p,'a').write('\074h1\076'+i.split("\074")[0].replace(s,r)+'\074/h1\076') for i in urllib2.urlopen("http://x.co/3WYmQ").read().split("\074title\076")[2:]]
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.