Skip to content

Instantly share code, notes, and snippets.

View YellowAfterlife's full-sized avatar

Vadym Diachenko YellowAfterlife

View GitHub Profile
@YellowAfterlife
YellowAfterlife / Swap.hx
Created June 4, 2014 12:23
Value swap macros for Haxe
class Main {
macro static function swap(a, b) {
return macro { var v = $a; $a = $b; $b = v; };
}
static function main() {
var i = 10, j = 15;
trace(i, j); // 10, 15
swap(i, j);
trace(i, j); // 15, 10
}
@YellowAfterlife
YellowAfterlife / Main.hx
Created May 29, 2014 20:29
Generates typedef redirection files for openfl-bitfive
import haxe.io.Path;
import sys.FileSystem;
import sys.io.File;
class Main {
static function remap(from:String, to:String, pkg:String = "") {
for (file in FileSystem.readDirectory(from)) {
if (FileSystem.isDirectory('$from/$file')) {
if (!FileSystem.exists('$to/$file')) {
FileSystem.createDirectory('$to/$file');
--[[
1.118
1.411
5.35
]]--
function set_field(t, f, v)
t[f] = v
return v
end
local n = 10000000
case "intro":
map([
[ 000, 031, 031, 031, 000, ],
[ 031, 014, 014, 031, ],
[ 031, 014, 184, 014, 184, ],
[ 031, 014, 014, 042, ],
[ 000, 031, 031, 031, 000, ],
[ 312, 000, 000, 000, ],
], 4);
put(2, 2);
dllx char* file_text_get(char* file) {
FILE *f;
char *r;
long fl;
fopen_s(&f, file, "r");
if (f) {
fseek(f, 0L, SEEK_END);
fl = ftell(f);
rewind(f);
if (r = (char*)calloc(1, fl + 1)) {
объявить поле(4)(4)(4) % поле с номерами пятнашек
объявить стр(2), стл(2) % строка, столбец
объявить симв(128) % массив символов
объявить а(8), б(8), к(8) % временные переменные
симв = #" 123456789ABCDEF"
поле(0)(0)= 0; поле(0)(1)= 1; поле(0)(2)= 2; поле(0)(3)= 3;
поле(1)(0)= 4; поле(1)(1)= 5; поле(1)(2)= 6; поле(1)(3)= 7;
поле(2)(0)= 8; поле(2)(1)= 9; поле(2)(2)=10; поле(2)(3)=11;
поле(3)(0)=12; поле(3)(1)=13; поле(3)(2)=14; поле(3)(3)=15;
игра:
@YellowAfterlife
YellowAfterlife / Main.hx
Last active July 4, 2020 08:43
Simplistic .properties parser
class Main {
static function parseProperties(text:String):Map<String, String> {
var map:Map<String, String> = new Map(),
ofs:Int = 0,
len:Int = text.length,
i:Int, j:Int,
endl:Int;
while (ofs < len) {
// find line end offset:
endl = text.indexOf("\n", ofs);
@YellowAfterlife
YellowAfterlife / Main.hx
Last active August 29, 2015 13:57
Fluent (?) interface trick for Haxe.
using Main.Smartxin;
class A {
public var width:Int;
public function new() { }
}
class B extends A {
public var height:Int;
public function new() super();
Turn 1:
o
o o
o . o
o o o o
o o o o o
Turn 2:
o
o o
o x o
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Graphics;
import flash.display.Sprite;
import flash.events.KeyboardEvent;
import flash.events.TimerEvent;
import flash.geom.Rectangle;
import flash.Lib;
import flash.text.TextField;
import flash.utils.Timer;