Example #1
0
def atualiza_ponto(ponto):
    prolog.consult('database.pl')
    pontuacao = list(prolog.query('pontuacao(P)'))
    if len(pontuacao) == 0:
        py_assert('database.pl', 'pontuacao(%s).' % (ponto))
        return False
    py_retract('database.pl', 'pontuacao(%s).' % (pontuacao[0].get('P')))
    pontos = pontuacao[0].get('P') + ponto
    py_assert('database.pl', 'pontuacao(%s).' % (pontos))
Example #2
0
def atualiza_energia(energia):
    prolog.consult('database.pl')
    energias = list(prolog.query('energia(E)'))
    if len(energias) == 0:
        py_assert('database.pl', 'energia(%s).' % (energia))
        return False
    py_retract('database.pl', 'energia(%s).' % (energias[0].get('E')))
    energia_nova = energias[0].get('E') + energia
    py_assert('database.pl', 'energia(%s).' % (energia_nova))
Example #3
0
def atualiza_municao(total):
    prolog.consult('database.pl')
    municao = list(prolog.query('municao(B)'))
    if len(municao) == 0:
        py_assert('database.pl', 'municao(0).')
        return False
    py_retract('database.pl', 'municao(%s).' % (municao[0].get('B')))
    total_novo = municao[0].get('B') + total
    py_assert('database.pl', 'municao(%s).' % (total_novo))
Example #4
0
def atualiza_estado(x, y):
    prolog.consult('database.pl')
    estado = list(prolog.query('estado(%s,%s, T)' % (x, y)))
    if len(estado) == 0:
        py_assert('database.pl', 'estado(%s,%s,1).' % (x, y))
        return False
    py_retract('database.pl', 'estado(%s,%s,%s).' % (x, y, estado[0].get('T')))
    py_assert('database.pl',
              'estado(%s,%s,%s).' % (x, y, int(estado[0].get('T')) + 1))
Example #5
0
def pega_ouro():
    prolog.consult('check.pl')
    x, y, direcao = acha_coordenada_arqueiro()
    ouro = list(prolog.query('ouro(%s,%s)' % (x, y)))
    #print len(ouro)
    if len(ouro) == 0:
        return False
    tem_ouro = list(prolog.query('tem_ouro(%s,%s)' % (x, y)))
    if len(tem_ouro) > 0:
        py_retract('check.pl', 'ouro(%s,%s).' % (x, y))
        atualiza_ponto(1000)
        return True
    return False
Example #6
0
def munda_local_arqueiro(x, y, xx, yy, direcao):
    if (not detecta_parede(xx, yy)):
        py_retract('database.pl', "local_arqueiro")
        print 'retract de local_arqueiro(_,_,_)'
        py_assert('database.pl',
                  "local_arqueiro(%s,%s,%s)." % (xx, yy, direcao))
        print 'assert de local_arqueiro(%s,%s,%s)' % (xx, yy, direcao)
        prolog.consult('database.pl')
        if ((len(list(prolog.query("visitadas(%s,%s)" % (xx, yy))))) == 0):
            py_assert('database.pl', "visitadas(%s,%s)." % (xx, yy))
            print 'assert de visitadas(%s,%s)' % (xx, yy)
        descobre_parede_adjacente(xx, yy)
        return True
    return False
Example #7
0
def faz_dano(x, y, dano):
    prolog.consult('check.pl')
    inimigo = list(prolog.query('inimigo(D,V,%s,%s)' % (x, y)))
    vida_inimigo = inimigo[0].get('V') - dano
    #print vida_inimigo
    py_retract(
        'check.pl', 'inimigo(%s,%s,%s,%s).' %
        (inimigo[0].get('D'), inimigo[0].get('V'), x, y))
    if vida_inimigo <= 0:
        py_assert('database.pl', 'inimigo_grito(%s,%s)' % (x, y))
        py_assert('database.pl', 'seguro(%s,%s)' % (x, y))
        py_assert('database.pl', 'visitadas(%s,%s)' % (x, y))
        return True
    print 'inimigo(%s,%s,%s,%s).' % (inimigo[0].get('D'), vida_inimigo, x,
                                     y), '\ntem_inimigo(%s,%s).' % (x, y)
    py_assert(
        'check.pl',
        'inimigo(%s,%s,%s,%s).' % (inimigo[0].get('D'), vida_inimigo, x, y))
    py_retract('database.pl', 'tem_inimigo(%s,%s).' % (x, y))
    py_assert('database.pl', 'tem_inimigo(%s,%s).' % (x, y))
    return False