import datatypes.trace as tr import serialize_trace.serializer as ser import sys # Make a trace exercising each instruction: trace = tr.Trace() trace.add(tr.Trace.Wait()) trace.add(tr.Trace.Flip()) trace.add(tr.Trace.SMove((1, 0, 0))) trace.add(tr.Trace.SMove((0, 1, 0))) trace.add(tr.Trace.LMove((-1, 0, 0), (0, -1, 0))) trace.add(tr.Trace.Fill((0, 0, 1))) trace.add(tr.Trace.Fission((1, 0, 0), 5)) trace.add(tr.Trace.FusionP((1, 0, 0))) # executed by bot 1 trace.add(tr.Trace.FusionS((-1, 0, 0))) # executed by bot 2 trace.add(tr.Trace.Flip()) trace.add(tr.Trace.Halt()) print >>sys.stderr, "Energy cost:", trace.cost(20) # Assume a 20*20*20 universe ser.serialize(trace, sys.stdout)
from __future__ import print_function import sys import os.path import model_reader.model_reader as mdl import trace_generators.parallel_trace_generator as gen import serialize_trace.serializer as ser if len(sys.argv) < 3: print( "Usage: make_parallel_trace.py some.mdl some.nbt [-f] [--lockstep] [--sort-tiers]", file=sys.stderr) sys.exit(1) lockstep = "--lockstep" in sys.argv sort_tiers = "--sort-tiers" in sys.argv overwrite = "-f" in sys.argv if os.path.exists(sys.argv[2]) and not overwrite: print("%s already exists" % sys.argv[2], file=sys.stderr) sys.exit(1) model = mdl.read(sys.argv[1]) trace = gen.build_parallel_trace(model, lockstep, sort_tiers) with open(sys.argv[2], "w") as f: ser.serialize(trace, f)
import os.path import model_reader.model_reader as mdl import trace_generators.inverse_boring_dissassemble_trace_generator as dis_gen import trace_generators.inverse_boring_trace_generator as ass_gen import serialize_trace.serializer as ser if len(sys.argv) < 4: print( "Usage: make_inverse_boring_reassemble_trace.py source.mdl target.mdl some.nbt [-f]", file=sys.stderr) sys.exit(1) if (len(sys.argv) >= 5 and sys.argv[4] != '-f') and os.path.exists( sys.argv[3]): print("%s already exists" % sys.argv[3], file=sys.stderr) sys.exit(1) source_model = mdl.read(sys.argv[1]) target_model = mdl.read(sys.argv[2]) disassemble_trace = dis_gen.build_inverse_dissassemble_boring_trace( source_model) assemble_trace = ass_gen.build_inverse_boring_trace(target_model) disassemble_trace.instructions.pop() # Remove halt with open(sys.argv[3], "w") as f: ser.serialize(disassemble_trace, f) ser.serialize(assemble_trace, f)