def easy1(challenge, student, code, completed): a = Assembler() rom, errors = a.assemble( """%s .org $C000 .define PLAYER_X=$200 .define PLAYER_Y=$201 %s forever: jmp forever .org $fffa .dw $C000 .dw $C000 .dw $C000 """%(memmap, code) ) if errors: return None counts = [] for test in [[0],[1],[2],[3],[4],[5],[6],[7],[4,5],[4,6],[4,7],[5,7],[4,5,6,7]]: e = Emulator( rom[0x10:0x4010], rom[0x4010:] ) x = 74 y = 32 e.write(x,0x200) e.write(y,0x201) for t in test: e.controller(1, t) if 4 in test: y-=1 if 5 in test: y+=1 if 6 in test: x-=1 if 7 in test: x+=1 counts.append( run( e, 0x100 ) ) if e.read(0x200) != x or e.read(0x201) != y: return None return rom_size(rom), sum(counts)/len(counts)
def barcamp3(challenge, student, code, completed): a = Assembler() preamble = ".org $C000\n.define PADDLE_1Y=$204\n" postamble = "\nforever:\n jmp forever\n.org $fffa\n.dw $C000\n.dw $C000\n.dw $C000" rom, errors = a.assemble( preamble+code + postamble ) if errors: None for test in [[0],[4],[5],[4,3]]: e = Emulator( rom[0x10:0x4010], rom[0x4010:] ) for t in test: e.controller(1,t) for i in range(0x100): e.step() if e.last_op == 0x60: break if 4 in test and e.read(0x204) != 1: return None if 5 in test and e.read(0x204) != 0xff: return None return rom_size(rom), 100
def barcamp3(challenge, student, code, completed): a = Assembler() preamble = ".org $C000\n.define PADDLE_1Y=$204\n" postamble = "\nforever:\n jmp forever\n.org $fffa\n.dw $C000\n.dw $C000\n.dw $C000" rom, errors = a.assemble(preamble + code + postamble) if errors: None for test in [[0], [4], [5], [4, 3]]: e = Emulator(rom[0x10:0x4010], rom[0x4010:]) for t in test: e.controller(1, t) for i in range(0x100): e.step() if e.last_op == 0x60: break if 4 in test and e.read(0x204) != 1: return None if 5 in test and e.read(0x204) != 0xff: return None return rom_size(rom), 100