Thử thách 9 lỗ [đã đóng]


65

Thử thách 9 lỗ

  • 9 mã thách thức golf với độ khó khác nhau.
  • Hình phạt cho việc sử dụng cùng một ngôn ngữ nhiều lần.
  • Câu hỏi sẽ được cập nhật với phân tích cú pháp, nhà vô địch lỗ và người chiến thắng cúp.

    Điều này xuất phát từ một cuộc thi mà tôi có với một số người bạn, nó không phải là định dạng thông thường, nhưng tôi hy vọng một số bạn sẽ đánh giá cao sự khác biệt của nó. Những thách thức, quy tắc và danh hiệu dưới đây.

Lỗ

  1. Đường xanh (24)

    f(c:string, n:integer)
    In một dòng chứa các ntrường hợp của c.

  2. Một nơi nào đó trong Rough (73)

    f(t:string, s:string, n:integer) -> i
    Đâu ilà chỉ số của nthví dụ strong t.

  3. Cà ri cho bữa tối (6235)

    f(x:function, y: function) -> g Trường hợp gmột chức năng sẽ gọi y, nthời gian; nơi nlà giá trị trở lại củax

  4. Spew (92)

    f(p:string) Viết để tập tin pvà điền nó với một hình chữ nhật có kích thước ngẫu nhiên của các ký tự ngẫu nhiên (ascii).

  5. Truy tìm kho báu (75)

    f(p:string, c:char) -> (x, y) Đọc tệp pcó chứa một lưới các ký hiệu và trả về xytọa độ của phiên bản đầu tiên của ký hiệu đó trong lưới, giả sử nó tồn tại.

  6. Cầu trên sông Kwai (179)

    f(l:list[int]) In sơ đồ cầu khác nhau cho l. Ví dụ cho[1,7,3,17,1]

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

    Đảm bảo rằng các khoảng trắng được tạo theo kích thước của số ở trên. Đối với một số dài 3 chữ số, bạn sẽ cần 4 khoảng trắng giữa các chữ số trên dòng bên dưới.

    Bắt: Ở đâu đó, mã của bạn phải đánh vần quần (Phải có ít nhất 1 dấu phân cách không chữ và số. Ví dụ: tr(ou,se)(rs)

  7. Thời gian trôi khi bạn đang chơi Golf (1157)

    f(p:string) -> [h, m] Đọc tệp pcó chứa biểu diễn ASCII của đồng hồ analog, trong đó kim giờ được biểu thị bằng một dòng và phút bằng hai. Xuất ra một danh sách chứa hai yếu tố: giờ và phút hiển thị trên đồng hồ. Nếu chỉ nhìn thấy một bàn tay, giả sử cả hai điểm đến vị trí đó.

    Dưới đây là tất cả các kết hợp có thể cho một bàn tay.

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

    Các vị trí này, tương ứng là (12, 1, 3, 5, 6, 7, 9, 11). Giả sử rằng các ký tự khác trong mặt đồng hồ là khoảng trắng.

  8. Gỗ! ()

    f(p:string) -> b:boolean Trong đó p là đường dẫn đến một tệp có tòa nhà ascii. Các khối có khoảng trắng bên dưới chúng sẽ rơi xuống. (Ngoại trừ các dấu gạch chéo, giữ nguyên vị trí nếu có một khối ổn định theo hướng ngược lại với cách chúng đối mặt). Nếu tòa nhà có cấu trúc tích phân trả về true, ngược lại trả về false. Tất cả các khối không khoảng trắng được tính là rắn và khác với dấu gạch chéo, tất cả đều rơi.

    Cấu trúc an toàn

    ____
    |/\|
    |  |
    

    Không an toàn

    |__
      | 
      |
    

    Phiên bản an toàn

    |__
    \\| 
      |
    
  9. Slacker News (218)

    f(s:string, r:string, p:string) Nhận tiêu đề của 20 câu chuyện hàng đầu trên Hacker News và thay đổi tất cả các trường hợp sthành r, sau đó viết tiêu đề mới vào tệp html tại p, trong đó mỗi tiêu đề được chứa trong một phần tử h1.

    Các tập tin xuất ra nên một cái gì đó như thế này

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

    Bắt :

    • Bạn không thể sử dụng api HN.
    • Bạn không thể sử dụng Regex.
    • Bạn không thể sử dụng dấu ngoặc nhọn ở bất cứ đâu trong mã của bạn.

Chấm điểm

  • Số ký tự là độ dài của hàm sẽ biên dịch và chạy chính xác. Tuy nhiên, bạn vẫn cần gửi mã đầy đủ, bao gồm cả nhập khẩu.
  • + 10% cho mỗi ngôn ngữ lặp đi lặp lại trong bài nộp của bạn. (Ví dụ: Nếu bạn sử dụng Ruby cho 3 giải pháp, thì điểm số cuối cùng của bạn sẽ được nhân lên 1,2). Các phiên bản khác nhau của cùng một ngôn ngữ vẫn được tính là cùng một ngôn ngữ.
  • Par sẽ là điểm trung bình cho mỗi lỗ.
  • Gửi giải pháp của bạn trong một câu trả lời.
  • Điểm tổng thể của bạn là số lượng nhân vật của bạn + hình phạt ngôn ngữ của bạn, sau đó làm tròn nó.

Danh hiệu

  • Áo khoác vàng - ( @Sprigyig - 1290) Điểm tổng thể thấp nhất
  • Bắn súng - ( @Sprigyig - 9) Hầu hết các ngôn ngữ được sử dụng
  • Bunker - Hầu hết các điểm trên mệnh giá trên bất kỳ lỗ nào
  • Rắn trên máy bay - ( @AsksAnyway - 1727) Gửi nhân vật trăn cao nhất trong một giải pháp duy nhất
  • Các bộ phận tốt - ( @AsksAnyway - 255) Số lượng ký tự JS cao nhất trong một giải pháp
  • Shakey Steve - Giải pháp ngắn nhất sử dụng giao diện
  • Bạn không đến từ đây - Giải pháp ngôn ngữ độc đáo ngắn nhất mà ngôn ngữ có trang wikipedia ngắn nhất.
  • Happy Gilmoore - ( @AsksAnyway - 31) Giải pháp ngắn nhất có từ 'alligator' trong mã.
  • Uniciking Dwarf Magic - Các phần mở rộng mặc định của 9 tệp nguồn gửi của bạn là một đảo chữ hoàn hảo của một từ trong Từ điển Oxford.

Bạn chỉ đủ điều kiện cho một danh hiệu khi bạn đã hoàn thành tất cả 9 lỗ


Đệ trình

  1. @Sprigyig 1290
  2. @Firefly 1320
  3. @grc 1395
  4. @Trevor M 1465
  5. @C Bánh răng 1654
  6. @Guy Sirton 1719
  7. @AsksAnyway 4651

2
@anorton <&>
Dan Prince

1
Một đồng hồ analog có 12 vị trí cho mỗi tay, nhưng bạn chỉ cho chúng tôi 8. Nó hoạt động như thế nào?
Kevin

1
@DanPrince Bạn có muốn /vị trí đề cập đến 1 giờ hoặc 2 giờ không? (và tương tự cho tất cả các đường chéo còn lại)
apnorton

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

2
Các phiên bản hoặc hương vị khác nhau của ngôn ngữ sẽ được coi là "khác nhau" cho mục đích ghi điểm? vd: Python 2 vs Python 3? Visual Basic vs VB.Net vs VBScript? Làm thế nào về supersets hoặc gần supersets như C vs C ++? Xin lỗi cho nhà sư phạm, nhưng đây môn đánh gôn! :-)
Darren Stone

