Пример #1
0
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)
Пример #3
0
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)