Skip to content

Instantly share code, notes, and snippets.

@trikitrok
trikitrok / Duck.cpp
Created January 30, 2014 15:53
Duck class implementation
#include "Duck.h"
#include "QuackBehavior.h"
Duck::Duck(QuackBehavior * quackBehavior) {
howToQuack = quackBehavior;
}
Duck::~Duck() {
delete howToQuack;
@trikitrok
trikitrok / Duck.h
Last active June 30, 2024 14:19
Duck class
#ifndef DUCK_H_
#define DUCK_H_
class QuackBehavior;
class Duck {
public:
Duck(QuackBehavior * quackBehavior);
virtual ~Duck();
#ifndef QUACKBEHAVIOR_H_
#define QUACKBEHAVIOR_H_
class QuackBehavior {
public:
QuackBehavior(){};
virtual ~QuackBehavior(){};
virtual void quack() = 0;
};
@trikitrok
trikitrok / QuackStrategyMain.cpp
Created January 30, 2014 15:59
Showing the strategy pattern at work
#include "Duck.h"
#include "QuackBehaviors/Quack.h"
#include "QuackBehaviors/Squeak.h"
#include "QuackBehaviors/MuteQuack.h"
int main(int argc, const char **argv) {
Duck duck(new Quack);
duck.quack();
@trikitrok
trikitrok / Squeak.h
Last active June 30, 2024 14:20
Squeak behaviour
#ifndef SQUEAK_H_
#define SQUEAK_H_
#include "../QuackBehavior.h"
class Squeak : public QuackBehavior {
public:
Squeak();
virtual ~Squeak();
@trikitrok
trikitrok / Squeak.cpp
Created January 30, 2014 16:04
Squeak behaviour implementation
#include "Squeak.h"
#include <iostream>
using namespace std;
Squeak::Squeak() {}
Squeak::~Squeak() {}
@trikitrok
trikitrok / quacking.rkt
Last active June 30, 2024 14:21
Quacking in Racket
(define (just-quacking)
(printf "Quack!\n"))
(define (squeaking)
(printf "Squeak!\n"))
(define (mute-quacking)
(printf "<< Silence >>\n"))
(define (quack how-to-quack)
@trikitrok
trikitrok / Duck.rb
Created January 30, 2014 17:06
Quacking in Ruby
class Duck
def initialize(how_to_quack)
@how_to_quack = how_to_quack
end
def how_to_quack=(how_to_quack)
@how_to_quack = how_to_quack
end
def quack
@trikitrok
trikitrok / Generation.java
Created February 2, 2014 01:24
Generation in Conways game of life
package game;
public class Generation {
private LivingCells livingCells;
private Rules rules;
public Generation(LivingCells cells, Rules rules) {
this.livingCells = cells;
this.rules = rules;
@trikitrok
trikitrok / Rules.java
Created February 2, 2014 01:39
Rules interface
package game;
public interface Rules {
public boolean shouldStayAlive(int numberOfNeighbors);
public boolean shouldBeBorn(int numberOfNeighbors);
}