Exemplo n.º 1
0
def addac(a, sel0, sel1, clk, acc):

    invA = inv(a)

    m1 = mux2(a, invA, sel0)

    y1, cout = somador(a, acc, sel0)

    m2 = mux2(m1, y1, sel1)

    acc = flopenr(clk, 0, 1, m2, acc)

    return m2, cout, acc
Exemplo n.º 2
0
from inv import *

print("|  A  |  Y  |")
for a in range(0, 2, 1):
    y = inv(a)
    print("|  {0}  |  {1}  |".format(a, y))
Exemplo n.º 3
0
def prompter(rm):
    global states
    global smdmap
    global qflag
    newrm = rm
    
    raw = raw_input(prmpt).lower().split()
    ralpha = []
    for i in range(len(raw)):
#        print i,":",raw[i]
        raw[i] = raw[i].translate(None,string.punctuation)
        if raw[i].isalpha() == True and not raw[i] in ignore:
            ralpha.append(raw[i])
#    print "ralpha:", ralpha
    
    if "inv" in raw or "inventory" in raw:
        inv(rm,states)
        return rm
    elif "help" in raw or "info" in raw or "instructions" in raw:
        instruct()
        return rm
    elif raw == ["map"]:
        smdmap = mapp(rm,smdmap)
        return rm
    elif raw == ["save"]:
        save(states,smdmap)
        return rm
    elif raw == ["load"]:
        states, smdmap = load()
	#for x in states['map'].keys():
	#if states['map'][x] == 1:
	#rmshow(x)
	#k = smdmap.keys()
	#k.sort()
	#for i in k:
	#i = ''.join(smdmap[i])
	#print i
        return states['currentrm']
    elif "exit" in raw or "quit" in raw:
        qflag = True
        return rm
    elif raw == ["traceback"]:
        traceback.print_stack()
        return rm

    mode = []
    item = []
    obj = []

    for x in modes:
        for n in x:
            if n in ralpha:
                mode.append(x)
#    print "mode:", mode

    if len(mode) == 0:
        print "You have to include an action word I understand."
        return rm
    elif len(mode) > 1:
        print "No more than one action at a time, thanks."
        return rm
    elif not (ralpha[0] in mode[0]):
        print wr("Your command must start with an action word.")
        return rm
    elif mode[0] == combine:
        print wr("You need to open your inventory to combine items.")
        return rm

    for x in ralpha[1:]:
        iflag = oflag = 0
        for n in idic.keys():
            if states['inv'][n] != 0 and x in n:
                item.append(n)
                iflag = 1
        for n in dic[rm].keys():
            if states[rm][n] != 0 and x in n:
                obj.append(n)
                oflag = 1
        if iflag == 0 and oflag == 0:
            print "I only understood you as far as wanting to %s." % ralpha[0]
#            print "offender:",x
            return rm

    item = list(set(item))
    obj = list(set(obj))
#    print "obj:", obj
#    print "item:", item

    dlist = []
    for o in range(len(obj)):
        for i in range(len(item)):
            if obj[o] == item[i]:
                dlist.append(o)
    for x in dlist:
        del obj[x]

    if len(item) > 1:
        print fail_txt
        return rm
    elif len(obj) > 1:
        print fail_txt
        return rm
    elif len(item) == 0 and len(obj) == 0:
        if mode[0] is look:
            exec dic[rm][roomd][states[rm][roomd]][look]
            return rm
        else:
            print fail_txt
            return rm

    if len(item) == 1:
        if mode[0] is use:
            invuse(item[0], ralpha, rm, states)
            return newrm
        else:
            print fail_txt
            return rm

    exec dic[rm][obj[0]][states[rm][obj[0]]][mode[0]]
    return newrm
Exemplo n.º 4
0
def prompter(rm):
    global qflag
    newrm = rm

    raw = raw_input(prmpt).lower().split()
    ralpha = []
    for i in range(len(raw)):
        print i,":",raw[i]
        raw[i] = raw[i].translate(None,string.punctuation)
        if raw[i].isalpha() == True:
            ralpha.append(raw[i])
    print "ralpha:", ralpha
    
    if "inv" in raw or "inventory" in raw:
        inv(rm)
        return rm
    elif "help" in raw or "info" in raw or "instructions" in raw:
        instruct()
        return rm
    elif raw == ["map"]:
        mapp(rm)
        return rm
    elif "exit" in raw or "quit" in raw:
        qflag = True
        return rm
    elif raw == ["traceback"]:
        traceback.print_stack()
        return rm

    item = []
    obj = []
    mode = []

    for x in idic.keys():
        for n in x:
            if (n in raw and states['inv'][x] != 0):
                item.append(x)
                #print item

    item = list(set(item))
    
    if len(item) > 2:
        print wr("Whoa, too many items there.")
    elif len(item) == 2:
        if raw[0] in combine:
            print wr("You'll need to be in your inventory to combine those items.")
        else:
            print wr("Whoa, too many items there.")
    elif len(item) == 1:
        print "bla bla bla"

    for x in dic[rm].keys():
        for n in x:
            if (n in raw and states[rm][x] != 0):
                obj.append(x)

    obj = list(set(obj))
    #    print "obj:", obj

    if len(obj) == 0:
        if raw == ['look']:
            exec dic[rm][roomd][states[rm][roomd]][look]
        else:
            print fail_txt
        return rm

    #    md_list = dic[rm][obj[0]][states[rm][obj[0]]].keys()

    for md in dic[rm][obj[0]][states[rm][obj[0]]].keys():
        for name in md:
            if name in raw:
                mode.append(md)
    #    print "mode:", mode

    if len(obj) == 1 and len(mode) == 0:
        print "I don't understand that action."
        return rm
    elif len(obj) > 1 or len(mode) > 1:
        print "No more than one action or object at a time, please."
        return rm
    elif len(obj) == 1 and mode[0] == 'use' and len(item) > 0:
        print "Try opening your inventory first."
        return rm
    else:
        exec dic[rm][obj[0]][states[rm][obj[0]]][mode[0]]
        return newrm