Skip to content

Instantly share code, notes, and snippets.

View anissen's full-sized avatar

Anders Nissen anissen

View GitHub Profile
@anissen
anissen / .jscs.json
Last active January 25, 2024 23:58
Example gulpfile for some useful tasks
{
"requireCurlyBraces": ["else", "for", "while", "do", "try", "catch"],
"requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch"],
"disallowLeftStickedOperators": ["?", "+", "-", "/", "*", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="],
"disallowRightStickedOperators": ["?", "+", "/", "*", ":", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="],
"requireRightStickedOperators": ["!"],
"requireLeftStickedOperators": [","],
"disallowImplicitTypeConversion": ["string"],
"disallowKeywords": ["with"],
"disallowMultipleLineBreaks": true,
@anissen
anissen / MainTest.hx
Created June 18, 2015 11:57
Haxe hxcpp cppia test
class MainTest {
static public function main() {
trace("Hello world!");
trace('Fibonacci of 7 is: ${fibonacci(7)}');
}
static function fibonacci(n) {
if (n == 0) return 0;
else if (n == 1) return 1;
@anissen
anissen / RuleParser.hx
Created December 14, 2014 18:40
Parse toy rule language using hxparse
/*
Syntax:
if (condition) then (action)
if [(condition), (condition)] then [(action), (action)]
*/
/*
Testing:
function testRule(correct :Bool, s :String) {
@anissen
anissen / Immutable.hx
Created December 9, 2015 09:10
Using abstract to creating immutable objects in Haxe
class Foo {
public function new( val ) x = val;
public var x : Int;
}
abstract ConstFoo(Foo) from Foo {
public var x(get, never) : Int;
function get_x() return this.x;
}
@anissen
anissen / perlin.hx
Last active March 5, 2017 18:16
Perlin noise test
// Haxe implementation ported from https://gist.github.com/Flafla2/f0260a861be0ebdeef76
// Related article: http://flafla2.github.io/2014/08/09/perlinnoise.html
class Perlin {
public var repeat :Int;
public function new(repeat :Int = -1) {
this.repeat = repeat;
}
@anissen
anissen / StackMachine.hx
Last active September 23, 2016 08:21
Minimal test of a stack machine
// Minimal test of a stack machine (https://en.wikipedia.org/wiki/Stack_machine)
enum Bytecode {
PUSH(v :Int);
ADD;
MULT;
PRINT;
}
class StackMachine {
@anissen
anissen / UniformPoissonSampler.hx
Created September 14, 2016 09:06
Fast uniform Poisson sampling
// Adapated from java source by Herman Tulleken
// http://www.luma.co.za/labs/2008/02/27/poisson-disk-sampling/
// The algorithm is from the "Fast Poisson Disk Sampling in Arbitrary Dimensions" paper by Robert Bridson
// http://www.cs.ubc.ca/~rbridson/docs/bridson-siggraph07-poissondisk.pdf
// Code adapted from http://theinstructionlimit.com/fast-uniform-poisson-disk-sampling-in-c
typedef Vector2 = { x :Float, y :Float }
@anissen
anissen / voronoi.lua
Created September 8, 2016 12:16
Voronoi in pico8
-- grabbed from http://www.lexaloffle.com/bbs/?pid=28105
function jitter(points)
for i = 1, #points do
p = points[i]
p.x += rnd(2) - 1
p.y += rnd(2) - 1
end
end
@anissen
anissen / Analytics.hx
Created August 19, 2016 22:24
Testing GameAnalytics REST API integration from Haxe
import haxe.crypto.Base64;
import haxe.crypto.Hmac;
import haxe.io.Bytes;
class Analytics {
var game_key :String;
var secret_key :String;
public function new(game_key :String, secret_key :String) {
this.game_key = game_key;
@anissen
anissen / Main.hx
Created August 19, 2016 13:10 — forked from po8rewq/Main.hx
Empty haxe / pico-8 project
package ;
import Pico.*;
class Main
{
static function main()
{
onInit = init;