Piksel-sanat, bölüm 1: Süper Mario


47

o bir ben!

Günümüzün görevi basittir: Super Mario Bros'tan NES'e mavi bir arka plan üzerinde boşta kalan küçük Mario sprite'i gösteren bir program veya bir fonksiyon yazın.

Her tür giriş, ekranda / pencerede / tarayıcıda herhangi bir yerde bu 12 * 16 pikselleri gösterdiği sürece geçerlidir.

(DÜZENLEME: eğer diliniz piksel resmi yapamıyorsa, görüntülenen resim ölçeklenebilir. ASCII resmini veya HTML resmini aynı zamanda doğru renkleri kullanarak da çıktı alabilirsiniz.)

Resim (% 400 yakınlaştırılmış):

Aşağıdaki renkleri kullanmanız gerekir:

  • mavi: # 6B8CFF
  • kırmızı: # B13425
  • yeşil / kahverengi: # 6A6B04
  • turuncu: # E39D25

En kısa program (karakter sayısı ile) kazanır!

Standart boşluklar uygulanır (özellikle, ağ bağlantısına izin verilmez), ancak programınızdaki bir görüntü dosyasını sabit kodlamaya ve görüntülemeye izin verilir. (bu numarayı kullanan girişler ayrı ayrı sıralanacaktır)

İşte başlıyoruz!


Güncel Lider Tablosu

Yalnızca kodu kullanarak en kısa cevap:

Bir tür sabit kodlu görüntü kullanarak en kısa cevap:


2
Ayrıca, dosya oluşturmaya izin verilmiyor mu? Gösterilmesi gerekiyor mu?
Martin Ender

1
Bu resimde hiç bir model göremiyorum. Yani hepsi bir dilde kullanabileceğiniz en iyi sıkıştırmaya bağlı.
Doktor

20
Nitpicking: Bu Mario, Süper Mario değil.
Dennis,

5
Ne eğlenceli bir fikir ... İşte devam filmi için bir fikir: Mario imajını çek (Herhangi bir format) ve bunu Luigi imajına dönüştür!
Zibbobz

3
Ona benzeyen bir piet programı yapabilir miyiz?
Conor O'Brien,

Yanıtlar:


36

HTML / JS, 206 158 153 102


102

Kullanılan numara: sıkıştırılmış GIF dosyasını bir HTML dosyası olarak kaydedin ve sonuna <img src = #> ekleyin

Bu kayıt için teşekkürler: https://codegolf.stackexchange.com/a/39926/10732 , @NiettheDarkAbsol tarafından

GIF87a  ¡ kŒÿã%jk±4%,       6„‡héj„Af-ÕdÎy\%    …R˜0”ŒÈJ­³I©±²û“ú=ª$±p%i¸•¤ <img src=#>

Gösteri: http://meuziere.free.fr/mario/gif.html


Eski versiyonlar:

153

Kullanılan numara: sıkıştırılmış PNG dosyasını bir HTML dosyası olarak kaydedin ve sonuna <img src = #> ekleyin

‰PNG


IHDR         _v”   PLTEjkkŒÿ±4%ã%ó’V   IIDAT×c[ʵj%C€ÍUŸ?|ìíœÿ02„ÿÿÊÐÊàÐÄÈÀ°ŠáÓë~†«ö3üZµž!jÚR‡P x( s6ïåÇ<img src=#>


158

Kullanılan numara: sıkıştırılmış bir PNG'nin kırpılmış dataURI'sini bir IMG etiketinin SRC'si olarak ayarlamak ve her şeyi Unicode karakterlerinde paketlemek.


Bunu JS konsolunuzda yürütün:

document.write(unescape(escape('🁩𫑧𘁳𬡣👤𨑴𨐺𪑭𨑧𩐻𨡡𬱥𝠴𛁩𥡂𣱒𭰰𢱇𩱯𠑁𠑁𣡓𥑨𡑕𩱁𠑁𠑷𠑁𠑁𤑁𩱍𠑁𠑂𩡄𜱡𥑁𠑁𠑄𡡂𣑖𡑖𬑡𭱒𬡪𤀫𮁎𠱘𪡮𤱘𮡫𩱨𥱁𠑁𠑓𥑬𡑑𥡑𢐱𜡍𢑗𮁘𢱅𣁖𬑊𥑏𠑺𥡕𡱮𮠹𛱇𦁺𬰷𤡭𨰯𮡁𮑨𤀯𛱹𪁄𤑅𣑲𩰰𣑔𢑷𣁃𢱧𩑈𥀶𜰶𡱦𝡶𜡍𛱸𨑴𦠴𪁡𭁰𤱂𫱤𤑯𢁧𫱁𭰾').replace(/uD./g,'')))


206

Ambalajsız (206b):

<img src=data:image;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQAgMAAABfD3aUAAAADFBMVEVqawRrjP+xNCXjnSXzkghWAAAASUlEQVQI12MIWxXKELVqJUOAzVUGnz9/GXzs7Rmc/zAyhP//yhDQEMrg0MTIwLCKgeHT636Gf6v2M/xatZ4hatpSBodQoHgoAw>

gösteri


Kullanılan aletler:


Etiketlere ihtiyacınız yok. Yalnızca chrome'un veri uri'sini kullanın ve URL çubuğuna girin. 200 karakter
Doktor

Hm ... dataURI'nin geçerli bir "program" olmadığını düşünmüştüm. Ama sen haklısın. Tüm tarayıcılar adres çubuğundaki dataURI'lere izin verir.
xem

Şimdi OP olarak kendiniz bir boşluk kullanıyorsunuz;). Tüm çalışmaları GIF biçiminin harici / dahili sıkıştırmasına yüklüyorsunuz. Çok havalıysak, şimdi hepimiz en iyi sıkıştırma oranına sahip belirsiz görüntü formatları aramaya başlamalıyız ve kendime kendi sıkıştırmamı yazarak çok fazla çalışma yapabilirdim. ;)
Martin Ender

2
@xem Şey, meydan okumanız, çağrınız. Ancak şimdi en sıkıştırılmış varolan dosya biçimini arıyorsak, biraz anlamsız görünüyor. ;)
Martin Ender

1
Hammadde bağlantısının öldüğü anlaşılıyor.
Addison Crump

27

Mathematica, 412 292 252 212 163 148 148 143 141 karakter

