Skip to content

Instantly share code, notes, and snippets.

View RaasAhsan's full-sized avatar

Raas Ahsan RaasAhsan

View GitHub Profile
@RaasAhsan
RaasAhsan / gist:4009942
Created November 4, 2012 03:08
screen and isometric space
Screen -> Isometric space equations
iX = (((ScreenX) / tileWidth) - ((ScreenY) / tileHeight));
iY = (((ScreenX) / tileWidth) + ((ScreenY) / tileHeight));
Isometric -> Screen space equations
ScreenX = (iX + iY) * tileWidth / 2;
ScreenY = (iY - iX) * tileHeight / 2;
Assuming the isometric coordinating system goes as this: http://i.imgur.com/aUM4g.png
@RaasAhsan
RaasAhsan / gist:4083992
Created November 16, 2012 04:14
pitch/yaw to directional vector
// pitch and yaw are in degrees
Vector3D getDirectionVector() {
return new Vector3D(-Math.cos(pitch * Math.PI / 180.0) * Math.sin(yaw * Math.PI / 180.0), Math.sin(pitch * Math.PI / 180.0), -Math.cos(pitch * Math.PI / 180.0) * Math.cos(yaw * Math.PI / 180.0));
}
@RaasAhsan
RaasAhsan / gist:4552530
Created January 17, 2013 00:50
my description of a vector
package com.jantox.dungmast;
public class Vector2D {
public double x, y;
public Vector2D() {
x = y = 0;
}
@RaasAhsan
RaasAhsan / Writer.scala
Created January 11, 2014 07:15
A very simple Writer monad written in Scala.
class Writer[A](runWriter: (A, String)) {
def apply(x: (A, String)): Writer[A] = new Writer[A](x)
def run = runWriter
def flatMap[B](x: A => Writer[B]): Writer[B] = {
val (a: A, b: String) = runWriter
val (y: B, z: String) = x(a).run
data AST a = Value a | Operation (a -> a -> a) (AST a) (AST a)
evaluate :: (Num a) => (AST a) -> a
evaluate (Value a) = a
evaluate (Operation o a b) = evaluate a `o` evaluate b
@RaasAhsan
RaasAhsan / Router.js
Created June 28, 2015 04:26
React router component for applications
import React from 'react';
class Router extends React.Component {
constructor(props) {
super(props);
this.state = {
routes: props.routes,
path: "index",
params: {}
import React from 'react';
import deepcopy from 'deepcopy';
let RouterLink = React.createClass({
propTypes: {
to: React.PropTypes.string.isRequired,
params: React.PropTypes.object,
activeClassName: React.PropTypes.string
package xml;
import java.util.ArrayList;
import java.util.List;
import com.jantox.xmlparser.Scanner;
/*
* <xmlNode> ::= "<" ~ <name> ~ ">" ~ <body> ~ "</" ~ <name> ">"
* <letter> ::= [A-Za-z]
@RaasAhsan
RaasAhsan / ParserTesting.scala
Last active January 8, 2016 22:55
A tiny parser combinator library that supports sequencing.
package ch6
import scala.util.matching.Regex
object ParserTesting {
sealed trait ParseResult[+A, +F]
case class ParseSuccess[A](parsed: A, unparsed: String) extends ParseResult[A, Nothing]
case class ParseFailure[F](error: F) extends ParseResult[Nothing, F]
@RaasAhsan
RaasAhsan / DTALC.scala
Last active July 31, 2018 15:57
data type a la carte in scala
object DTALC {
}