Skip to content

Instantly share code, notes, and snippets.

View gudnm's full-sized avatar

Ivan Vashchenko gudnm

View GitHub Profile
@gudnm
gudnm / gist:892951
Created March 29, 2011 18:33
Simple procedural program that finds a smallest rectangle to accommodate a given set of rectangles
#include <iostream>
#include <cmath>
using namespace std;
struct placedRect
{
int x,
y,
width,
height;
@gudnm
gudnm / worstMove.py
Last active June 15, 2016 16:53
A program that plays Tic-tac-toe with you and tries to lose. Uses Minimax rule to evaluate possible moves.
"""
Write a program that plays Tic-tac-toe with you and tries its best to lose
"""
def printBoard(b):
for i in range(3):
print(b[3*i], b[3*i+1], b[3*i+2])
def getNext(b):
move = int(input("Your move, sir (must be a number from 1 to 9): ")) - 1
@gudnm
gudnm / Gomoku.py
Last active June 22, 2016 21:31
Gomoku game (also called Five in a Row)
class Gomoku:
def __init__(self, size):
self.size = size
self.board = ['-'] * size * size
self.inarow = 5
self.players = ['x', 'o']
self.curplayer = 1
def printboard(self):
s = self.size
@gudnm
gudnm / Twitter.py
Last active June 30, 2016 19:11
Problem #355 on LeetCode: Design a simplified version of Twitter where users can post tweets, follow/unfollow another user and is able to see the 10 most recent tweets in the user's news feed.
class Twitter(object):
def __init__(self):
"""
Initialize your data structure here.
"""
self.followers = {}
self.tweets = {}
def postTweet(self, userId, tweetId):
@gudnm
gudnm / andproduct.py
Last active August 19, 2016 15:26
RC Code Dojo Aug 16 2016
n = int(input())
for _ in range(n):
a, b = map(int, input().split())
while b > a:
b &= (b-1)
print(b)
@gudnm
gudnm / prime_rotations.py
Created August 23, 2016 22:25
Project Euler problem #35
n = 1000000
primes = [False, False] + [True]*(n-2)
for i in range(2, int(n**0.5)+1):
if primes[i]:
primes[i*i::i] = [False] * len(primes[i*i::i])
def check_rotations(num):
s = str(num)
return all(primes[int((s+s)[i:i+len(s)])] for i in range(len(s)))
@gudnm
gudnm / pomodoro.html
Last active April 8, 2018 02:27
Simple pomodoro timer (written in vanilla JS)
<div>
<div id="history">
<ul id="completed_tasks">
</ul>
</div>
<div id="working">
Working on <span id="current_task">current task</span>, <span id="task_countdown">25:00</span> left.
</div>
<div id="break">
Completed <span id="finished_task">a task</span>. On break, <span id="break_countdown">5:00</span> left.
@gudnm
gudnm / objectsEqual.js
Created June 26, 2017 15:53
JavaScript function for checking if two objects are equal by value
var objectsEqual = (a, b) => {
const aProps = Object.getOwnPropertyNames(a),
bProps = Object.getOwnPropertyNames(b);
if (aProps.length != bProps.length) {
return false;
}
for (var i=0; i<aProps.length; i++) {
const propName = aProps[i];
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@gudnm
gudnm / cube.py
Created June 30, 2017 00:29
The dumbest solution for eraser cube puzzle
from itertools import permutations
pieces = [[0, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0],
[0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0],
[0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1],
[1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1],
[0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0],
[0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1]]
def rotations(piece):