Ejemplo n.º 1
0
def B2(GT, KL):
    index_from = [2, 5, 6]
    index_to = {2: 1, 5: 3, 6: 4}
    text = []
    text.append("Bước 2: chuyển phủ định về vế còn lại")
    while True:
        cnt = 0
        i = 0
        while i < len(GT):
            index = check(GT[i])
            if index in index_from:
                cnt += 1
                text.append("  chuyển '" + GT[i] + "' qua KL")
                KL.append(change(GT[i], index, index_to[index]))
                del GT[i]
            else:
                i += 1
        i = 0
        while i < len(KL):
            index = check(KL[i])
            if index in index_from:
                cnt += 1
                text.append("  chuyển '" + KL[i] + "' qua GT")
                GT.append(change(KL[i], index, index_to[index]))
                del KL[i]
            else:
                i += 1
        if cnt == 0:
            break
        text.append("--- sau khi chuyển: ")
        text.append(merge(GT, KL))
    return (GT, KL, text)
Ejemplo n.º 2
0
def B4(GT, KL):
    splitKL = [3, 8, 9, 12, 15, 16, 18, 21, 22]
    splitGT = [4, 7, 10, 11, 13, 17, 19, 20, 23]
    temp = []
    temp.append([GT, KL])
    text = []
    text.append("Bước 4: tách ra các dòng nếu bên GT có or và bên KL có and")
    i = 0
    while i < len(temp):
        good = False
        for j in range(len(temp[i][0])):
            index = check(temp[i][0][j])
            if index in splitGT:
                pos = temp[i][0][j].find("or")
                p1 = [list(temp[i][0]), list(temp[i][1])]
                p2 = [list(temp[i][0]), list(temp[i][1])]
                p1[0][j] = str(p1[0][j][0:pos - 1])
                p2[0][j] = str(p2[0][j][pos + 3:len(p2[0][j])])
                temp.append(p1)
                temp.append(p2)
                del temp[i]
                good = True
                break
        if good: continue
        for j in range(len(temp[i][1])):
            index = check(temp[i][1][j])
            if index in splitKL:
                pos = temp[i][1][j].find("and")
                p1 = [list(temp[i][0]), list(temp[i][1])]
                p2 = [list(temp[i][0]), list(temp[i][1])]
                p1[1][j] = str(p1[1][j][0:pos - 1])
                p2[1][j] = str(p2[1][j][pos + 4:len(p2[1][j])])
                temp.append(p1)
                temp.append(p2)
                del temp[i]
                good = True
                break
        if good: continue
        i += 1
    GT = []
    KL = []
    for i in temp:
        text.append(merge(i[0], i[1]))
        GT.append(list(i[0]))
        KL.append(list(i[1]))
    return (GT, KL, text)
Ejemplo n.º 3
0
 def update(event):
     global board
     global num_ticks
     if rules.check(board):
         board = rules.update(board, num_ticks)
         draw(board)
     else:
         end_game()
Ejemplo n.º 4
0
def B3(GT, KL):
    splitGT = [3, 8, 9, 12, 15, 16, 18, 21, 22]
    splitKL = [4, 7, 10, 11, 13, 17, 19, 20, 23]
    text = []
    text.append("Bước 3: tách and từ GT và or từ KL ra thành các mệnh đề mới")
    i = 0
    while i < len(GT):
        index = check(GT[i])
        if index in splitGT:
            pos = GT[i].find("and")
            p1 = str(GT[i][0:pos - 1])
            p2 = str(GT[i][pos + 4:len(GT[i])])
            text.append("  tách GT '" + GT[i] + "' thành 2 phần '" + p1 +
                        "' và '" + p2 + "'")
            GT.append(p1)
            GT.append(p2)
            del GT[i]
        else:
            i += 1
    i = 0
    while i < len(KL):
        index = check(KL[i])
        if index in splitKL:
            pos = KL[i].find("or")
            p1 = str(KL[i][0:pos - 1])
            p2 = str(KL[i][pos + 3:len(KL[i])])
            text.append("  tách KL '" + KL[i] + "' thành 2 phần '" + p1 +
                        "' và '" + p2 + "'")
            KL.append(p1)
            KL.append(p2)
            del KL[i]
        else:
            i += 1
    text.append("--- Kết quả sau khi tách: ")
    text.append(merge(GT, KL))
    return (GT, KL, text)
Ejemplo n.º 5
0
def B1(GT, KL):
    index_from = [23, 21, 19, 18, 17, 16, 15, 13]
    index_to = {23: 22, 21: 20, 19: 4, 18: 3, 17: 1, 16: 1, 15: 1, 13: 1}
    text = []
    text.append("Bước 1: chuẩn hóa dữ liệu về đơn giản hơn")
    for i in range(len(GT)):
        index = check(GT[i])
        if index == -1:
            print("FAIL")  ## this is ?
        if index in index_from:
            text.append("  chuyen '" + GT[i] + "' thanh '" +
                        change(GT[i], index, index_to[index]) + "'")
            GT[i] = change(GT[i], index, index_to[index])
    for i in range(len(KL)):
        index = check(KL[i])
        if index == -1:
            print("FAIL")
        if index in index_from:
            text.append("  chuyen '" + KL[i] + "' thanh '" +
                        change(KL[i], index, index_to[index]) + "'")
            KL[i] = change(KL[i], index, index_to[index])
    text.append("--- dữ liệu sau khi chuẩn hóa đon giản hơn: ")
    text.append(merge(GT, KL))
    return (GT, KL, text)
Ejemplo n.º 6
0
                            firsttap = pieces[n][m]
                            if (pieces[n][m] == "-"):
                                break
                            if (firsttap[0] == lastmoveby):
                                firsttap = "-"
                                pygame.mixer.music.load('turn.mp3')
                                pygame.mixer.music.play(0)
                                break
                            pieces[n][m] = "-"
                            from_x = n
                            from_y = m
                            pygame.mixer.music.load('f.mp3')
                            pygame.mixer.music.play(0)
                        else:

                            if rules.check(pieces, firsttap, from_x, from_y, n,
                                           m):
                                pieces[n][m] = firsttap
                                lastmoveby = firsttap[0]
                                firsttap = "-"
                                pygame.mixer.music.load('s.mp3')
                                pygame.mixer.music.play(0)
                            else:
                                pieces[from_x][from_y] = firsttap
                                firsttap = "-"
                                pygame.mixer.music.load('invalid.mp3')
                                pygame.mixer.music.play(0)

                        print(pieces)
                        break

    x = 0