Skip to content

Instantly share code, notes, and snippets.

View fomkin's full-sized avatar
🎯
Focusing

Aleksey Fomkin fomkin

🎯
Focusing
View GitHub Profile
  1. Wizard Of Portal - логическая игра между двумя противниками, где один из игроков играет «черными», второй — «белыми» жезлами.
  2. Игровое поле - это глобальной карте, стостоящей из 3х3 поля, где каждое локальное поле стостоит из 3х3 клетки.
  3. Игра начинается с выбора первым игроком одного из локальных полей, а затем установкой своего жезла в одну из клеток на этом поле.
  4. Следующий игрок делает свой ход локальном поле, координаты которого соответстуют предыдущиму ходу поротивника в локальном поле, занимая одну из свободных клеток. И так далее
  5. Первый, выстроивший в ряд 3 своих жезлов по вертикали, горизонтали или диагонали, локального поля, занимает все локальное поле своим знаком.
  6. Если ход предыдущего игрока вынуждает следующего ходить в уже полностью занятое локальное поле, то тот должен сам выбрать одно из незанятых локальных полей.
  7. Побеждает тот, кто первым займет в ряд 3 локальных поля по вертикали, горизонтали или диагонали.
@fomkin
fomkin / GameOfLife.scala
Last active December 27, 2016 14:15
Idiomatic Scala implementation of Conway's Game of Life with toroidal universe https://en.wikipedia.org/wiki/Conway's_Game_of_Life
object GameOfLife extends App with Shtml {
import korolev.EventResult._
val universeSize = 20
val cellRadius = 10
val cellGap = 2
val cellWidth = cellRadius * 2
val viewSide = cellRadius + universeSize * (cellWidth + cellGap)
sealed trait MyList[+T]
case object MyNil extends MyList[Nothing]
case class MyCons[+T](head: T, tail: MyList[T]) extends MyList[T]
object MyList {
object :: {
def unapply[T](list: MyList[T]): Option[(T, MyList[T])] = list match {
case MyCons(x, xs) => Some((x, xs))
case MyNil => None
@fomkin
fomkin / deploy.sh
Last active October 17, 2016 14:19
REPOSITORY="-DrepositoryId=haxemojos-nexus-releases -Durl=http://repo.haxemojos.org/content/repositories/releases"
OPTS="-DgeneratePom=false"
NAME="-DgroupId=org.haxe.compiler -DartifactId=haxe-compiler -Dversion=$1"
mvn deploy:deploy-file $NAME -Dclassifier=win -Dpackaging=zip -Dfile=haxe-$1-win.zip $REPOSITORY $OPTS
mvn deploy:deploy-file $NAME -Dclassifier=osx -Dpackaging=tgz -Dfile=haxe-$1-osx.tar.gz $REPOSITORY $OPTS
mvn deploy:deploy-file $NAME -Dclassifier=linux32 -Dpackaging=tgz -Dfile=haxe-$1-linux32.tar.gz $REPOSITORY $OPTS
mvn deploy:deploy-file $NAME -Dclassifier=linux64 -Dpackaging=tgz -Dfile=haxe-$1-linux64.tar.gz $REPOSITORY $OPTS
mvn deploy:deploy-file $NAME -Dpackaging=pom -Dfile=pom.xml $REPOSITORY $OPTS
implicit def IterableW[F[_], T](implicit w: W[T], ev: F[T] <:< Iterable[T]) = {
new W[F[T]] {
def write(xs: F[T]) = {
ev(xs).map(x => w.write(x)).mkString(", ")
}
}
}
def writeIterable[F[_], T](xs: F[T])(implicit w: W[T], ev: F[T] <:< Iterable[T]) = {
ev(xs).map(x => w.write(x)).mkString(", ")
import akka.actor._
object Main extends App {
val N = 2000000
val system = ActorSystem("mySystem")
val input = system.actorOf(Props[Input])
val output = system.actorOf(Props[Output])

Инструкция по использованию Git для генеральных директоров

Перед тем как делать коммит, надо удостовериться, что у вас на компьютере есть все актуальные измениния из центрального репозитория.

# git pull (получить из менения из) origin (псевдоним центрального реаозитория) master (название ветки)
git pull origin master

Если при выпонении этой команды возникли конфликты, то нужно сбросить свои изменения во временное хранилище stash. И выполнить pull еще раз.

git stash

apply plugin: 'application'
apply plugin: 'scala'
repositories {
mavenLocal()
mavenCentral()
}
mainClassName = 'PushkaTest.MainApp'
function Fsm(states) {
var self = this;
function onTransition(state, data) {
self.state = state;
self.data = data;
states[state](data, onTransition);
}
onTransition(Object.getOwnPropertyNames(states)[0], null);
}
<?
$ADDYBOT_TOKEN = 'Your token from AddyBot Cabinet';
// The data to send to the API
$postData = array(
'language' => 'english',
'userIdentifier' => 'telegram_user_id'
);
// Setup cURL