OKAY, I HAVE A CONTEST FOR ANY N# PEOPLE!!!
I now present...the International Obfuscated N# Code Contest!
In this contest, you will make an N# program that is as obfuscated as can be. As for what it is, that will be up to you.
The only rule is that you must use N# Beta 1.5. Be creative! (This means not using inline SB for the entire program. It will not be a disqualification, but I won't like it.)
Winners will be selected in the following categories:
Most unreadable code
Most exploitive of N# glitches
Most elaborate program
Best overall entry
HOW TO SUBMIT YOUR PROGRAM:
Upload your program and send the download key to me via site PM. Make sure to send me the N# source and not the compiled output! I myself will compile the program on my copy on N# to eliminate any possibility of cheaters modifying the compiler.
JUDGING PROCESS:
I myself will judge programs in the most unbiased manner as possible. I will accept programs through April 15, 2016. Results will be posted within two weeks of the deadline.
EXAMPLE ENTRY:
I will notice if you just copy this program.
N# Discussion/Help Thread
Root / Talk About Programs / [.]
computableeCreated:
Now that N# is pretty much complete (just a few last bugs and features to do), I decided to make a help and discussion thread. This is where you should report bugs and request help (or make suggestions about the language)!
You can download the N#->SB compiler here.
KNOWN BUGS:
* Doing stuff like
int hello, code = Graphics.RGB(255, 255, 255)will cause the compiler to recognize 255 and 255) as individual variables (because of comma placement) instead of part of the Graphics.RGB function. * Putting compound self-assignment operators inside a string will cause the compiler to think you're actually trying to use one, causing a syntax error in the outputted code. * Sometimes, strings will stop being parsed if there's a = inside the string. * Because of the same cause as bug #1, it's impossible to make multidimensional arrays. This WILL be fixed in Beta 1.6, as it is a major glitch. STILL TO DO BEFORE FINAL RELEASE: * Complete the Sprite library * Fix any last bugs * Multithreading THINGS THAT SEEM LIKE BUGS BUT AREN'T: * You cannot create instance variables. Class variables are only available through static classes. * You must pass "self" to a non-static function as the last parameter, even if the function takes no arguments. "self" is automatically passed to any non-static function. Want a feature added to N#? Tell me and I'll consider it!
I'm great at making code unreadable.
But I'm that's no good with N#...
I think Tri would be a nice candidate to win as he seems to know N# more than anyone else besides myself.
Fixing bugs is fun. Beta 1.6 will also hopefully come with enums. Who has a syntax suggestion? C# uses (if I remember correctly):
enum myenum { object0, object1, object2, etc };I might do something along the lines of:
enum myenum <- object0, object1, object2, etc
Who likes dictionaries? Who likes by reference parameters? Who likes more ways to pass data to objects? Now in N#!
So N# has recently had update Beta 1.6, and the changelog includes the following:
*By reference parameter passing
*Brace syntax
*Dictionary library
*Wildcard variable (equal to anything)
*Runs as SmileTool (much easier to use)
*Ignore command
*Lambdas and higher-order functions
*Bug Fixes
Also, I'm going to start slowing down on N# development and start working on the documentation. :) So now people will actually be able to use it.
Less than a week after I say I'll slow down development, and I couldn't stop myself from implementing getters and setters.
Haha yea I've moved on to other things. I made N# when I still didn't have a good grasp on what OOP really was. If I remade it now, it would be many times better I'm sure.
Hey there! I think this program is incredibly cool, especially for experienced coders. However, I believe a good way to learn the language would be to use an inverted compiler. Instead of N# to SmileBasic, it could be SmileBasic to N#. That way, newer programmers like myself could learn how to program the simple programs we made in SmileBasic on N# as well!
Hey there! I think this program is incredibly cool, especially for experienced coders. However, I believe a good way to learn the language would be to use an inverted compiler. Instead of N# to SmileBasic, it could be SmileBasic to N#. That way, newer programmers like myself could learn how to program the simple programs we made in SmileBasic on N# as well!The purpose was to let experienced programmers use an OOP language and still be able to run their code in the SB app. However, N# is no longer an active project, mainly in part due to its bad design (it's honestly a very bad OOP language). I appreciate your feedback though!
This has potential, if you restart this, it may end up being much betterHey there! I think this program is incredibly cool, especially for experienced coders. However, I believe a good way to learn the language would be to use an inverted compiler. Instead of N# to SmileBasic, it could be SmileBasic to N#. That way, newer programmers like myself could learn how to program the simple programs we made in SmileBasic on N# as well!The purpose was to let experienced programmers use an OOP language and still be able to run their code in the SB app. However, N# is no longer an active project, mainly in part due to its bad design (it's honestly a very bad OOP language). I appreciate your feedback though!
Is there any way I can return a value other than void, string, or int?
Like, if I were to have created a class called Byte, is there any way I could perhaps create a function similar to this?
def public Byte convIntToByte(int in) object ret <- Byte = in return ret endor maybe just return any object in general?
Is there any way I can return a value other than void, string, or int? Like, if I were to have created a class called Byte, is there any way I could perhaps create a function similar to this?Practically, the return type is to improve readability... You can return other type from a function Example:def public Byte convIntToByte(int in) object ret <- Byte = in return ret endor maybe just return any object in general?
def public string int(int in) return in+65535 end