Skip to content

Instantly share code, notes, and snippets.

import java.util.Scanner;
/**
* Created by this busta (Luke) on 4/18/2015.
*/
public class PrimeNumberRecursive {
public static void main(String[] args) {
@bonzaiferroni
bonzaiferroni / Traveler.ts
Last active March 10, 2017 16:32
Traveler.ts
/**
* To start using Traveler, require it in main.js:
* Example: var Traveler = require('Traveler.js');
*
* Check the footer of this file for suggestions on how to access it at various scopes
*
*/
export interface TravelData {
stuck: number;
@bonzaiferroni
bonzaiferroni / Traveler.js
Last active April 29, 2021 00:17
Traveler.js
/**
* To start using Traveler, require it in main.js:
* Example: var Traveler = require('Traveler.js');
*
* Check the footer of this file for suggestions on how to access it at various scopes
*
*/
"use strict";
const REPORT_CPU_THRESHOLD = 50;
const DEFAULT_MAXOPS = 20000;
@bonzaiferroni
bonzaiferroni / WorldMap.ts
Created January 24, 2017 16:42
WorldMap.ts
import {Diplomat} from "./Diplomat";
import {TradeNetwork} from "./TradeNetwork";
export class WorldMap {
public controlledRooms: {[roomName: string]: Room } = {};
public allyMap: {[roomName: string]: RoomMemory } = {};
public allyRooms: Room[] = [];
public tradeMap: {[roomName: string]: RoomMemory } = {};
public tradeRooms: Room[] = [];
export class Diplomat {
public allies: {[username: string]: boolean};
public foes: {[username: string]: boolean};
public partners: {[username: string]: boolean};
constructor() {
if (!Memory.empire) { Memory.empire = {}; }
_.defaults(Memory.empire, {
allies: ALLIES,
import {WorldMap} from "./WorldMap";
export class TradeNetwork {
public storages: StructureStorage[] = [];
public terminals: StructureTerminal[] = [];
private shortages: {[resourceType: string]: StructureTerminal[] } = {};
private surpluses: {[resourceType: string]: StructureTerminal[] } = {};
private _inventory: {[key: string]: number};
private map: WorldMap;
import {MINERALS_RAW, RESERVE_AMOUNT, TradeNetwork, PRODUCT_LIST} from "./TradeNetwork";
export class MarketTrader {
private network: TradeNetwork;
constructor(network: TradeNetwork) {
this.network = network;
}
public actions() {
@bonzaiferroni
bonzaiferroni / sandbox.ts
Created June 2, 2017 14:19
traveler tests
let travFlag = Game.flags["travFlag"];
if (travFlag) {
let newTraveler = new Traveler();
let oldTraveler = new OldTraveler();
let newTravelerCreep = Game.creeps["newTraveler"];
if (!newTravelerCreep) {
empire.spawnFromClosest(travFlag.pos, [MOVE], "newTraveler");
}
@bonzaiferroni
bonzaiferroni / TravelerSerialization.ts
Created June 2, 2017 17:33
Serialization in Traveler
private deserializeState(travelData: TravelData, destination: RoomPosition): TravelState {
let state = {} as TravelState;
if (travelData.state) {
let parse = travelData.state.split("_");
state.lastCoord = {x: Number.parseInt(parse[STATE_LAST_X]), y: Number.parseInt(parse[STATE_LAST_Y]) };
state.cpu = Number.parseInt(parse[STATE_CPU]);
state.stuckCount = Number.parseInt(parse[STATE_STUCK]);
let destX = Number.parseInt(parse[STATE_DEST_X]);
let destY = Number.parseInt(parse[STATE_DEST_Y]);
let destRoomName = parse[STATE_DEST_ROOMNAME];
@bonzaiferroni
bonzaiferroni / TravelerSerializationTest.ts
Created June 2, 2017 21:38
Tests for memory overhead with different traveler objects
testCPU() {
let obj1 = {
_trav: {
stuck: 0,
cpu: 133,
last: { x: 17, y: 29 },
dest: { x: 18, y: 31, roomName: "E22S24" },
path: "42640344898844894894",
},
};