Kodare krymper Snake till 56 byte

Permalänk
Melding Plague

Kodare krymper Snake till 56 byte

Hela spelets kod ryms i en QR-kod.

Läs hela artikeln här

Visa signatur

Observera att samma trivselregler gäller i kommentarstrådarna som i övriga forumet och att brott mot dessa kan leda till avstängning. Kontakta redaktionen om du vill uppmärksamma fel i artikeln eller framföra andra synpunkter.

Permalänk

Som ökänd tjatig "code gatekeeper" så tycker jag att det här är programmering eftersom här skriver du med förmodan tillräcklig förståelse av hårdvaran istället för högnivåspråk där du mer eller mindre slipper förstå vad som egentligen händer på hårdvarunivå - på gott och ont.

Det jag undrar är om källkoden endast fungerar på särskilda processorarkitekturer i och med olika instruktionsuppsättningar?🤔

Med allt det sagt så menar jag inte att denna programmerare nödvändigtvis kan extrapolera till att skriva världsrevolutionerande kod bara för det och/eller lika 2000-talsliknande webbplatser som jag!😂

Mvh,
WKF.

Visa signatur

"Den säkraste koden är den som aldrig skrivs"
"Visste du förresten att det är ett mångmiljardbolag?"
"Jag lever inte för att koda utan kodar för att sen kunna leva"

Permalänk
Medlem

När jag gick en programmeringskurs för 9 år sedan så kunde man enkelt koda "snake" på 1 rad kod, med cirka 100 tecken i C#.
Det enda som blir kortare i assembler är väl egentligen syntaxen och att man flyttar bit istället för byte (8st 1'or/0'or).

Visa signatur

*5800X|B550M|64GB|RTX2080S|GX750W|Core V21|280AIO|2TB+2TB|1440p 240Hz

AMD Ryzen 7 @4,95GHz|Gigabyte Aorus Elite(rev1.3)|Corsair 2x32 LPX Vengeance 2666C16 @3600C20|Gigabyte Windforce OC @Stock|Seasonic Focus| Thermaltake mATX kub|Arctic freezer II| NVMe SSD PCIE 4.0x4 Samsung 980 Pro 7000/5100 + 2,5" HDD Toshiba 1TB & Seagate 1TB i RAID 0|Acer Nitro XV272Uz 27" IPS 270Hz @240Hz.

Permalänk
Medlem

Bootsektor demos var en grej på amiga-tiden. Två första sektorerna på disken, d.v.s. 1024 bytes och folk fick in boot och start av grafiska demon, såg även en med "musik".

Men 56 bytes för masken är onekligen imponerande!

Edit: Ett par exempel på bootros (jag blir fortfarande imponerad av att man fixar det på 1024 bytes inkl. koden för att boota):
https://youtu.be/ZhpwZH_0yjk?si=vFLdE2fA7QjJjnGN
https://youtu.be/w1KsMGhofNI?si=eWEnWsNarlVswBl4

Visa signatur

Amd o Apple

Permalänk
Medlem
Skrivet av Fenrisulvfan:

När jag gick en programmeringskurs för 9 år sedan så kunde man enkelt koda "snake" på 1 rad kod, med cirka 100 tecken i C#.
Det enda som blir kortare i assembler är väl egentligen syntaxen och att man flyttar bit istället för byte (8st 1'or/0'or).

Det är inte längden på källkoden som räknas, så syntaxen är irrelevant. Det är längden på det körbara programmet - dvs den genererade .COM eller .EXE filen.

Permalänk
Medlem
Skrivet av Fenrisulvfan:

När jag gick en programmeringskurs för 9 år sedan så kunde man enkelt koda "snake" på 1 rad kod, med cirka 100 tecken i C#.
Det enda som blir kortare i assembler är väl egentligen syntaxen och att man flyttar bit istället för byte (8st 1'or/0'or).

Hur stort är ditt C#-projekt med alla tillhörande bibliotek? Själv har jag aldrig kompilerat C# till MS-DOS, så har dålig koll på vad som krävs där.

Edit:
Länk till binär-filen på 56 bytes:
https://github.com/donno2048/snake/blob/master/demo/snake.com

Permalänk
Medlem
Skrivet av Fenrisulvfan:

