Graal Forums

Graal Forums (https://forums.graalonline.com/forums/index.php)
-   NPC Scripting (https://forums.graalonline.com/forums/forumdisplay.php?f=8)
-   -   Programming Exercise #7: Quine (https://forums.graalonline.com/forums/showthread.php?t=134259237)

Tolnaftate2004 05-19-2010 07:59 AM

Programming Exercise #7: Quine
 
Hello all, and welcome to the return of Programming Exercises! If people still like this, maybe I'll do more.

Your mission, should you choose to accept it, is to write a quine. What is a quine you might ask? Well, a quine is a bit of self-replicating code. In particular, it is a code that produces its own source code as its only output.

Write as short a quine as you can!

This is unlike any previous exercise, but you may also want to take a look at exercises #1, #2, #3, #4, #5, and #6 for previous discussions or for fun.

e: Now open for suggestions for the difficulty of PE#8.

cbk1994 05-19-2010 08:17 AM

PHP Code:

function onCreated() {
  
temp.lines.loadLines("weapons/weaponQuine.txt");
  
lines.saveLines("data/output.txt"false);


Do I win?

Tolnaftate2004 05-19-2010 08:22 AM

Quote:

Originally Posted by cbk1994 (Post 1577298)
Do I win?

I had a feeling this would be the first post. :) Very clever.

Let's try to avoid joining classes, using public functions, and using file I/O. The script should be self-contained and independent of filename and other files.

Deas_Voice 05-19-2010 12:22 PM

urgh, i can only come up with infinite-code :(

Edit:
could just post it here for others to see~
PHP Code:

function onCreated() {
  echo(
"
    function onCreated() {
    echo(/"
function onCreated() {
      
/*infinity echos here*/ 
      
}/");
    }
  "
);



fowlplay4 05-19-2010 04:14 PM

PHP Code:

function onCreated() { temp.'"'temp."function onCreated() { temp.q = '%s'; temp.s = %s%s%s; temp.s = format(temp.s, temp.q, temp.q, temp.s, temp.q); echo(temp.s); }"temp.format(temp.stemp.qtemp.qtemp.stemp.q); echo(temp.s); } 


DeCeaseD 05-19-2010 06:17 PM

Don't get this at all.. you should make programming exercises for people who are at a more average level. x_x

fowlplay4 05-19-2010 07:00 PM

Quote:

Originally Posted by DeCeaseD (Post 1577349)
Don't get this at all.. you should make programming exercises for people who are at a more average level. x_x

There's not much to it, write code that outputs itself.

xAndrewx 05-19-2010 07:04 PM

which helps out the graal community in so many ways!! o_o

Fulg0reSama 05-19-2010 08:24 PM

It helps polish the experienced scripters skills.

salesman 05-19-2010 08:37 PM

So by not posting anything, everyone completed the exercise in a way? ez

coreys 05-19-2010 09:40 PM

Quote:

Originally Posted by salesman (Post 1577382)
So by not posting anything, everyone completed the exercise in a way? ez

Quote:

Originally Posted by wikipedia
In some languages, an empty source file is a fixed point of the language, producing no output. Such an empty program, submitted as "the world's smallest self reproducing program", once won the "worst abuse of the rules" prize in the Obfuscated C contest.[1]

:)

DrakilorP2P 05-19-2010 11:15 PM

Probably the most awkward approach possible.

PHP Code:

function quine() {
temp.q=function(s){temp.o="";temp.i=0;for(i=0;i<s.length();++i){temp.c=s.substring(i,1);if(c=="\n")o@="\\n";elseif(c=="\"")o@="\\\"";elseif(c=="\\")o@="\\\\";else o@=c;}return o;};
temp.s="function quine() {\ntemp.q=function(s){temp.o=\"\";temp.i=0;for(i=0;i<s.length();++i){temp.c=s.substring(i,1);if(c==\"\\n\")o@=\"\\\\n\";elseif(c==\"\\\"\")o@=\"\\\\\\\"\";elseif(c==\"\\\\\")o@=\"\\\\\\\\\";else o@=c;}return o;};\ntemp.s=\"STR\";\ntemp.p=temp.s.pos(\"STR\");\nreturn temp.s.substring(0,temp.p)@temp.q(temp.s)@temp.s.substring(temp.p+3);\n}";
temp.p=temp.s.pos("STR");
return 
temp.s.substring(0,temp.p)@temp.q(temp.s)@temp.s.substring(temp.p+3);



DeCeaseD 05-20-2010 12:44 AM

Quote:

Originally Posted by Fulg0reSama (Post 1577379)
It helps polish the experienced scripters skills.

And how exactly do experienced scripters get more experience through doing things they can obviously do? If anything, these exercises should be helping newer scripters learn.

fowlplay4 05-20-2010 01:29 AM

Quote:

Originally Posted by DeCeaseD (Post 1577432)
And how exactly do experienced scripters get more experience through doing things they can obviously do? If anything, these exercises should be helping newer scripters learn.

They're more so mental exercises, obviously there's no real practical use to quine's in the Graal world unless you wanted to make some over the top self-replicating virus.

I.e: Reads level links, leaves a mark, moves on to the new levels, and dies upon entering a marked level while wreaking whatever havoc using any side functions it has. The script should be able to remain in the level, and if re-uploaded the replication process begins again.

The newer scripters could at least attempt the exercises, and maybe even do research of their own before giving up.

Bell 05-20-2010 02:24 AM

Think of it as a scripters puzzle game. They do it for fun.


All times are GMT +2. The time now is 12:28 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.