JavaScript (node.js)
Counts what was most popular last round and bids one less than that, wrapping to 20 and bidding 3 on the first round.
var lastRound = process.argv[2];
var numbers = {};
var matches = /\d+/g.exec(/[^\n]+$/.exec(lastRound));
var i;
for(i = 0; i < matches.length; i++) {
if(matches[i] in numbers) {
numbers[i]++;
} else {
numbers[i] = 1;
}
}
var maxKey = -1, maxValue = -1;
for(i in numbers) {
if(numbers[i] > maxValue) {
maxKey = i;
maxValue = numbers[i];
}
}
if(maxKey == 0) {
// First round. Bid 3.
console.log(3);
} else if(maxKey == 1) {
// Bid 20.
console.log(20);
} else {
// Bid one less.
console.log(maxKey - 1);
}
How to invoke:
node script.js 'the argument'