När jag gick en programmeringskurs för 9 år sedan så kunde man enkelt koda "snake" på 1 rad kod, med cirka 100 tecken i C#.
Det enda som blir kortare i assembler är väl egentligen syntaxen och att man flyttar bit istället för byte (8st 1'or/0'or).

Tror inte det är rader kod eller antal tecken i ett högnivåspråk det handlar om, utan storleken på kompilerad binär.

Permalänk
Hedersmedlem
Skrivet av WebbkodsFrilansaren:

Som ökänd tjatig "code gatekeeper" så tycker jag att det här är programmering eftersom här skriver du med förmodan tillräcklig förståelse av hårdvaran istället för högnivåspråk där du mer eller mindre slipper förstå vad som egentligen händer på hårdvarunivå - på gott och ont.

Det jag undrar är om källkoden endast fungerar på särskilda processorarkitekturer i och med olika instruktionsuppsättningar?🤔

Med allt det sagt så menar jag inte att denna programmerare nödvändigtvis kan extrapolera till att skriva världsrevolutionerande kod bara för det och/eller lika 2000-talsliknande webbplatser som jag!😂

Mvh,
WKF.

Källkoden här är 3,76 kB assembler, och funkar bara på x86-processorer.

Permalänk
Medlem
Skrivet av walkir:

Hur stort är ditt C#-projekt med alla tillhörande bibliotek? Själv har jag aldrig kompilerat C# till MS-DOS, så har dålig koll på vad som krävs där.

Edit:
Länk till binär-filen på 56 bytes:
https://github.com/donno2048/snake/blob/master/demo/snake.com

Jag har inte kört det i MS-DOS alls, bara genom HTML med något som hette razer vilket tillåter C#-kod och har nog gjort nåt liknande i Javascript också. Själva kompilatorn har jag inte pillat med utan bara använt färdiga lösningar.

Visa signatur

*5800X|B550M|64GB|RTX2080S|GX750W|Core V21|280AIO|2TB+2TB|1440p 240Hz

AMD Ryzen 7 @4,95GHz|Gigabyte Aorus Elite(rev1.3)|Corsair 2x32 LPX Vengeance 2666C16 @3600C20|Gigabyte Windforce OC @Stock|Seasonic Focus| Thermaltake mATX kub|Arctic freezer II| NVMe SSD PCIE 4.0x4 Samsung 980 Pro 7000/5100 + 2,5" HDD Toshiba 1TB & Seagate 1TB i RAID 0|Acer Nitro XV272Uz 27" IPS 270Hz @240Hz.

Permalänk
Medlem
Skrivet av Fenrisulvfan:

Jag har inte kört det i MS-DOS alls, bara genom HTML med något som hette razer vilket tillåter C#-kod och har nog gjort nåt liknande i Javascript också. Själva kompilatorn har jag inte pillat med utan bara använt färdiga lösningar.

Bakom allt du pratar om så finns det många många MB av dll:er, JITen, etc. Hela .net / .net core ramverket. Eller V8-motorn för javascript, chromium (eller liknande) för att rendera i browsern.

Detta är en ren exekverbar fil. Ditt exempel är flera miljoner gånger större.

Lite kuriosa: Anledningen att han gjort en .com ist för en .exe är att exe-filer har en "stor" header. Har för mig att det är 512 bytes.

Visa signatur

Hur många datorer är för många?

Permalänk
Medlem
Skrivet av Fenrisulvfan:

Jag har inte kört det i MS-DOS alls, bara genom HTML med något som hette razer vilket tillåter C#-kod och har nog gjort nåt liknande i Javascript också. Själva kompilatorn har jag inte pillat med utan bara använt färdiga lösningar.

Då talar vi nog ungefär i runda slängar om minst 200MB i kompilerad kod

Edit: @kelthar var snabbare och mer konkret!

Tänk lite som dagens Electron-appar (och motsvarande) som ofta bundlar en komplett webbmotor.

Permalänk
Medlem

Får mig att tänka på programmeringstävlingen i Datormagazin runt 1986, där vinnaren slog till med masken på 7st rader i C64 Basic.

Sen har vi det här 256bytes demot:
https://youtu.be/sWblpsLZ-O8?si=bkrZtOItrJWAgX5l
Det imponerar mer på mig.