Skip to content

Instantly share code, notes, and snippets.

View rspeer's full-sized avatar

Elia Robyn Lake (Robyn Speer) rspeer

View GitHub Profile
@rspeer
rspeer / dominiate_BigMoney.coffee
Created October 17, 2011 07:29
Dominiate test: Big Money
# This is an implementation of the pure Big Money strategy, updated
# based on WanderingWinder's forum posts:
# http://forum.dominionstrategy.com/index.php?topic=625
{
name: 'Big Money'
author: 'WanderingWinder'
gainPriority: (state, my) ->
if state.supply.Colony?
[
"Colony" if my.getTotalMoney() > 32
"""
This file contains code that, when run on Python 2.7.5 or earlier, creates
a string that should not exist: u'\Udeadbeef'. That's a single "character"
that's illegal in Python because it's outside the valid Unicode range.
It then uses it to crash various things in the Python standard library and
corrupt a database.
On Python 3... well, this file is full of syntax errors on Python 3. But
if you were to change the print statements and byte literals and stuff:
@rspeer
rspeer / dominioncards.txt
Created June 13, 2015 16:50
Dominion cards up through Adventures, extracted from dominion.diehrstraits.com
Cellar Action $2 +1 Action, Discard any number of cards. +1 Card per card discarded.
Chapel Action $2 Trash up to 4 cards from your hand.
Moat Action - Reaction $2 +2 Cards, When another player plays an Attack card, you may reveal this from your hand. If you do, you are unaffected by that Attack.
Chancellor Action $3 +2 Coins, You may immediately put your deck into your discard pile.
Village Action $3 +1 Card, +2 Actions.
Woodcutter Action $3 +1 Buy, +2 Coins.
Workshop Action $3 Gain a card costing up to 4 Coins.
Bureaucrat Action - Attack $4 Gain a silver card; put it on top of your deck. Each other player reveals a Victory card from his hand and puts it on his deck (or reveals a hand with no Victory cards).
Feast Action $4 Trash this card. Gain a card costing up to 5 Coins.
Gardens Victory $4 Variable, Worth 1 Victory for every 10 cards in your deck (rounded down).
@rspeer
rspeer / card-texts.txt
Created June 13, 2015 19:53
Cards extracted from dominion.diehrstraits.com
+1 Action, Discard any number of cards. +1 Card per card discarded.
Trash up to 4 cards from your hand.
+2 Cards, When another player plays an Attack card, you may reveal this from your hand. If you do, you are unaffected by that Attack.
+$2, You may immediately put your deck into your discard pile.
+1 Card, +2 Actions.
+1 Buy, +$2.
Gain a card costing up to $4.
Gain a silver card; put it on top of your deck. Each other player reveals a Victory card from his hand and puts it on his deck (or reveals a hand with no Victory cards).
Trash this card. Gain a card costing up to $5.
Variable, Worth 1 Victory for every 10 cards in your deck (rounded down).
>>> from wordfreq import tokenize, word_frequency
>>> tokenize('电影放映机', 'zh')
['电影', '放映', '机']
>>> word_frequency('电影放映机', 'zh')
5.370851923771552e-08
>>> word_frequency('programme', 'en')
5.754399373371567e-05
>>> import wordfreq, langcodes
>>> def legible_list(lst):
... return('\N{LEFT-TO-RIGHT MARK}, '.join(lst))
...
>>> for lang in sorted(wordfreq.available_languages()):
... language_name = langcodes.get(lang).language_name('en')
... top_ten = legible_list(wordfreq.top_n_list(lang, 10))
... print('%-3s %-12s %s' % (lang, language_name, top_ten))
^ marks the name of the card.
The column with all the @ signs indicates the cost and type. I probably missed some because I was impatiently editing a file I had already.
A = Action, T = Treasure, V = victory, a = Attack, R = Reaction, v = traVeler, D = Duration, E = Event, r = Ruins.
| indicates a line break, and --- indicates a horizontal line.
@rspeer
rspeer / dominion-rnn-cards.txt
Last active November 12, 2015 07:49
Dominion cards generated with a neural net. See http://forum.dominionstrategy.com/index.php?topic=13415.100.
2renole
$3, Action
Trash this card. If you do, gain a Silver per 5 cards it, and put them into your hand.
3rost
$5, Action, Duration
@rspeer
rspeer / aaaa.html
Created March 14, 2016 20:00
Overflowing the stack of Text.HTML.TagSoup with a straightforward HTML file
<html>
<body>
aaaaaa
aaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaa
/* This Rust code scans through the Common Crawl, looking for text that's
* not English. I suspect I may learn much later that it's terrible,
* unidiomatic Rust, but it would take me months to learn what good Rust is.
*
* We depend on some external libraries:
*
* - html5ever: an HTML parser (we only use its low-level tokenizer)
* - encoding: handles text in all the encodings that WHATWG recognizes
* - string_cache: interns a bunch of frequently-used strings, like tag names -- necessary to use
* the html5ever tokenizer