Skip to content

Instantly share code, notes, and snippets.

@dragon0
dragon0 / hexagons.py
Created December 1, 2017 21:55
Utilities for a hexagonal grid system
#!/usr/bin/env python3
import math
class Point:
def __init__(self, x=0, y=0):
self.x = x
self.y = y
def __repr__(self):
return 'Point({0.x}, {0.y})'.format(self)
@dragon0
dragon0 / perlin.py
Created December 1, 2017 22:01
Perlin noise generator based on pseudocode from http://freespace.virgin.net/hugo.elias/models/m_perlin.htm
#!/usr/bin/env python3
'''
Perlin noise generator based on pseudocode from
http://freespace.virgin.net/hugo.elias/models/m_perlin.htm
'''
import math
def linear_interp(a, b, x):
return a * (1 - x) + b * x
@dragon0
dragon0 / signal_handler.py
Created December 1, 2017 22:03
Debug a Python program on Ctrl-C
# Signal handler example. Debugger starts with Ctrl-C:
import signal
def int_handler(signal, frame):
import pdb
pdb.set_trace(frame)
signal.signal(signal.SIGINT, int_handler)
# Put that at the top of your script and you can start debugging your script at any
# point by type Ctrl-C. Resume programe execution by typing exit at the Pdb prompt.
@dragon0
dragon0 / ImageViewer.java
Created December 1, 2017 22:29
A simple image viewer in Java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ImageViewer implements KeyListener{
private JFrame frame;
private ImageIcon image;
private ImageIcon origImage;
private JLabel imageLabel;
private String[] files;
private int index;
@dragon0
dragon0 / sequence_ops_example.cc
Created December 1, 2017 23:41
Using sequence operations (map/filter/reduce) in C++
#include <iostream> // cout
#include <algorithm> // transform
#include <vector> // vector
using namespace std;
void print (int i) { cout << ' ' << i; }
struct c_unique {
int current;
// constructor
@dragon0
dragon0 / union.cc
Created December 1, 2017 23:43
A union type demonstrating an int and a float occupying the same memory location
#include<iostream>
#include<sstream>
int main(int argc, char** argv){
union mytypes_t {
int i;
float f;
} mytypes;
int in_i = 5;
float in_f = 5.0;
@dragon0
dragon0 / colortimer.groovy
Created December 2, 2017 00:01
Window that changes color with the time
import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL
import javax.swing.JFrame
import javax.swing.ImageIcon
import java.awt.Color
import java.awt.Graphics2D
import java.awt.image.BufferedImage
import javax.imageio.ImageIO
import javax.swing.SwingUtilities
@dragon0
dragon0 / colortiles.groovy
Created December 2, 2017 00:01
Creates a checkerboard from a text description
import java.awt.Color
import java.awt.Graphics2D
import java.awt.image.BufferedImage
import javax.imageio.ImageIO
Red = new Color(255, 0, 0)
Green = new Color(0, 255, 0)
Blue = new Color(0, 0, 255)
Orange = new Color(255, 165, 0)
Yellow = new Color(255, 255, 0)
@dragon0
dragon0 / speedmath.groovy
Created December 2, 2017 00:04
Generates arithmetic questions and times your answers
import groovy.swing.SwingBuilder
import java.awt.BorderLayout as BL
import javax.swing.JFrame
final int COUNT = 20
xs = []
ys = []
ops = []
results = []
@dragon0
dragon0 / shuffle.scala
Created December 2, 2017 00:11
Card deck using case classes
import scala.annotation.tailrec
abstract class Suit { val value: Int }
case object Clubs extends Suit { val value = 0 }
case object Diamonds extends Suit { val value = 1 }
case object Hearts extends Suit { val value = 2 }
case object Spades extends Suit { val value = 3 }
abstract class Rank { val value: Int }