Câu trả lời:


11

Điểm: 4651

Hình phạt 2907 + 60%

1. GolfScript - 14 ký tự

{*}:a;lligator

Cách sử dụng: c n avd "test" 3 a->testtesttest

ngôi sao Chúc mừng Gilmoore

2. Python - 72 ký tự

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. Javascript - 255 ký tự

/*
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;
}

ngôi saoBunker ngôi saophần tốt

4. Python - 132 ký tự

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. Python - 89 ký tự

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

6. Python - 189 ký tự

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. Python - 1727 ký tự

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]

ngôi sao Rắn trên máy bay

8. Python - 226 ký tự

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. Python - 203 ký tự

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]

Nhận xét "#alligator" có liên quan gì đến mã số 1? Nó dường như được bao gồm trong số từ vì một số lý do.
Dhara

1
@Dhara Nó dành cho chiếc cúp Happy Gilmoore: "Giải pháp ngắn nhất có chữ 'cá sấu' trong mã."
PhiNotPi

# 9 sử dụng dấu ngoặc nhọn ( i<i<42) hoặc chúng được phép miễn là bạn chỉ sử dụng chúng làm toán tử?
Christopher Creutzig

@ChristopherCreutzig Cố định cảm ơn.
AsksAnyway 30/12/13

7

Điểm: 1320

Tôi còn nhiều việc phải làm để cải thiện điểm số này ... Ồ, ít nhất tôi đã tránh được các hình phạt ngôn ngữ lặp đi lặp lại. :-)

1. Python (21 ký tự)

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

Giải pháp "hiển nhiên".

2. ECMAScript 6 (47 ký tự)

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

Tìm chỉ mục theo một cách khác thường, bằng cách đếm độ dài của chuỗi con trước nó.

3. J (12 ký tự)

f=:2 :'v^:u'

Sự kết hợp tích hợp ^:làm tăng chức năng thành một quyền lực (tức là lặp lại chức năng một số lần nhất định). Đó là, f^:3 y = f (f (f y))). Tuy nhiên, nó bị quá tải để alos chấp nhận các hàm thay vì số nguyên, trong trường hợp đó, nó chạy hàm trên đầu vào để có được số lần lặp lại. Thật không may, chúng ta cần lật các toán hạng cho tác vụ, nếu không chúng ta sẽ có câu trả lời hợp lý f=:^:.

4. C (95 ký tự)

#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);}

Tác vụ này để lại khá nhiều chỗ cho việc diễn giải và lạm dụng: bạn có thể xuất ra một ký tự ASCII có thể in ngẫu nhiên và nói đó là hình chữ nhật có kích thước ngẫu nhiên với các kích thước từ tập {1} không? Chắc là không. Dù sao, tôi đã đi với đơn giản rand()nhưng trong thực tế bạn có thể muốn thêm %9hoặc một cái gì đó nếu bạn muốn thử nghiệm nó. Trên hộp linux của tôi, tôi không phải xóa tập tin để ghi nó (tôi đoán nó sẽ tự động xóa khi thoát khỏi chương trình), nhưng tôi khá chắc chắn rằng bạn phải xóa nó để tuân thủ tiêu chuẩn, vì vậy hãy cảm nhận miễn phí để thêm fflush(f);vào số đếm ở đây.

5. Haskell (100 ký tự)

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

Tôi thích mô hình lặp đi lặp lại giữa việc tìm hàng và cột (được trừu tượng hóa thông qua h).

6. Lua (261 ký tự)

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

Làm cho việc sử dụng nhiều giá trị trả về và đệ quy để đối phó với tính toán các khác biệt. Tôi phải trả một vài ký tự để khớp chính xác với đầu ra mẫu (thêm số lượng khoảng trống phù hợp ở mọi nơi).

7. Đi (307 ký tự)

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}}

Có lẽ có thể được chơi golf nhiều hơn nữa; Tôi hầu như không biết đi.

8. CoffeeScript (+ node.js) (223 ký tự)

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

Một chút về cú đánh giá rẻ vì tôi đã có JS. Ồ tốt Trả về giá trị giả (cụ thể là undefined) hoặc giá trị trung thực (cụ thể là 1) để chỉ ra câu trả lời.

9. Bash (254 ký tự)

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
}

(Dòng mới sau khi ống được thêm vào để dễ đọc.) Làm việc xung quanh các hạn chế với vỏ là thú vị. Tôi nhận ra có lẽ có một cách tốt hơn để làm $2,$4,$6,..., nhưng dù sao đây cũng là những gì tôi nghĩ ra.


1
Có bất kỳ lý do tại sao bạn chưa bao gồm nhập / bao gồm trong số lượng ký tự? Nếu không, công việc tuyệt vời!
grc

1
Ồ vâng, tôi quên đề cập đến điều đó. Vì câu hỏi nhấn mạnh rằng "bạn chỉ cần gửi chức năng" nên tôi đã nghĩ rằng sẽ công bằng khi bỏ qua chi phí bao gồm các thư viện tiêu chuẩn.
FireFly

Đối với lỗ 1f=str.__mul__
Rắn và Cà phê

@SnakesandCoffee không in ra thiết bị xuất chuẩn, thật không may. :(
FireFly

5

Điểm: 1.394,4

996 ký tự + phạt 40%

1. Greenway - Haskell, 19 ký tự

f c n=replicate n c

Sử dụng:

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

2. Rough - PHP, 72 ký tự

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

3. Cà ri - JavaScript 1.8, 45 ký tự

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

4. Spew - J, 43 ký tự

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

Sử dụng:

f 'file.txt'

5. Kho báu - J, 64 ký tự

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

Sử dụng:

'file.txt' f 'c'

6. Cầu - Python, 166 ký tự

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. Thời gian - Python, 205 ký tự

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]

Giả sử các dòng được đệm không gian rộng năm ký tự. Sử dụng các tab cho mức thụt thứ hai.

8. Gỗ - Python, 190 ký tự

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. Slacker - Python, 192 ký tự

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

Cảm ơn Tyzoid cho ý tưởng rút ngắn url.


Rất ấn tượng với Python của bạn, rất nhiều thủ thuật để học hỏi.
AsksAnyway

1
@AsksAnyway Cảm ơn. Hãy chắc chắn để kiểm tra này ra nếu bạn chưa có.
grc

1
Umm, chắc chắn (1) của bạn là trong J, phải không? Có thể bạn quên cập nhật tiêu đề / mẫu chạy.
FireFly

@FireFly Vâng, lỗi của tôi. Tôi đã cập nhật cách tính điểm và sử dụng nhưng quên thay đổi giải pháp thực tế.
grc

4

Chỉnh sửa: Hãy nghĩ rằng tôi sẽ chỉ gửi cái này như sau: tổng cộng 1290, không lặp lại ngôn ngữ.

Đường xanh, C # 53

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

Tôi quyết định trao đổi ngôn ngữ với # 1 và # 9. Hoàn toàn có giá trị 30 ở đây cho hàng trăm sau.

Ở đâu đó trong Rough, Python 59

Tôi thực sự không nên sử dụng một ngôn ngữ tốt như vậy vào một vấn đề dễ dàng. Ngoài ra, làm thế nào đây không phải là một phần của họ chức năng indexOf của ngôn ngữ? Tôi dường như luôn cần điều này ...

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

Cà ri cho bữa tối, Lisp 61

Tôi đã không chạm vào lisp kể từ một tuần ở trường đại học ....

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

Spew, Bash / shell utils 102

Bash-foo của tôi chưa bao giờ tốt đến thế. Tôi sẽ mân mê cái này sau. BTW nếu bạn muốn nó kết thúc nhanh hơn, hãy chuyển nó sang / dev / urandom.

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

Truy tìm kho báu, C 113

Có lẽ là một trong những vấn đề thân thiện hơn C. Tôi đã giải thích "trả về hai số nguyên" là lấy một con trỏ mảng trả về làm đối số. Cảnh báo? Những cảnh báo gì? Một int * cũng tốt như một TẬP_TIN * = 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;}

Cầu trên sông Kwai, Perl 207

Tôi bắt đầu học perl trong khi viết cái này. (Muộn còn hơn không

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}

Thời gian trôi đi khi bạn đang chơi Golf, Java 297

Bạn chỉ có thể làm rất nhiều để tạo java terse ... Nó giả sử đồng hồ được đệm không gian để mỗi dòng dài 5 khoảng trống.

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};}

Gỗ! Javascript 201

Nó chạy trong giao diện điều khiển của chrome. Tôi không đảm bảo ở nơi khác = p. Nó đòi hỏi các dòng phải được đệm không gian theo chiều dài của dòng dài nhất. Tôi cảm thấy như đây là một yêu cầu hợp lý của nghệ thuật 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}

Tin tặc, Ruby 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

Đây không chỉ là một câu trả lời tuyệt vời, nó còn làm cho một bài đọc tuyệt vời. Làm tốt lắm!
Dan Prince

Cảm ơn, tôi tưởng tượng bây giờ ít thú vị hơn khi tôi đổi ruby ​​và C #. Không còn phải ca ngợi về sự phân chia chuỗi điên rồ của .Net
Sprigyig

4

Vui vẻ chạm vào một vài ngôn ngữ một chút ...

Số lượng ký tự thu được sau khi loại bỏ khoảng trắng / dòng mới không cần thiết nhưng phần lớn vẫn có thể đọc được. Vì câu hỏi là sự pha trộn giữa các chức năng và chương trình, tôi chỉ bao gồm phần thân của chức năng khi được yêu cầu ... Ngoài ra, một số quyền tự do được thực hiện với ý nghĩa của "trở lại" là ...

Tổng cộng ~ 1719

1- Con trăn (~ 20)

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

2- C (~ 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);}

Phiên bản dễ đọc:

#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- Javascript (~ 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- Scala (~ 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- C ++ (~ 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- Đi (~ 301)

Lưu ý điều này đòi hỏi đồng hồ phải được đệm (tức là tất cả các dòng có cùng độ dài).

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- Ruby (~ 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- bash / Unix hack (~ 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
Đẹp, nhưng số 9 của bạn sử dụng niềng răng góc, trái với quy tắc cho lỗ đó.
Rik Smith-Unna

@RichardSmith: Cảm ơn ... Tôi sẽ phải sửa cái đó.
Guy Sirton

1
Cẩn thận ở lỗ số 3, không có gì đảm bảo rằng x () sẽ trả về cùng một số trên mỗi lệnh gọi hàm!
Tyzoid

@Tyzoid: Tôi đã xem xét việc nắm bắt nó ... Bạn nói đúng đó là giả định / giải thích của tôi về thông số kỹ thuật.
Guy Sirton

2

Không thực sự ở đây để chơi gôn, nhưng đây là một số Tcl, vì ngôn ngữ cần nhiều tình yêu hơn:

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
}

Chủ yếu là chưa được kiểm tra bởi vì viết những procs này trong nửa giờ thú vị hơn nhiều so với việc cố gắng thiết kế đúng mã golf. Thưởng thức!


2

Chỉ có thời gian để làm việc trên 1/2 trong số này. Bạn dường như muốn chúng ở dạng hàm và không phải là một lớp lót. Vì vậy, tất cả những thứ này là chức năng. Mã kiểm tra bên dưới chức năng. Trong Perl.

Đường xanh:

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

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

Thô:

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);

Cà ri:

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);

Spew:

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');

Kho báu:

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);

Tôi sẽ làm việc vào ngày 6-9 vào ngày mai.


2

WIP. Lưu ý, số lượng ký tự có thể bị tắt do '\n'wc

[1 Greenway] Mindf * ck, 54 ký tự

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

Cách sử dụng: Sau khi mã được viết, hãy nhập chuỗi của bạn và chấm dứt chuỗi của bạn bằng a ^ a (ctr + a), sau đó ngay sau đó, nhập số của bạn.

Một cảnh báo: số đã cho chỉ phải từ 0-9 (nếu bạn muốn số lớn hơn, giá trị ascii-48 của bất kỳ ký tự nào bạn nhập sẽ được sử dụng là n)

Ảnh chụp màn hình:

Ảnh chụp màn hình

[3 Curry for Dinner] Javascript, 59 ký tự

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

[4 Spew] BASH, 56 ký tự

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

[7 lần bay khi bạn đang chơi gôn] C, 334 Nhân vật (412 với định nghĩa vĩ mô)

#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;}

Lưu ý: hàm này trả về một con trỏ tới mảng số nguyên hai chiều, được định dạng như vậy: {3, 55} (đối với vị trí đồng hồ là giờ trên 3, phút ngày 11)

[9 Tin tức về Slacker] PHP, 246 ký tự

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");}}

Triển khai tháng chín / gốc trong BASH + AWK, 218 ký tự

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. Đường xanh (Haskell - 37)

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

2. Một nơi nào đó trong Rough (Mathicala - 43)

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

3. Cà ri cho bữa tối (Lisp - 58)

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

4. Spew (Matlab / Octave - 83)

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

5. Truy tìm kho báu (C - 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. Cầu trên sông Kwai (Ruby - 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. Thời gian trôi khi bạn đang chơi gôn (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. Gỗ! (Đi - 329)

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. Tin tức về Slacker (Python - 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

Tôi là một đồ lừa đảo & I không được chơi tất cả 9 lỗ ... chưa . Tuy nhiên, đây là lỗ 8 của tôi, giải pháp Timber Timber trong Perl (149 char).

Một trong những đồng nghiệp của tôi đưa ra điều này như một thách thức trong công việc. Chúng tôi đã có niềm vui với nó, đặc biệt là tôi, vì tôi có giải pháp mệnh giá thấp nhất cho đến nay!

Các quy tắc của chúng tôi là nó phải là một kịch bản độc lập xuất ra truehoặc falsetheo sau bởi một dòng mới STDOUT, và không có shebang nào không được.

Dưới đây là giải pháp tối giản hóa các loại. Tôi cũng đưa ra một bản tin chính của Google , bao gồm mã không được khai thác của Google và (giải thích dài dòng) về lý do đằng sau cách tiếp cận của tôi.


$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

Tôi quá lười để sửa đổi nó theo quy tắc cạnh tranh Meh, nhưng nó hoạt động tốt ...

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

Mã golf đầu tiên! (Vẫn còn một công việc đang tiến hành ...)

1. Đường xanh

Ngôn ngữ: Python 3.2.3
Kích thước tệp: 23 byte
Mã:

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

3. Cà ri cho bữa tối

Ngôn ngữ: Python 3.2.3
Kích thước tệp: 64 byte
Mã:

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

Bạn sẽ được cập bến các điểm để sử dụng cùng một ngôn ngữ hai lần, nếu tôi hiểu đúng. Nếu bạn chỉ làm việc đó cho vui, không có vấn đề gì.
Hosch250

@ user2509848 Tôi không biết 9 ngôn ngữ có thể chơi gôn, vì vậy tôi sẽ phải cập bến một số ngôn ngữ. :( Tuy nhiên, cảm ơn vì đã ngẩng cao đầu!
apnorton

Ruby, Perl, Golfscript và Mathematica thường là những người chiến thắng
Hosch250

Tôi chỉ biết C ++, với một số Java và ít Python 3.2.3. Không có gì khác ngoài HTML và CSS (dù sao cũng không thể sử dụng (CSS)).
Hosch250

0

Một công việc khác đang được tiến hành ở đây, và tôi đang làm việc nên tôi sẽ quay lại sau.

Greenway trong Ruby (14 ký tự, 24 với #alligator ), gọi vớif.(c, n)

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

Ảnh chụp màn hình

Đường xanh

Một nơi nào đó trong Rough in CoffeeScript (38 ký tự)

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

Ảnh chụp màn hình

Một nơi nào đó trong Rough

Curry for Dinner in JavaScript (54 ký tự)

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

Ảnh chụp màn hình

Cà ri cho bữa tối

Phát ra trong PHP (111 ký tự)

Điều này đòi hỏi short_open_tagtrong tập tin cấu hình PHP phải được kích hoạt. Mặt khác, dấu phân cách mở phải là <?php, các @ký hiệu được sử dụng để tắt các PHP_NOTICElỗi được ném để tránh kèm theo randdấu ngoặc kép và không khai báo rõ ràng $sbiến. Điều này sẽ tạo ra một lưới vuông gồm các ký tự ascii từ 4 đến 30 ký tự trên cả hai trục.

<? @$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);

Ảnh chụp màn hình

Spew


Thiết bị đầu cuối của bạn sử dụng là gì?
Alexander Craggie

0

1. Đường xanh (Python 2: 20)

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

Ví dụ nhập: a("asdf",3)-> chuỗi ( asdfasdfasdf)

2. Một nơi nào đó trong Rough (Python 2: 47)

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

Ví dụ nhập: b("1,2,333,4,5,6",",",3)-> int (7)

3. Cà ri cho bữa tối (Javascript: 61)

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

Ví dụ nhập: function z(){ return 3; }; function y(){ console.log( '1' ) }; myfunc = c(z,y); myfunc();-> đăng string(1)nhập vào bàn điều khiển ... 3 lần.

Theo thông số kỹ thuật, ctrả về một hàm và không thực sự tự thực thi chức năng đó.

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);}}}

Không thực sự thử nghiệm điều này, nhưng nên làm việc.


0

Một số vết lõm được giữ nguyên để dễ đọc nhưng nó đã được lấy ra khi đếm các ký tự. Tổng số là khoảng 1227 . Hoặc không, tôi quên một vấn đề. 1486 1465 ký tự.

1. MIPS ASM (55 ký tự)

#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. Lược đồ (52 ký tự)

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

3. F # (39 ký tự)

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

4. Powershell (133 ký tự)

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. C ++ ( 184 152 ký tự)

#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. C # ( 291 282 ký tự)

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. Haskell ( 318 306 ký tự)

Tôi đang tìm một cái cớ để thử Haskell. Tôi nghĩ rằng tôi đã thông minh bằng cách tạo danh sách các vị trí thông qua các tổ hợp số, nhưng với số lượng ký tự, tôi có thể đã mã hóa được thứ chết tiệt đó. Ồ tốt Mã này là tồi tệ nhưng dù sao nó cũng rất vui để viết.

chỉnh sửa: Đã sửa để nó trả về đúng phút.

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. Lua (259 ký tự)

Tôi đã rất ngạc nhiên khi thấy rằng các chuỗi không hỗ trợ lập chỉ mục kiểu mảng, vì vậy tôi phải dựa vào phụ.

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. Python (187 ký tự)

Cảm ơn grc / Tyroid cho trình rút gọn url.

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:]]
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.