f=FromDigits[ToCharacterCode@#,2^16]~IntegerDigits~#2&;Image@Partition[f["넴╫賿橫ӣ鴥",256][[3#+1;;3#+3]]/256&/@"吀啐^A媾핮﻽溿뽫ﺩ埿⩕樨ꦪª⿼?ཐᐅ橕ꦪ喪"~f~4,12]

Bu ^A, kod noktasındaki kontrol karakteri için şapka gösterimini kullanır 1. Mathematica'da, karakterleri kelimenin tam anlamıyla gömebilirim, ancak bu her şeyi kopyalarken her türlü çirkinliğe yol açıyor. Her neyse, yukarıdakiler benim eski sürümümden 2 karakter daha kısa ve renk paleti endekslerini kodlamak için karakterleri base-4 yerine base-4 kullanarak kullandım. Şu an aşağıdaki açıklama ve ekran görüntüsünü düzeltmek için canımı sıkamıyorum, bu yüzden sizi burada cevabımın orijinal 5 tabanlı sürümüyle bırakıyorum:


f=FromDigits[ToCharacterCode@#,2^16]~IntegerDigits~#2&;Image@Partition[f["넴╫賿橫ӣ鴥",256][[3#-2;;3#]]/256&/@"ᯱ曎㌟뱮䚻륏Σ襺ﺦ您汜豈塘ᙉ雬儥衰ꐰꃾ纔ㆯ쭴뫋澖ᕿ蓉"~f~5,12]

Unicode karakterlerde pikselleri kodluyorum (karakterlerle saymak için yay!).

Mathematica'da şöyle görünüyor:

görüntü tanımını buraya girin

İşte nasıl çalışıyor:

İlk önce fUnicode dizgilerini (ilk argüman olarak iletilen #) tamsayı listelerine dönüştüren bir işlev tanımladık . İlk önce karakter kodlarını alırız. Bunlar bir 65536 sayısının basamağı olarak yorumlanabilir. Ve sonra bu sayıyı ikinci argüman olarak iletilen başka bir tabana dönüştürürüz #2.

Şimdi bunu daha uzun Unicode dizesi için yapalım. ToCharacterCodebu listeyi verir:

{7153, 26318, 13087, 48238, 18107, 47439, 931, 35194, 62191, 65190, \
 24744, 57782, 27740, 35912, 22616, 5705, 38636, 20773, 34928, 42032, \
 41214, 32404, 12719, 52084, 47819, 28566, 5503, 33993}

Bunu 65536 üs olarak ele almak:

7933607912575313477287527915733176998797205587959732019781370103381...
4831246938139171755469819519515972565671101475553962564506286523593

Ve üs 5'e dönüştürme:

{2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
 2, 2, 2, 3, 3, 3, 4, 4, 3, 4, 2, 2, 2, 2, 3, 4, 3, 4, 4, 4, 3, 4, 4, \
 4, 2, 2, 3, 4, 3, 3, 4, 4, 4, 3, 4, 4, 4, 2, 3, 3, 4, 4, 4, 4, 3, 3, \
 3, 3, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 3, 3, 1, 3, 3, 3, \
 2, 2, 2, 2, 2, 3, 3, 3, 1, 3, 3, 1, 3, 3, 3, 2, 3, 3, 3, 3, 1, 1, 1, \
 1, 3, 3, 3, 3, 4, 4, 3, 1, 4, 1, 1, 4, 1, 3, 4, 4, 4, 4, 4, 1, 1, 1, \
 1, 1, 1, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 2, 2, 1, 1, 1, \
 2, 2, 1, 1, 1, 2, 2, 2, 3, 3, 3, 2, 2, 2, 2, 3, 3, 3, 2, 3, 3, 3, 3, \
 2, 2, 2, 2, 3, 3, 3, 3}

Bunlar piksellerin renk indeksleridir, sırasıyla mavi, kırmızı, yeşil, turuncu. Bunları renk paleti olan bu numara listesine endekslemek için kullanıyoruz.

Şimdi renk paleti için. Bu "넴╫賿橫ӣ鴥". Doğru dizgiyi seçmek için yukarıdaki indeksleri kullanıyoruz. Sonra fonksiyonumuzu tekrar uygularız, ancak taban 256'yı kullanarak.

{177, 52, 37, 107, 140, 255, 106, 107, 4, 227, 157, 37}

;;Geçerli rengin ilgili dilimini çıkarmak için aralık indeksleme kullanıyoruz .

Son olarak, sadece bunu Partitionsatırlara bölmek 12ve beslemek için kullanırız Image. Voila

Düzenleme: Unicode paketlemesiyle RLE artık buna değmezdi. Çıkarılması 50 karakter kaydetti.

Düzenleme: Tabii ki, RLE olmadan, üsse 16'ya da gitmeye gerek yok.

Düzenleme: Ve biz onun yanındayken, neden renk paletini Unicode paketlemiyorsunuz? (Tüm renk paletini tek bir dize yaparak ve Partitionorada kullanarak da biraz daha fazla tasarruf edebileceğime dair bir fikrim var. Bunu daha sonra deneyeceğim.)

Düzenleme: Evet, başka bir 5 bayt tıraş oldu.


1
sonucun ekran görüntüsünü eklemeyi düşünür müsünüz? (Ben kodunuzu güveniyorum ama yok değil görüntülenme nasıl merak:??? bir pencere tarayıcı başka)
Xem

@xem Yapacak. Grafiksel giriş ve çıkış yapabilen bir REPL ortamıdır.
Martin Ender,

Emin değilim, ancak görüntünün alt kısmını yansıtıyor musunuz?
Doktor

1
@Optimizer Hayır, kaydedebileceğimden daha az karakterle bunu yapabileceğimden şüpheliyim.
Martin Ender

Mathematica belgelerine baktığımda, tilde üzerinde herhangi bir kullanım görmüyorum, ancak burada, bir işlevin sonucunu diğerine beslemek için kullandığınız ve daha sonra bu ikinci işleve ek bir argüman uyguladığınız görülüyor (IntegerDigits)? Ayrıca, renk paleti: resme bakarken, sadece dört renk var gibi görünüyor, ancak renk paletinizde bundan daha fazlası var gibi görünüyor: {177, 52, 37, 107, 140, 255, 106, 107, 4, 227 , 157, 37}. Image belgelerine bakıldığında, ColorScale -> RGB gibi ek seçenekler sağlanmadıkça gri tonlamalı yazdırıyor gibi görünüyor.
CryptoCommander

20

Java: 398 377

void s(){new java.awt.Frame(){public void paint(java.awt.Graphics g){int i=0,x,m[]={12226,44085194,467839834,0x5abea55a,0x5bbd5d50,0x5ffe9540,0x5ffe9540,0x5aee5d50,531408218,334277466,333492170,0xc02fc2},c[]={7048447,0xB13425,6974212,0xE39D25};for(setSize(99,99);i<192;g.setColor(new java.awt.Color(c[m[x]&3])),m[x]/=4,g.drawLine(x+40,60-i%16,x+40,60-i++%16))x=i/16;}}.show();}

Her sütun için bir int açarak basitçe sprite çizer. Tam bir programda gösterilir:

class P{
    public static void main(String[]a){
        new P().s();
    }

    void s(){
        new java.awt.Frame(){           
            public void paint(java.awt.Graphics g){
                int i=0,x,m[]={12226,44085194,467839834,0x5abea55a,0x5bbd5d50,0x5ffe9540,
                               0x5ffe9540,0x5aee5d50,531408218,334277466,333492170,0xc02fc2},
                          c[]={7048447,0xB13425,6974212,0xE39D25};
                for(setSize(99,99);i<192;
                    g.setColor(new java.awt.Color(c[m[x]&3])),m[x]/=4,
                    g.drawLine(x+40,60-i%16,x+40,60-i++%16)
                )x=i/16;
            }
        }.show();
    }
}

Zorunlu ekran görüntüsü:

Benim Mario


1
Bir 9 kullanarak 9 bayt kaydedebilirsiniz import java.awt.*.
Kevin Cruijssen

15

x86 Makine Kodu, 102 bayt

Nasıl çalışır: Görüntü, bir palet kullanılarak 2 bit görüntü olarak kaydedilir. Görüntünün her satırı 3 bayt olarak ve ardından renk paletinin bir baytı olarak kaydedilir. Bu, verilerin tek bir DWORD olarak yüklenmesine izin verir. On iki piksel, değerin en düşük 2 bitini maskeleyerek, video belleğine yazarak ve ardından tüm değeri iki bit sağa kaydırarak çıkar. Satır için pikseller çıktıktan sonra, palet baytı VGA paletine yazılır. Görüntünün çizilmesi bittiğinde, program sonsuz bir döngüye girer.

İkili oluşturmak için derleme kodu:

org 100h
mov al,13h
int 10h
les ax,[bx]

mov si,image_data
draw:
add di,320-12
lodsd
xchg eax,ebx
mov cl,12
row:
mov ax,bx
and al,3
stosb
shr ebx,2
loop row
xchg ax,bx
mov dx,0x3c9
out dx,al
test al,al
jnz draw

image_data: db 21,0,85,0xb1/4, \
5,0,64,0x34/4,            \
165,190,87,0x25/4,        \
185,191,127,0x6b/4,       \
185,254,254,0x8c/4,       \
233,191,106,0xff/4,       \
213,255,95,0x6a/4,        \
165,168,85,0x6b/4,        \
169,40,106,0x4/4,         \
170,0,170,0xe3/4,         \
47,195,248,0x9d/4,        \
63,0,252,0x25/4,          \
15,0,240,111,             \
5,20,80,111,              \
169,85,106,111,           \  
170,85,170 

Base-64 kodlu ikili kodunu, çalıştırmak için Mario.com olarak kaydedin:

Örnek çıktı: görüntü tanımını buraya girin


10

GIF - 93 bayt

Görüntünün kodlanması görünüşte tamam, öyleyse ... yay? : D

GIF87a  ¡ kŒÿã%jk±4%,       6„‡héj„Af-ÕdÎy\%    …R˜0”ŒÈJ­³I©±²û“ú=ª$±p%i¸•¤  ;

Notepad ++ 'de görüldüğü gibi

NP ++ ekran görüntüsü

PHP olarak - 131 bayt

<? header("Content-Type:image/gif");?>GIF87a  ¡ kŒÿã%jk±4%,       6„‡héj„Af-ÕdÎy\%  …R˜0”ŒÈJ­³I©±²û“ú=ª$±p%i¸•¤  ;

1
gif'inizi bir yere yükleyebilir misiniz (örneğin ctrlv.in)? PNG yerine
girişimde


@NiettheDarkAbsol Bunun boyutunu nasıl saydığınızdan emin değilim, ancak 150 bayt sayıyorum. Ne olursa olsun, puanlama karakterlere göre ve 114 karakter gibi görünüyor.
Martin Ender 16:14

2
Evet, PHP pasajı benim için gayet iyi (son 2 baytı kaldırabilseniz bile). Ancak ham gif pasajı bir program değildir.
xem

1
@xem: Tarayıcı HTML / javascript / etc için "tercüman" olarak değerlendirilirse ve ham gif snippet'ini aynı mekanizma üzerinden beslemek, istenen çıktıya yol
açar

10

Bash + ImageMagick: 350 331 321 karakter

(Palet utanmadan çalınan Martin Büttner bireyin cevap .)

p=(B13425 6B8CFF 6A6B04 E39D25)
for c in 21 0 85 5 0 64 165 190 87 1{85,91,27,85} 254{,} 233 191 106 213 255 95 165 168 85 169 40 106 170 0 170 47 195 248 63 0 252 15 0 240 5 20 80 169 85 106 170 85 170;{
for j in 0 2 4 6;{
d+=(-fill \#${p[c>>j&3]} -draw point\ $[i%12],$[i++/12])
}
}
convert -size 12x16 xc: "${d[@]}" x:

Örnek çıktı:

Mario

Kolayca eklemek incelemek için -scale 120için convertbir 10x ölçekli sürümü almak için bireyin parametreler:

Mario 10 ölçekli


2
s/185 191 127 185 254 254/1{85,91,27,85} 254{,}/; s/do/{/; s/done/}/
yerçekimi

Hamuru. Hatta upvoted DigitalTrauma 'ın ilgili ucu , ama bu unutuyorum {.. }. Teşekkürler, @grawity.
Manatwork

8

Octo / XO-Chip , 70 bayt

Octo, CHIP-8 sanal makinesi için bytecoded talimatlara uygun bir üst seviye derleme dilidir . Octo, üst üste yerleştirilmiş bit düzlemleri üzerinden 4 renkli bitmapler çizme yeteneği de dahil olmak üzere temel CHIP-8 bayt koduna "XO-Chip" adı verilen bazı özel uzantılar sunar.

Derlenmiş baytlar aşağıdaki gibidir:

0xA2 0x08 0xF3 0x01 0xD0 0x00 0x1F 0x00 0x3F 0xC0 0x39 0x00 0x51 0x00 0x58 0x80
0x21 0xE0 0x00 0x00 0x3F 0x00 0x7F 0xE0 0xFF 0xF0 0x36 0xC0 0x1F 0x80 0x3F 0xC0
0x39 0xC0 0x70 0xE0 0xF0 0xF0 0x00 0x00 0x00 0x00 0x3F 0x80 0x7F 0xE0 0x7F 0xF0
0x3F 0xE0 0x1F 0xC0 0x37 0x00 0x76 0xE0 0xF0 0xF0 0xE9 0x70 0xE0 0x70 0xC0 0x30
0x00 0x00 0x70 0xE0 0xF0 0xF0

mario

Tarayıcınızda buradan çalıştırın: http://johnearnest.github.io/Octo/index.html?gist=33aa37d4717a425ccd4f

Bu bytecode'u üreten Octo assembly dilini görmek muhtemelen daha aydınlatıcıdır:

: main
    i := mario
    plane 3
    sprite v0 v0 0

: mario
    0x1F 0x00 0x3F 0xC0 0x39 0x00 0x51 0x00 
    0x58 0x80 0x21 0xE0 0x00 0x00 0x3F 0x00 
    0x7F 0xE0 0xFF 0xF0 0x36 0xC0 0x1F 0x80 
    0x3F 0xC0 0x39 0xC0 0x70 0xE0 0xF0 0xF0 
    0x00 0x00 0x00 0x00 0x3F 0x80 0x7F 0xE0 
    0x7F 0xF0 0x3F 0xE0 0x1F 0xC0 0x37 0x00 
    0x76 0xE0 0xF0 0xF0 0xE9 0x70 0xE0 0x70 
    0xC0 0x30 0x00 0x00 0x70 0xE0 0xF0 0xF0 

Ana program üç iki baytlık talimattır. Bellek indeksi kaydını iveri bölümünün başlangıcına ayarlayın, çizim düzlemi 3'ü seçin (3, bir bit maskesidir; bu, her iki bit düzlemiyle birlikte 4 renk modunda çizmek istediğinizi belirtir) ve ardından verilen x ve y konumunda bir sprite çizer. register v0(sıfır olarak başlatıldı). Son 0, SuperChip ve XO-Chip talimat setlerinde 16x16 sprite çizecek sprite boyutunu sağlar. 4 renk modunda, ilk düzlem için bir bitmap, ikinci düzlem için bir bitmap ile hemen takip edilir.

Uçakların nasıl çalıştığını görmek için, mario çizdikten sonra bir düzlem sağa kayan bu değiştirilmiş programı göz önünde bulundurun:

mario2

: main
    i := mario
    plane 3
    sprite v0 v0 0
    plane 2
    scroll-right
    scroll-right
    scroll-right
    scroll-right

: mario
    0x1F 0x00 0x3F 0xC0 0x39 0x00 0x51 0x00 
    0x58 0x80 0x21 0xE0 0x00 0x00 0x3F 0x00 
    0x7F 0xE0 0xFF 0xF0 0x36 0xC0 0x1F 0x80 
    0x3F 0xC0 0x39 0xC0 0x70 0xE0 0xF0 0xF0 
    0x00 0x00 0x00 0x00 0x3F 0x80 0x7F 0xE0 
    0x7F 0xF0 0x3F 0xE0 0x1F 0xC0 0x37 0x00 
    0x76 0xE0 0xF0 0xF0 0xE9 0x70 0xE0 0x70 
    0xC0 0x30 0x00 0x00 0x70 0xE0 0xF0 0xF0 

Bundan hoşlanıyorsanız , Octo ile yazılmış diğer çözümlerden birini beğenebilirsiniz . Aslında bu araca dayanarak Ekim ayı boyunca devam eden bir oyun sıkışması var .


6

Groovy 417 386

Cehennem kadar eğlenceli, ama korkunç bir karakter sayımı ile. GroovyFX gerekli

m=[b:'6B8CFF',r:'B13425',g:'6A6B04',o:'E39D25'];groovyx.javafx.GroovyFX.start{stage(visible:!0){scene(width:60,height:80){flowPane{"3b5r4b2b9r1b2b3g2o1g1o3b1b1g1o1g3o1g3o1b1b1g1o2g3o1g3o1b2g4o4g1b3b7o2b2b2g1r3g4b1b3g1r2g1r3g1b4g4r4g2o1g1r1o2r1o1r1g2o3o6r3o2o8r2o2b3r2b3r2b1b3g4b3g1b4g4b4g".toList().collate 2 each{l->(l[0]as int).times{rectangle(width:5,height:5,fill:"#"+m[l[1]])}}}}}}

ungolfed:

m=[b:'6B8CFF',
   r:'B13425',
   g:'6A6B04',
   o:'E39D25']           

s=5

groovyx.javafx.GroovyFX.start {bd->
  stage(visible: !0) {
    scene(width:s*12, height:s*16) {
      flowPane {
        "3b5r4b 2b9r1b 2b3g2o1g1o3b 1b1g1o1g3o1g3o1b 1b1g1o2g3o1g3o 1b2g4o4g1b 3b7o2b 2b2g1r3g4b 1b3g1r2g1r3g1b 4g4r4g 2o1g1r1o2r1o1r1g2o 3o6r3o 2o8r2o 2b3r2b3r2b 1b3g4b3g1b 4g4b4g"
          .replaceAll(" ", "")
          .toList()
          .collate(2) 
          .each { l->
            t=l[0] as int
            cr=m[l[1]]
            t.times {
              rectangle(width:s, height:s, fill:"#"+cr) 
            }
          }
      }
    }
  }
}

görüntü tanımını buraya girin


grep()yerinetoList()
cfrick

5

HTML / JS, 427 408 264 256 239 226 karakter

Obfuscatweet, 271 270 264 256 239 226 karakter

Obfuscatweet kullanarak, bunu <250: D seviyesine kadar kısaltmayı başardı.

document.write(unescape(escape('🁳𨱲𪑰𭀾𨰽𦰢𝡂𞁃𡡆𘠬𘡂𜐳𝀲𝐢𛀢𝡁𝡂𜀴𘠬𘡅𜰹𡀲𝐢𧐻𨐽𙰰𜐵𝐰𜀰𝐵𝐵𝀰𠑂𡑃𜀲𡑆𡑆𠰲𡑂𡡂𡠲𠡆𡑁𞀰𜱆𡡆𜀰𠐶𠐰𜀲𠐶𞑁𞁁𠐵𝑁𠑆𞑄𝰶𡡆𡀵𝐷𡡆𝐵𝐵𡠰𝐴𜐵𜀲𠐰𜁁𞁁𠐰𜁁𠐧𞱷𪑴𪀨𩁯𨱵𫑥𫡴𚑦𫱲𚁩🐰𞱩🀹𝠻𭱲𪑴𩐨𙰼𨡲🠧𚐩𮱨🐨𙰰𜀰𙰫𬁡𬡳𩑉𫡴𚁡𛡳𫁩𨱥𚁩𛁩𚰽𝠩𛀱𝠩𛡴𫱓𭁲𪑮𩰨𝀩𚐮𬱬𪑣𩐨𛐱𜠩𞱦𫱲𚁪🐰𞱪🀱𜠻𭱲𪑴𩐨𙰼𬡰𘁳𭁹𫁥🐢𬁡𩁤𪑮𩰺𜐠𞀻𨡡𨱫𩱲𫱵𫡤𞠣𙰫𨱛𪁛𪠫𚱝𧐫𙰢🠼𛱲𬀾𙰩𚐻𯐼𛱳𨱲𪑰𭀾').replace(/uD./g,'')))

Aşağıdaki kod bunun içerdiği şeydir.

Kullanılan hile: görüntüyü base4'e dönüştürdü Renk döşemeleri dizesi, bunu onaltılık bir Dize dönüştürdü. Taban 4'ün dizini rengi belirtir (0 = mavi, 1 = KIRMIZI, vs.) Satır içi p bulunan CSS, divs'nin genişlemesi için içeriğe ihtiyaç duyması nedeniyle kullanılır (ayrıca p daha kısadır). CSS'nin bir harfle başlaması gerektiğinden, CSS etiketlerinden önce 'A' hazırlanmıştır.

CSS'den doldurma pikselleri verir. Bunların hiçbiri, muhtemelen bu durumda 300'ün altına düşecek olsa da, zaten zaten aşina olmadığım Unicode karakterlerini kullanmaz. Dolguyu kullanmanın göreceli avantajı, bu durumda olduğu gibi, görüntüyü, her pikseli istediğiniz boyutta havaya uçurabilmenizdir. 9 piksel kullandım, ancak fazladan bir karakter harcıyorsanız, gösterilen piksel başına 99 piksele kadar alabilirsiniz.


CSS, 127 119 118 114 100 13 0 karakter

Geçiş piçin rpihtiyaç için uzaklaşmaların display:inline, maliyet 1 karakter, -15! karakter!

Tüm renkler kaldırıldı ve JS -87 karakterlerinde bir diziye yerleştirildi. Sonra sadece tüm css kaldırıldı

JS, 300 289 280 275 329 325 karakter

c=["6B8CFF","B13425","6A6B04","E39D25"];a='0155000555540ABEC02EFEFC2EBFBF2BFEA803FFF00A6A002A69A8AA55AAF9D76FFD557FF5555F0541502A00A8AA00AA';with(document)for(i=0;i<96;write('<br>')){h=('000'+parseInt(a.slice(i,i+=6),16).toString(4)).slice(-12);for(j=0;j<12;write('<rp style="padding:1 8;background:#'+c[h[j++]]+'"></rp>'));}

Bu basit JS'den onaltılık bir dize işlemden geçirebildiğim kadar kesmeye çalıştım, ancak ilk denememe göre, sadece bildiklerimi kullanmaya başladım. HTML yazma, etiket ekleyen bir işlevle kısaltılmıştır ve sınıflar görüntülenecek rengi belirlemek için temel 4 değerini kullanır.

Ek kısaltma kullanarak, charAt'ı [] braketleri ile değiştirin, A0 sınıfını kaldırın ve p için varsayılan rengi mavi olarak ayarlayın, ek 10 karakter kaydedin. rpEtiketleri kullanmanın ek maliyeti CSS'deki büyük kayıplarla dengelenir.

While döngüsü pedinin çıkarılmasından kullanım için sadece '000' eklemeye ve -12 dilimlemeye kadar ilave ofset.

Renkler için ek JS eklendi, sonra dolguyu oraya koyun. Doldurma ile düzeltilmesi için 2 ekstra karakter gerektiren bir hata fark ettim. Bir demet halka sıkıştırılmış

HTML Dosyası, 430 429 419 399 366 342 karakter

gösteri

<script>c=["6B8CFF","B13425","6A6B04","E39D25"];a='0155000555540ABEC02EFEFC2EBFBF2BFEA803FFF00A6A002A69A8AA55AAF9D76FFD557FF5555F0541502A00A8AA00AA';with(document)for(i=0;i<96;write('<br>')){h=('000'+parseInt(a.slice(i,i+=6),16).toString(4)).slice(-12);for(j=0;j<12;write('<rp style="padding:1 8;background:#'+c[h[j++]]+'"></rp>'));}</script>

Güzel! Kodunuzdaki tüm satır sonlarını kaldırmanızı ve bir demo bağlantısı ( c99.nl ) eklemenizi öneririm . Bonus olarak, girişinizi xem.github.io/obfuscatweet kullanarak Unicode karakterlerine paketleyebilirsiniz . Bu puanınızı artıracak.
xem

ayrıca, & lt; html> etiketlerinizi kaldırabilir, & lt; style> etiketini sonuna yerleştirebilir ve son CSS kuralının / stilini ve sonunu "}" kaldırabilirsiniz.
xem

@xem Tamam Tüm satırları keser ve her şeyi ezdim. Obfuscatweet için JS'yi bölmenin optimal bir yolunu bulmaya çalışacağım.
Pusula

1
obfuscatweet herhangi bir js kodunu (böylece 289 js karakterinizi buraya koyabilirsiniz) veya herhangi bir html kodunu kabul eder (böylece html dosyanızı buraya kopyalayabilirsiniz). Obfuscatweet'in çıktısı, sağ charset meta etiketi kullanılarak bir tarayıcı konsolunda veya bir HTML dosyasında yürütülebilir.
xem

psst, CSS bölümünün son "}" kısmını kaldırmayı unuttunuz. Onsuz çalışır.
xem

5

MATLAB, 194 193 bayt

Kod:

imagesc(dec2base(base2dec(reshape('5FVQL5VVVT50A4L4HA594GAHA45A015DAL551G2L41GO101VO0A7FMAANVVAAVVVQ5VLVL40L8100L80',5,[])',32),4)-48);colormap([106 107 4;107 140 255;227 157 37;177 52 37]/255)

Ve çıktı:

Mario

Temel olarak, Mario görüntüsünü her pikselin 2 bitlik bir sayı olması için dönüştürdüm. Daha sonra kodda gösterilen dize olan üs 32'de kodladım. Bu dize ilk önce 5 x 16 (2bit sayıların her bir sırası (12 piksel)), 32 tabanına kodlanmış olarak yeniden biçimlendirilir, daha sonra tekrar 10 tabanına dönüştürülür. Sonuç, bir kez daha, 4 kez 12x16'lık bir dizi elde ederek 4 tabanına dönüştürülür. 2 bit sayılar. Bu sayılar kullanılarak çizilir imagesc(). Daha sonra renkler colormap(), gerekli onaltılık değerlerin özel bir renk haritasıyla birlikte atanır .

Eğlenceli, kullanılan bayt sayısının üçte biri sadece MATLAB'ın çizildikten sonra doğru renkleri ayarlamasını sağlamak içindir . Renk kodu neredeyse tüm base32 dizesiyle aynı bayt sayısıdır.

Rengi düzeltmeden ( colormap()çağrıyı kaldır ) 135 bayttır ve bu, MATLAB R2013a'daki varsayılan renk haritası için çıktıdır:

Mario, haritalama yok


4

JavaScript / CSS / HTML 446 430 407 353 328 316

Elimden geldiğince golf oynadım ve biraz kirli HTML / JS ile bittim, ama her neyse işe yarıyor.

Düzenleme : İşte bu ... Ben bittim.

Düzenle Bu sefer cidden yaptım.

JavaScript

for(i=0;i<192;)document.body.innerHTML+=(i%12?"":"<br>")+"<font color=#"+["6B8CFF","B13425","6A6B04","E39D25"]["000111110000001111111110002223323000023233323330023223332333022333322220000333333300002212220000022212212220222211112222332131131233333111111333331111111133001110011100022200002220222200002222"[i++]]+">█"

JSFiddle


Bağlantılı JSFiddle, burada yayınlanan sürümün aynısını içermiyor ve çalışmıyor (en azından Firefox'ta benim için). Bu arada, daha iyi çıktı için bir *{line-height:1}yardımcı olacaktır.
Manat çalışması

@ manatwork Tekrar deneyin.
SomeShinyObject

Güzel. Ama neden div? Sadece merakım için ECMAScript sürümünü denedim. 372 karakterim var: jsfiddle.net/768h7brb
manatwork 17:14

çünkü <div></div>daha kısa document.createElement('div'). Ve JSFiddle beğenmezdocument.write
SomeShinyObject 17:14

1
Karşılaştırma'nın sağ tarafında kurtulmak için üçlü operatör durumunu Ters: i%12?"":"<br>".
Manatwork

4

Matlab - 449/332 305 bayt

kısmi sıkıştırma + Alt görüntü simetrisinin kullanılması:

a=[0,0];b=[2,2];c=[3,3];d=[a,0];f=[b,2];g=[c,3];h=[b,b];i=[a,a];k=[1,1];l=[0,f,1,2;h,k;c,2,1,3,1;g,k,1;c,k,k;a,k,1,0;0,f,a;h,a];imshow(uint8([d,k,1,k,i;a,k,k,k,k,1,0;a,f,c,2,3,d;0,2,3,2,g,2,g,0;0,2,3,b,g,2,g;0,b,c,c,h,0;d,g,g,3,a;a,b,1,f,i;[l fliplr(l)]]),[107 140 255;177 52 37;106 107 4;227 157 37]/255)

- Kısmen sıkıştırılmış versiyon (332 bayt):

a=[0,0]
b=[2,2]
c=[3,3]
d=[a,0]
e=[1,1,1]
f=[b,2]
g=[c,3]
h=[b,b]
i=[a,a]
imshow(uint8([d,e,1,1,i;a,e,e,e,0;a,f,c,2,3,d;0,2,3,2,g,2,g,0;0,2,3,b,g,2,g;0,b,c,c,h,0;d,g,g,3,a;a,b,1,f,i;0,f,1,b,1,f,0;h,e,1,h;c,2,1,3,1,1,3,1,2,c;g,e,e,g;c,e,e,1,1,c;a,e,a,e,a;0,b,2,i,f,0;h,i,h]),[107 140 255;177 52 37;106 107 4;227 157 37]/255)

Tamamen sıkıştırılmamış sürüm (449 bayt):

imshow(uint8([0,0,0,1,1,1,1,1,0,0,0,0;0,0,1,1,1,1,1,1,1,1,1,0;0,0,2,2,2,3,3,2,3,0,0,0;0,2,3,2,3,3,3,2,3,3,3,0;0,2,3,2,2,3,3,3,2,3,3,3;0,2,2,3,3,3,3,2,2,2,2,0;0,0,0,3,3,3,3,3,3,3,0,0;0,0,2,2,1,2,2,2,0,0,0,0;0,2,2,2,1,2,2,1,2,2,2,0;2,2,2,2,1,1,1,1,2,2,2,2;3,3,2,1,3,1,1,3,1,2,3,3;3,3,3,1,1,1,1,1,1,3,3,3;3,3,1,1,1,1,1,1,1,1,3,3;0,0,1,1,1,0,0,1,1,1,0,0;0,2,2,2,0,0,0,0,2,2,2,0;2,2,2,2,0,0,0,0,2,2,2,2]),[107 140 255;177 52 37;106 107 4;227 157 37]/255)

Her iki durumda da çıktı (açıkça ekran üzerinde büyütülmüşse, gerçek olan 12x16 piksel):
MarioMagnified


Hey, simetriden bir şekilde faydalanıp faydalanmayacağını merak ettim. Sonunda gittiğim yöntemle bir yol bulamadım.
İnişli çıkışlı

4

C, 4999 bayt

Bu kesinlikle buradaki bazı cevaplarla rekabet edemez, ancak bir C cevabını bir şans olarak vereceğimi düşündüm. Kod tek bir uzun satırdır, işte bir pastebin bağlantısı. İsterseniz, gzip kodunun bir base64 kodlaması:

H4sICAzFGFYCA21hcmlvLmMA3Zc9DsIwDIXv0qndUqchkXwUurAgdYiFEEyIu4NYaZBI7PzNT3Lsz4mf408bjdPjct3odh6HVeujdgg4K4vzohCM8esdjHOpkrVoALUtIrBX8y1R04DKNCGZmTp85CVdAHifYuxO3mElIlju6xaRICOgCo4pD64PoiTzHnkZcHYnRhAYcEEpFznxB1mXP4TdS/KeVGYPZbmVaQHlnRVZFi65OkhoGodq+RHrby4xsTj8i6RmapXrPvfa0Q8ZWZY1/UPbSiC7Z2bYA7r0zla57Xmo8sOEzxdNYIXFhxMAAA==

Kayda değer bir harici kütüphanenin çalıştırılması gerekmez.

Doğru renkleri elde etmek için ANSI renk çıkış kodlarına RGB genişletmesini kullandığından xterm, Konsole veya GNOME terminali gerektirir (ANSI turuncu tanımı yapmaz). Açık nedenlerden dolayı, ideone işe yaramaz. Windows'da xterm kullanan Cygwin'in altında çalıştırılabilir (aslında böyle denedim). MSYS işe yarayabilir; Emin değilim.

Makinemden çıktı (xterm):

benim, mario!


2
-1, 10'un katı değil
Conor O'Brien,

Üzgünüz, skoru referans aldı
Conor O'Brien

4

Excel VBA, 310 307 295 Bayt

Anonim VBE, Mario'yu hücrelerdeki Activesheet nesnesine çıkaran Pencere işlevini hemen oluşturur A1:L16

o=2465251:Cells.RowHeight=48:a[A1:L16],-29589:a[C4:K5,D3:I7,J7,L5,A11:L13],o:a[C3:E3,H3:H4,B4:B6,C6,D4:D5,E5,I5,H6:K6,C8:H8,B9:K10,A10:L10,C11,J11,B15:D16,A16,I15:K16,L16],289642:a[D1:H1,C2:K2,E8:E10,F10:H10,H9,D11:I13,C13:E14,H13:J14],2438321:a[E11,H11],o

Yardımcı SubRutin bir

Sub a(r,c):r.Interior.Color=c:End Sub

Ungolfed Sürümü

Public Sub b()
    o = 2465251
    Cells.RowHeight = 48
    a [A1:L16], -29589
    a [C4:K5,D3:I7,J7,L5,A11:L13], o
    a [C3:E3,H3:H4,B4:B6,C6,D4:D5,E5,I5,H6:K6,C8:H8,B9:K10,A10:L10,C11,J11,B15:D16,A16,I15:K16,L16], 289642
    a [D1:H1,C2:K2,E8:E10,F10:H10,H9,D11:I13,C13:E14,H13:J14], 2438321
    a [E11,H11], o
End Sub


Private Sub a(ByRef r As Range, ByVal c As Integer)
    r.Interior.Color = c
End Sub

-3 kullanmak için boşluk -12 bayt çıkarılması için bayt [...]üzerinde gösterim Range(...)gösterimi; onaltılık renklerden int renklere geçiş

Çıktı

Benim


3

Bash 346

VT100 benzeri kaçış dizileriyle saf bash (üzgünüm o palette turuncu yok)

C="  "
B="\033[44m$C"
R="\033[41m$C"
G="\033[42m$C"
O="\033[43m$C"
N="\033[00m\n"
A="BBBRRRRRBBBBNBBRRRRRRRRRBNBBGGGOOGOBBBNBGOGOOOGOOOBNBGOGGOOOGOOONBGGOOOOGGGGBNBBBOOOOOOOBBNBBGGRGGGBBBBNBGGGRGGRGGGBNGGGGRRRRGGGGNOOGRORRORGOONOOORRRRRROOONOORRRRRRRROONBBRRRBBRRRBBNBGGGBBBBGGGBNGGGGBBBBGGGGN"
while read -n1 v
do
  printf "${!v}"
done <<< "$A"

1
Ayrı karakterler yerine, palet için bir dizi kullanarak azaltabilirsiniz. İlişkisel dizileri bildirmek uzun sürdüğü için, onu tam sayılara yeniden kodlayın. Kodunuzun 295 karakterli bir sürümü: pastebin.com/d0LW0HM1
manatwork

3

Pyth, 83 bayt

Feragatname: Bu kazanan bir aday değil çünkü soru özelliklerinden sonra dil özelliklerinden bazıları oluşturuldu.

.wc16@Lc4CM"±4%kÿjkã%"jC"T\0UP\0Z¾Õnþýn¿¿kþ©WÿõZ*Uj(©ª\0ªøÃ/ü\0?ð\0PjU©ªUª"4

İşte bir hex-dökümü:

00000000   2E 77 63 31  36 40 4C 63  34 43 4D 22  B1 34 25 6B  .wc16@Lc4CM".4%k
00000010   8C FF 6A 6B  04 E3 9D 25  22 6A 43 22  54 5C 30 55  ..jk...%"jC"T\0U
00000020   50 5C 30 01  5A BE D5 6E  FE FD 6E BF  BF 6B FE A9  P\0.Z..n..n..k..
00000030   57 FF F5 5A  2A 55 6A 28  A9 AA 5C 30  AA F8 C3 2F  W..Z*Uj(..\0.../
00000040   FC 5C 30 3F  F0 5C 30 0F  50 14 05 6A  55 A9 AA 55  .\0?.\0.P..jU..U
00000050   AA 22 34                                            ."4

Ayrıca programı buradan indirebilir ve çalıştırabilirsiniz.

python3 pyth.py mario.pyth

Bu bir dosya oluşturur o.png:

Mario

Açıklama:

Sadece 4 farklı renk var, bu yüzden her pikselin rengini korumak için sadece 2 bite ihtiyacım var.

.wc16@Lc4CM"..."jC"..."4
                  "..."   the colors of the image, 2 bit per pixel
                 C        convert these bytes to a number
                j      4  and convert it to base 4 (extracting the colors)
           "..."          the hexcodes of the 4 colors (3 byte per color)
         CM               convert each byte into its number
       c4                 split into 4 lists
     @L                   for each pixel, pick the correct list of color-list
  c16                     split into 16 rows
.w                        save it as "o.png"

Bu, mücadele edilmeden önce Pyth'in son versiyonunda çalışıyor mu?
lirtosiast

@ThomasKwa Evet, unuttum. Bir bilgiyi düzenlerim.
Jakube

2

2 - 359 karakter işleme

Bu zorluğu gördüm ve hemen İşlemenin piksel [] işlevini düşündüm. Daha kısa olacağını umuyordum, ancak kod golf alanındaki ilk girişimin bu olduğunu düşündüğümden hala oldukça memnunum.

int i,l;i=l=0;size(12,16);loadPixels();for(char c:"3b5r6b9r3b3g2o1g1o4b1g1o1g3o1g3o2b1g1o2g3o1g3o1b2g4o4g4b7o4b2g1r3g5b3g1r2g1r3g1b4g4r4g2o1g1r1o2r1o1r1g5o6r5o8r2o2b3r2b3r3b3g4b3g1b4g4b4g".toCharArray()){while(l>0){pixels[i]=#6B8CFF;if(c=='r')pixels[i]=#B13425;if(c=='g')pixels[i]=#6A6B04;if(c=='o')pixels[i]=#E39D25;i++;l--;}if(c<58){l=c-48;}}updatePixels();

ungolfed:

int i,l;i=l=0;
size(12,16);
loadPixels();
for(char c:"3b5r6b9r3b3g2o1g1o4b1g1o1g3o1g3o2b1g1o2g3o1g3o1b2g4o4g4b7o4b2g1r3g5b3g1r2g1r3g1b4g4r4g2o1g1r1o2r1o1r1g5o6r5o8r2o2b3r2b3r3b3g4b3g1b4g4b4g".toCharArray())
{
    while(l>0)
    {
        pixels[i]=#6B8CFF;
        if(c=='r')pixels[i]=#B13425;
        if(c=='g')pixels[i]=#6A6B04;
        if(c=='o')pixels[i]=#E39D25;
        i++;
        l--;
    }
    if(c<58){l=c-48;}
}
updatePixels();

burada işleme indirebilirsiniz


2

Javascript 515

str='';
"000111110000|001111111110|002223323000|023233323330|023223332333|022333322220|000333333300|002212220000|022212212220|222211112222|332131131233|333111111333|331111111133|001110011100|022200002220|222200002222"
.split("|").forEach(function(ov, ok) {
str += '<div>'
    ov.split("").forEach(function(iv, ik) {
    str += '<div style="width:1px;height:1px;background-color:' + ['#6B8CFF','#B13425','#6A6B04','#E39D25'][iv] + ';display:inline-block"></div>';
    });
    str+= '</div>';
});
document.write(str);

sadece işe koyuldu, hala içeri girmek ve golf oynamak zorunda


1
Sen değiştirebilirsiniz divvarsayılan satır içi olan bir etiketle satırları oluşturan s. Test etmedim, ancak kullanma açalışması gerekir. Bunun backgroundyerine de kullanabilirsiniz background-color.
NinjaBearMonkey 17:14

2

Perl - Ungolfed 927

Bunu daha sonra golf oynamak zorunda kalacağım. İlk defa deniyorum Image::Magick.

#!/usr/local/bin/perl
use Image::Magick;
use strict;
use warnings;

my @p = (
[0,0,0,1,1,1,1,1,0,0,0,0],
[0,0,1,1,1,1,1,1,1,1,1,0],
[0,0,2,2,2,3,3,2,3,0,0,0],
[0,2,3,2,3,3,3,2,3,3,3,0],
[0,2,3,2,2,3,3,3,2,3,3,3],
[0,2,2,3,3,3,3,2,2,2,2,0],
[0,0,0,3,3,3,3,3,3,3,0,0],
[0,0,2,2,1,2,2,2,0,0,0,0],
[0,2,2,2,1,2,2,1,2,2,2,0],
[2,2,2,2,1,1,1,1,2,2,2,2],
[3,3,2,1,3,1,1,3,1,2,3,3],
[3,3,3,1,1,1,1,1,1,3,3,3],
[3,3,1,1,1,1,1,1,1,1,3,3],
[0,0,1,1,1,0,0,1,1,1,0,0],
[0,2,2,2,0,0,0,0,2,2,2,0],
[2,2,2,2,0,0,0,0,2,2,2,2],
);
my $image = Image::Magick->new;
$image->Set(size=>'12x16');
$image->ReadImage('canvas:white');
for my $i (0..$#p) {
    for (0..(@{$p[$i]} - 1)) {
        my $color;
        $color = ($p[$i][$_] < 1 ? "#6B8CFF" : $p[$i][$_] < 2 ? "#B13425" : $p[$i][$_] < 3 ? "#6A6B04" : "#E39D25");
        print "$i : $_ : $color \n";
       $image->Set("pixel[$_,$i]"=> $color);
    }
}
#$image->Write("mario.png");
$image->Display();

Bundan bolca eminim ama işte benimki: Mario!


2

Bash yazdırılabilir: 179 158 Bayt

Kullanıcının2485710 kullanıcısının yanıtından ilham aldı .

Renkleri tam olarak eşleştirmek için terminalinizi ayarlamanız gerekir.

eval "$(base64 -d<<</AD/8AAD9Wm/2amr2Wpq1qlX/qqv9RX/1RRXVQBVpIIaqAAqoAAK8DwP1f9XVf9V|xxd -b -c3 -g0|cut -c10-33|sed $'s/../\e[4$[2#&+1]m \e[0m/g;s/^/echo /')"

gördüğüm şey bu . Yanlış bir şey mi yapıyorum?
saat

2
@ardnew: BSD base64 kullanımları -Diçin kod çözme ve -diçin hata ayıklama .
Dennis,

2

Tcl 298

package require base64
set d [base64::decode AVUABVVUCr7ALv78Lr+/K/6oA//wCmoAKmmoqlWq+ddv/VV/9VVfBUFQKgCoqgCq]
binary scan $d B* z
set i 0
foreach {a b} [split $z ""] {
if {$i % 12 == 0} {puts "\033\[0m"}
puts -nonewline "\033\[4[string map {00 4 01 1 10 2 11 3} $a$b];m  "
incr i
}
puts "\033\[0m"

Temel 64'te piksel görüntü başına 2 bit. Piksel ansi kaçış kodlarıyla eşleştirilir.

görüntü tanımını buraya girin


Denemeden bile, kodun biraz golf oynar gibi görünüyor: tio.run/…
sergiol

2

JavaScript - 256 karakter (161 obfusc-a-tweeted)

d=v=>{for(i=v&15;i--;)O.innerHTML+=`<i style="color:#${'6B8CFF6A6B04B13425E39D25'.substr(x%4*6,6)}">█</i>`+(++f%12?'':'<br>');x++},f=x=0,[..."fhilsswsssuss££cgÓdcddc¤g£stcucds³c¹cefefcc¤c§"].map(v=>(d(v=v.charCodeAt(0)-99),d(v>>4)))
<p id=O>

görüntü tanımını buraya girin

Yöntem:

  1. Bit maskesini kullanarak, 63x8 bitlik bir dize, 0-9 aralığında sayılardan oluşan bir 126x4 bitlik değer dizisi sağlar. (Sinir bozucu derecede ... 4 bit yaparak 63 karakter kazandı, ancak bitleri tekrar açmak için 50 karakter harcadı. Yine de, 13 karakter 13 karakter! :-)
  2. 4 boya rengi sırasıyla B, G, R, O sıralarına göre çevrilir.

Renk döngüsü için en uygun sırayı belirlemek için, sıkıştırma algoritmasını [R, G, B, O] 24 permütasyonunun her biri için ham verilere göre çalıştırdım ve en kısa çıktısını veren birini seçtim (126 en iyisi, en iyisi yaklaşık 150-şey)

ETA bunu sadece obfusca-tweet kullanarak diğer cevapları okuduktan sonra keşfetti ...

eval(unescape(escape`𩀽𭠽🡻𩡯𬠨𪐽𭠦𜐵𞱩𛐭𞰩𣰮𪑮𫡥𬡈𥁍𣀫👠🁩𘁳𭁹𫁥🐢𨱯𫁯𬠺𘰤𮰧𝡂𞁃𡡆𝡁𝡂𜀴𠠱𜰴𜠵𡐳𞑄𜠵𙰮𬱵𨡳𭁲𚁸𙐴𚠶𛀶𚑽𘠾ﶈ�𛱩🡠𚰨𚰫𩠥𜐲🰧𙰺𙰼𨡲🠧𚐻𮀫𚱽𛁦👸🐰𛁛𛠮𛠢𩡨𪑬𬱳𭱳𬱳𭑳𬲣𸱣𩳓𩁣𩁤𨲤𩲣𬱴𨱵𨱤𬲳𨲹𨱥𩡥𩡣𨲤𨲧𘡝𛡭𨑰𚁶🐾𚁤𚁶👶𛡣𪁡𬡃𫱤𩑁𭀨𜀩𛐹𞐩𛁤𚁶🠾𝀩𚐩𒠼𬀠`.replace(/u../g,'')))

Diğer fikirler - Her biri 4 ilave kazanç sağlayan, nadir 7,8,9 olan 3 bitlik veri aralığı 0-6'yı deneyin: 60000N. - her seferinde renk döngüsü permütasyonlarını ve her seferinde yatay olarak bir piksel dışındaki hızları kontrol edin. - Birden fazla render geçişi deneyin, böylece renkler katmanlı olabilir.


Ah, bu sadece byes değil chars hakkında olduğunu şımarttı, bu yüzden muhtemelen 16-bit karakterleri kullanarak tekrar veri yarıya olabilirdi.
İnişli çıkışlı

1

Javascript, 253 240 238 236

Obfuscatweet ed kaynağı - 253 240 238 236

document.write(unescape(escape('🁳𨱲𪑰𭀾𘠵𫐲𫰹𫑨𜰰𞐷𫁯𩰹𜐰𜑰𪰹𮡰𝱵𞑶𭁸𭰹𜱱𭐸𞐸𝡷𭰹𭑯𩱫𞐳𨱳𬁨𞐶𪡭𪡥𞐶𬁬𫡵𞐶𭠷𮐲𞑭𝐸𜀹𭁨𮡯𞐳𨡥𨰵𘠮𬱰𫁩𭀨𞐩𛡦𫱲𡑡𨱨𚁦𭑮𨱴𪑯𫠨𨰩𮱤👤𫱣𭑭𩑮𭀻𨰽𬁡𬡳𩑉𫡴𚁣𛀳𝠩𛡴𫱓𭁲𪑮𩰨𝀩𞱷𪁩𫁥𚁣𛡬𩑮𩱴𪀼𜐲𚑣🐢𜀢𚱣𞱣𛡳𬁬𪑴𚀢𘠩𛡦𫱲𡑡𨱨𚁦𭑮𨱴𪑯𫠨𭠩𮱤𛡷𬡩𭁥𚀢🁰𘁳𭁹𫁥🐧𩁩𬱰𫁡𮐺𪑮𫁩𫡥𞱰𨑤𩁩𫡧𞠹𞱢𨑣𪱧𬡯𭑮𩀺𘰢𚱛𘠶𠠸𠱆𡠢𛀢𝡁𝡂𜀴𘠬𘡅𜰹𡀲𝐢𛀢𠠱𜰴𜠵𘡝𦰫𭡝𚰢𙰾🀯𬀾𘠩𯐩𞱤𛡷𬡩𭁥𚀢🁢𬠾𘠩𯐩🀯𬱣𬡩𬁴🠠').replace(/uD./g,'')))

Bağışsız - 395 370 365 361

<script>"5m2o9mh3097log9101pk9zp7u9vtxw93qu8986ww9uogk93csph96jmje96plnu96v7y29m5809thzo93bec5".split(9).forEach(function(c){d=document;c=parseInt(c,36).toString(4);while(c.length<12)c="0"+c;c.split("").forEach(function(v){d.write("<p style='display:inline;padding:9;background:#"+["6B8CFF","6A6B04","E39D25","B13425"][+v]+"'></p>")});d.write("<br>")})</script>

Hileler için <p>@ compass ve 2 (5) karakter için @ xem'e teşekkürler .

gösteri

36 tabanından verileri dönüştürür ve 4 tabanına dönüştürür.


Test edemiyorum, ama sanırım padding:9ondan sonra bir birim olmadan bir şey yapmıyor. Ayrıca gibi tek harfli elemanı kullanabilir aveya qo yerine, satır içi örtülü olduğunu p.
NinjaBearMonkey 17:14

@hsl Demo bağlantısını güncelledim ve en azından Mac'teki Chrome, Firefox ve Safari yazılımımda iyi çalışıyor.
Snack

-2 bayt: "|" yerine dize ve bölünmüş 9 tarafından. Ayrıca, 3 kez "document.write" kullanırsınız, 24 b gibi kaydetmek için bir var koymak gerekir
xem

@xem Numara bölme numarasını bana hatırlattığın için teşekkürler. Ve document.writedeğişkene atayamayacağımızdan (kullanmalıyız document.write.bind(document)), elimden gelenin en iyisini documentdeğişkene atamak oldu.
Snack

ya da bunu ilk kez yapabilirsiniz: (d = belge) [w = "yazma"] (/ * yazılacak şeyler * /) ve sonra şunu yapın: d [w] ("Merhaba")
xem

1

JavaScript ES6 (HTML + CSS), 199 307 3195 3630

Kullanılması Obfusc-a-tweet :

eval(unescape(escape('𬰽𦱝𒠧𜰹𮡲𬀳𝁤𩡬𜱪𩱴𜐴𨡷𭐵𝁢𪱣𩠴𝱰𜡨𜱦𫁹𭀳𪑮𪀱𝀵𝀸𞐶𫑳𫱡𞑰𩡥𝰹𭁺𝑲𞑤𝁢𜰳𝁨𩁸𝀵𩀴𞐶𫠹𩱱𙰮𫑡𭁣𪀨𛰮𮰵𯐯𩰩𛡦𫱲𡑡𨱨𚀨𫠬𪐩🐾𦰮𛠮𬁡𬡳𩑉𫡴𚁮𛀳𝠩𛡴𫱓𭁲𪑮𩰨𝀩𧐮𩡯𬡅𨑣𪀨𚁭𛁪𚐽🡳𛡰𭑳𪀨𪠫𜐫𙱰𮀠𙰫𚀫𪐫𜐩𚰧𬁸𘀣𙰫𦰧𠠱𜰴𜠵𙰬𙰶𠠸𠱆𡠧𛀧𝡁𝡂𜀴𙰬𙱅𜰹𡀲𝐧𧑛𚱭𧐩𚐩𒡤𫱣𭑭𩑮𭀮𭱲𪑴𩐨𙰼𬀠𬱴𮑬𩐽𘡷𪑤𭁨𞠱𬁸𞱨𩑩𩱨𭀺𜑰𮀻𨡯𮀭𬱨𨑤𫱷𞠧𚱳𚰧𘠧𚐠').replace(/uD./g,'')))

Bu, herhangi bir görüntü veya çoklu eleman kullanmadan sprite görüntüler; yalnızca box-shadowher pikseli oluşturmak için CSS özelliğini kötüye kullanır. Http://jsbin.com/pozohiyezo/ adresinde deneyin . Bu unffccated sürüm 307 karakterdir :

s=[]
'39zrp34dfl3jgt14bwu54bkcf47p2h3flyt3inh1454896msoa9pfe79tz5r9d4b334hdx45d496n9gq'.match(/.{5}/g).some((n,i)=>[...parseInt(n,36).toString(4)].forEach((m,j)=>s.push(j+1+'px '+(+i+1)+'px #'+['B13425','6B8CFF','6A6B04','E39D25'][+m])))
document.write('<p style="width:1px;height:1px;box-shadow:'+s+'"')

Bu orijinal, düz vanilya HTML versiyonudur. Http://jsfiddle.net/gfeLn1ey/1/ adresinde çalışırken görün .

<p style="width:1px;height:1px;box-shadow:4px 1px 0 #B13425,5px 1px 0 #B13425,6px 1px 0 #B13425,7px 1px 0 #B13425,8px 1px 0 #B13425,12px 1px 0 #6B8CFF,3px 2px 0 #B13425,4px 2px 0 #B13425,5px 2px 0 #B13425,6px 2px 0 #B13425,7px 2px 0 #B13425,8px 2px 0 #B13425,9px 2px 0 #B13425,10px 2px 0 #B13425,11px 2px 0 #B13425,12px 2px 0 #6B8CFF,3px 3px 0 #6A6B04,4px 3px 0 #6A6B04,5px 3px 0 #6A6B04,6px 3px 0 #E39D25,7px 3px 0 #E39D25,8px 3px 0 #6A6B04,9px 3px 0 #E39D25,12px 3px 0 #6B8CFF,2px 4px 0 #6A6B04,3px 4px 0 #E39D25,4px 4px 0 #6A6B04,5px 4px 0 #E39D25,6px 4px 0 #E39D25,7px 4px 0 #E39D25,8px 4px 0 #6A6B04,9px 4px 0 #E39D25,10px 4px 0 #E39D25,11px 4px 0 #E39D25,12px 4px 0 #6B8CFF,2px 5px 0 #6A6B04,3px 5px 0 #E39D25,4px 5px 0 #6A6B04,5px 5px 0 #6A6B04,6px 5px 0 #E39D25,7px 5px 0 #E39D25,8px 5px 0 #E39D25,9px 5px 0 #6A6B04,10px 5px 0 #E39D25,11px 5px 0 #E39D25,12px 5px 0 #E39D25,2px 6px 0 #6A6B04,3px 6px 0 #6A6B04,4px 6px 0 #E39D25,5px 6px 0 #E39D25,6px 6px 0 #E39D25,7px 6px 0 #E39D25,8px 6px 0 #6A6B04,9px 6px 0 #6A6B04,10px 6px 0 #6A6B04,11px 6px 0 #6A6B04,12px 6px 0 #6B8CFF,4px 7px 0 #E39D25,5px 7px 0 #E39D25,6px 7px 0 #E39D25,7px 7px 0 #E39D25,8px 7px 0 #E39D25,9px 7px 0 #E39D25,10px 7px 0 #E39D25,12px 7px 0 #6B8CFF,3px 8px 0 #6A6B04,4px 8px 0 #6A6B04,5px 8px 0 #B13425,6px 8px 0 #6A6B04,7px 8px 0 #6A6B04,8px 8px 0 #6A6B04,12px 8px 0 #6B8CFF,2px 9px 0 #6A6B04,3px 9px 0 #6A6B04,4px 9px 0 #6A6B04,5px 9px 0 #B13425,6px 9px 0 #6A6B04,7px 9px 0 #6A6B04,8px 9px 0 #B13425,9px 9px 0 #6A6B04,10px 9px 0 #6A6B04,11px 9px 0 #6A6B04,12px 9px 0 #6B8CFF,1px 10px 0 #6A6B04,2px 10px 0 #6A6B04,3px 10px 0 #6A6B04,4px 10px 0 #6A6B04,5px 10px 0 #B13425,6px 10px 0 #B13425,7px 10px 0 #B13425,8px 10px 0 #B13425,9px 10px 0 #6A6B04,10px 10px 0 #6A6B04,11px 10px 0 #6A6B04,12px 10px 0 #6A6B04,1px 11px 0 #E39D25,2px 11px 0 #E39D25,3px 11px 0 #6A6B04,4px 11px 0 #B13425,5px 11px 0 #E39D25,6px 11px 0 #B13425,7px 11px 0 #B13425,8px 11px 0 #E39D25,9px 11px 0 #B13425,10px 11px 0 #6A6B04,11px 11px 0 #E39D25,12px 11px 0 #E39D25,1px 12px 0 #E39D25,2px 12px 0 #E39D25,3px 12px 0 #E39D25,4px 12px 0 #B13425,5px 12px 0 #B13425,6px 12px 0 #B13425,7px 12px 0 #B13425,8px 12px 0 #B13425,9px 12px 0 #B13425,10px 12px 0 #E39D25,11px 12px 0 #E39D25,12px 12px 0 #E39D25,1px 13px 0 #E39D25,2px 13px 0 #E39D25,3px 13px 0 #B13425,4px 13px 0 #B13425,5px 13px 0 #B13425,6px 13px 0 #B13425,7px 13px 0 #B13425,8px 13px 0 #B13425,9px 13px 0 #B13425,10px 13px 0 #B13425,11px 13px 0 #E39D25,12px 13px 0 #E39D25,1px 14px 0 #6B8CFF,2px 14px 0 #6B8CFF,3px 14px 0 #B13425,4px 14px 0 #B13425,5px 14px 0 #B13425,6px 14px 0 #6B8CFF,7px 14px 0 #6B8CFF,8px 14px 0 #B13425,9px 14px 0 #B13425,10px 14px 0 #B13425,11px 14px 0 #6B8CFF,12px 14px 0 #6B8CFF,1px 15px 0 #6B8CFF,2px 15px 0 #6A6B04,3px 15px 0 #6A6B04,4px 15px 0 #6A6B04,5px 15px 0 #6B8CFF,6px 15px 0 #6B8CFF,7px 15px 0 #6B8CFF,8px 15px 0 #6B8CFF,9px 15px 0 #6A6B04,10px 15px 0 #6A6B04,11px 15px 0 #6A6B04,12px 15px 0 #6B8CFF,1px 16px 0 #6A6B04,2px 16px 0 #6A6B04,3px 16px 0 #6A6B04,4px 16px 0 #6A6B04,5px 16px 0 #6B8CFF,6px 16px 0 #6B8CFF,7px 16px 0 #6B8CFF,8px 16px 0 #6B8CFF,9px 16px 0 #6A6B04,10px 16px 0 #6A6B04,11px 16px 0 #6A6B04,12px 16px 0 #6A6B04,6px 6px 0 5px #6B8CFF"

TIL, <p etiketini kapatamazsın :)
xem

Bu kod regpack gibi bir araçta çok iyi bir sıkıştırma yapabilir. İşte 729b'deki bir örnek (JS, HTML'yi yazmak için kullanılıyor olsa da): goo.gl/7fF7kx
xem

@xem JS ile kod oluşturmayı bile düşünmemiştim, ancak kodun şeklini izleyerek daha kısa bir satın alma işlemi yapabildim.
NinjaBearMonkey 17:14

1

Javascript, 256 veya 245 252 veya 241

256

document.write("k6n56kcraqlaqasasjaqbsasibtdlstlb2cmc2b2cid5dra2q3q2au7u55rj4j4kclcidld".replace(/./g,function(x){return new Array((x=parseInt(x,36))&7).join("<li style=padding:4%;float:left;background:#"+['B13425','6A6B04','6B8CFF','E39D25'][x>>3]+">")}))

256'yı geçersiz kılmak üzücü, ancak yazdırılamayan karakterler kullanıyorsanız 245 mümkündür:

document.write(btoa(">§ç©­ª¥j¦¬jÈÚ©»²&ív[-½ÍÙÈåÚÚÚ­êÙ«»»køÉ\\Ù]").replace(/./g,function(x){return new Array((x=parseInt(x,36))&7).join("<li style=padding:4%;float:left;background:#"+["B13425","6A6B04","6B8CFF","E39D25"][x>>3]+">")}))

Yazdırılamayan karakterlerle çözüm göndermede bazı sorunlar var. Argümanı, kaçış ters eğik çizgi için eklenmiş 1 uzunluk sembolüyle btoasonuçlanmak zorundadır atob("ij6n56kcraqlaqasasjaqbsasibtdlstlb2cmc2b2cid5dra2q3q2au7u55rj4j4kclcidld").

Her iki çözümü de 4 sembolle kısaltın: dizi oluşturma için yeni ihtiyacımız yok.

252

document.write("k6n56kcraqlaqasasjaqbsasibtdlstlb2cmc2b2cid5dra2q3q2au7u55rj4j4kclcidld".replace(/./g,function(x){return Array((x=parseInt(x,36))&7).join("<li style=padding:4%;float:left;background:#"+['B13425','6A6B04','6B8CFF','E39D25'][x>>3]+">")}))

241

document.write(btoa("©ùêG+j©Z©«²6ªnƬ»]Ëeog&sför'yv¶¶«z¶jîîçãâ>$rVÚÙ]").replace(/./g,function(x){return Array((x=parseInt(x,36))&7).join("<li style=padding:4%;float:left;background:#"+['B13425','6A6B04','6B8CFF','E39D25'][x>>3]+">")}))

Bu sürümde kaçmaya gerek yoktur. btoaArgümanı sonucuduratob("k6n56kcraqlaqasasjaqbsasibtdlstlb2cmc2b2cid5dra2q3q2au7u55rj4j4kclbaidld")


Bu konuda yazdırılamayan problemi ve son meydan okumamı da farkettim. Bu yardımcı olur eğer sadece 8, 9 ve 13 karakter olduğunu düşündüm (kolayca yanılıyor olsam da)
Bumpy

1

Perl, 266 260 257 249 245 bayt

$_="444111114444441111111114442223323444423233323334423223332333422333322224444333333344442212224444422212212224222211112222332131131233333111111333331111111133441114411144422244442224222244442222";s/\d/\033[4$&m  /g;s/.{84}/$&\033[00m\n/g;print

Bir VT100 tarzı çıktı yazmak için user2485710'un bash çözümüne benzer bir yaklaşım kullanır. Her 12 "vt100 piksel", 12 * 7 = 84 yeni satır ekleyerek yeni N satırını soyun.


1

SmileBASIC, 147 136 karakter

P$="xxxxxxxx
FOR I=0TO 191C=ASC("xxxxxxxxxxxxxxxxxxxxxxxx"[I/8])>>I MOD 8*2AND 3GPSET I/16,15AND I,ASC(P$[C*2])<<16OR ASC(P$[C*2+1])NEXT

Çıktı (kırpılmış): ekran görüntüsü

Veri dizgilerindeki tüm karakterleri x's' ile değiştirdim, karakter karakterleri (UCS-2'de):
P$(Palet): FF6B,8CFF,FFB1,3425,FF6A,6B04,FFE3,D925
Resim verisi:0000,83F8,0A80,A3FA,8BE4,A5EA,BEA5,A55A,7EE5,0575,BFF5,0156,BFF5,0156,BBA5,0575,3AF4,A55A,3BC4,A5EA,0BC4,A3FA,0300,83F8

Palet bir dizgide saklanır, her renk (32 bit) iki karakterde (her biri 16 bit) saklanır. Resim verileri (piksel başına 2 bit) başka bir dizgide saklanır (karakter başına 8 piksel)
Neyse ki, meydan okuma karakterlerle puanlanır, çünkü bu dosya UTF-8'de kaydedilmişse önemli ölçüde daha büyüktür.


1

05AB1E , 87 bayt ( Yarışmıyor )

•8,vkJíÝ1¢tt6,9XÂck$XSãõO©Ú"›qf®¸Ì#}„K0ÝCìxý}É~ð_áú•4BSvy•3«WKyÛòèz*Ðeb•16B6ôè'#ì})12ô»

Çevrimiçi deneyin!

Çıktılar:

#B13425 #B13425 #B13425 #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #B13425 #B13425 #B13425 #B13425
#B13425 #B13425 #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #B13425
#B13425 #B13425 #6A6B04 #6A6B04 #6A6B04 #E39D25 #E39D25 #6A6B04 #E39D25 #B13425 #B13425 #B13425
#B13425 #6A6B04 #E39D25 #6A6B04 #E39D25 #E39D25 #E39D25 #6A6B04 #E39D25 #E39D25 #E39D25 #B13425
#B13425 #6A6B04 #E39D25 #6A6B04 #6A6B04 #E39D25 #E39D25 #E39D25 #6A6B04 #E39D25 #E39D25 #E39D25
#B13425 #6A6B04 #6A6B04 #E39D25 #E39D25 #E39D25 #E39D25 #6A6B04 #6A6B04 #6A6B04 #6A6B04 #B13425
#B13425 #B13425 #B13425 #E39D25 #E39D25 #E39D25 #E39D25 #E39D25 #E39D25 #E39D25 #B13425 #B13425
#B13425 #B13425 #6A6B04 #6A6B04 #6B8CFF #6A6B04 #6A6B04 #6A6B04 #B13425 #B13425 #B13425 #B13425
#B13425 #6A6B04 #6A6B04 #6A6B04 #6B8CFF #6A6B04 #6A6B04 #6B8CFF #6A6B04 #6A6B04 #6A6B04 #B13425
#6A6B04 #6A6B04 #6A6B04 #6A6B04 #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6A6B04 #6A6B04 #6A6B04 #6A6B04
#E39D25 #E39D25 #6A6B04 #6B8CFF #E39D25 #6B8CFF #6B8CFF #E39D25 #6B8CFF #6A6B04 #E39D25 #E39D25
#6A6B04 #6A6B04 #6A6B04 #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6A6B04 #6A6B04 #6A6B04
#6A6B04 #6A6B04 #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6B8CFF #6A6B04 #6A6B04
#B13425 #B13425 #6B8CFF #6B8CFF #6B8CFF #B13425 #B13425 #6B8CFF #6B8CFF #6B8CFF #B13425 #B13425
#B13425 #6A6B04 #6A6B04 #6A6B04 #B13425 #B13425 #B13425 #B13425 #6A6B04 #6A6B04 #6A6B04 #B13425
#6A6B04 #6A6B04 #6A6B04 #6A6B04 #B13425 #B13425 #B13425 #B13425 #6A6B04 #6A6B04 #6A6B04 #6A6B04

Çünkü 05AB1E herhangi bir renk ya da grafik yapamaz ... Bu kabul edilebilir değilse, sileceğim.


Bir Bash sarmalayıcı yazıp çözümünüzü söyleyebilirsinizBash + 05AB1E
Pavel

1
@Pavel Bunu yapmayı düşünüyordum, sanırım bu çözümü bir başkasınınkiyle eşleştireceğim; P.
Magic Octopus Urn

"Kazanır"
diyemem

0

Sinclair BASIC - 573 bayt

Tamam, yani Spektrum belirtildiği gibi RGB renklerini gösteremiyor, bu yüzden mümkün olan en yakınını kullandık.

10 let x=0:let y=0:let i=0
20 let a$="1c2e1f2i1c4c6b461d4646c46c1b464b6c46c14b6d4d1d6g1d4b24c1e4c24b24c14d2d4d6b4262b6246e2f6e2c1b2c6b1b2c1b2c1c4c1d4c14d1d4d"
30 let l=len a$
40 let i=i+1:let c=1:let p=0:let k=val a$(i)
50 if a$(i+1)>="a" then let c=code a$(i+1)-96:let i=i+1
60 print at y,x;ink k;"\::":let p=p+1:let x=x+1:if x=12 then let x=0:let y=y+1
70 if p<c then goto 60
80 if i<l then goto 40

Dize renktir (1 = mavi, 2 = kırmızı vb.) Ve ardından bloğun kaç kez tekrar ettiğini gösteren bir mektup (ASCII değeri eksi 96, 1,2,3 vb. Olduğunda). Harfsiz sayısından sonra sadece bir blok çizer.

"\::"60. satırda, Sigorta emülatörüne yüklemek için bir TAP dosyasına dönmeden önce bir metin düzenleyicide grafiklerin nasıl girileceğidir. (Ekranda katı blok grafik olarak gösterilir).

Her anahtar kelime, Sinclair BASIC’de bir bayttır, üretildikten sonra bir PEEK komutundan bir sayım içerir.

Bu bir Mario


0

Perl - 399 171 bayt

use MIME::Base64;$_='R0lGODdhDAAQAKEEAGuM/+OdJWprBLE0JSwAAAAADAAQAAACNoSHaAvpaoQMQQRmLdUXZM55XCUJDIVSmDCUjMhKrQSzSamxAbKP+5P6PQaqBiSxcCVpuJWkAAA7';
print decode_base64($_)

GIF dosyasını stdout'a yazar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.