예제 #1
0
def main():
    choice_num = str(input("Vilken ordning ligger korten i?"))
    str_list = choice_num.split()
    num_list = [int(x) for x in str_list]  # Gör om alla element till integers
    q = LinkedQ()  #Skapar en tom kö
    for num in num_list:  #Sätter in alla värden i kön
        q.enqueue(num)
    result = []
    while not q.isEmpty(
    ):  # Här tar vi bort en och lägger den längst bak i kön, tar nästa i kön och sätter den i result listan, fortsätter tills listan är tom
        top_card = q.dequeue()
        q.enqueue(top_card)
        next_card = q.dequeue()
        result.append(next_card)
    print(str(result).strip('[]'))
예제 #2
0
파일: bfs.py 프로젝트: saraves/Tilda
def main():
# Skapar binärträd av ordlistan (svenska) och dumbarnen (gamla)
# Frågar efter start- och slutord

    svenska = Bintree()         # ordlistan
    gamla = Bintree()           # dumbarnen
    with open('word3.txt', 'r', encoding = 'utf-8') as svenskfil:
        for rad in svenskfil:
            ordet = rad.strip()         # ett trebokstavsord per rad
            if ordet in svenska:
                pass
            else:
                svenska.put(ordet)

    startord = input('Vad är startordet?\n')
    slutord = input('Vad är slutordet?\n')

    q = LinkedQ()
    q.enqueue(startord)
    gamla.put(startord)

    foundPath = None

    while not q.isEmpty():              # Gå igenom alla barn, barnbarn, ...
        ord = q.dequeue()
        if ord == slutord:
            foundPath = True
            break
        makechildren(ord, q, svenska, gamla)

    if foundPath:
        print('Det finns en väg från', startord, 'till', slutord)
    else:
        print('Det finns ingen väg från', startord, 'till', slutord)
예제 #3
0
def test():  #Testfunktion för att kontrollera enqueue och dequeue
    q = LinkedQ()
    q.enqueue(1)
    q.enqueue(2)
    x = q.dequeue()
    y = q.dequeue()
    if (x == 1 and y == 2):
        print("Fungerar")
    else:
        print("Något är fel. 1 och 2 förväntades men vi fick", x, y)
예제 #4
0
def interface():
    try:
        startord = input("Ange startord: ")
        slutord = input("Ange slutord: ")
        q = LinkedQ()
        q.enqueue(startord)
        while not q.isEmpty():
            nod = q.dequeue()
            makechildren(nod, slutord, q)
    except SolutionFound:
        print("Det finns en väg till", slutord)
    else:
        print("Det finns ingen väg")
예제 #5
0
def main():
    start = input("Ange startordet: ")
    s**t = input("Ange slutordet: ")
    first_parent = ParentNode(start)
    queue = LinkedQ()
    queue.enqueue(first_parent)
    while not queue.isEmpty():
            nod = queue.dequeue()
            if makechildren(nod, s**t, queue) is True:
                print("Det finns en väg till", s**t)
                break
            elif queue.isEmpty() is True:
                print("Det finns ingen väg till", s**t)
예제 #6
0
def main():
    string = input("skriv:  ")
    stringList = string.split()  # lägger stringnummer i en lista

    intList = []
    try:
        for i in stringList:  # gör om till intar och lägger i lista
            i = int(i)
            intList.append(i)
    except:
        for i in stringList:  # gör om till intar och lägger i lista
            intList.append(i)

    q = LinkedQ()  # skapar ett objekt

    for x in intList:  #appendar talen till objektets array
        q.enqueue(x)

    while q.isEmpty() == False:
        firstToLast = q.dequeue()  # poppar första talet
        q.enqueue(firstToLast)  # lägger första talet sist i arrayn
        deal = q.dequeue()  # printar första talet i arrayn
        print(deal, end=" ")
예제 #7
0
파일: L05.py 프로젝트: AlexWombat/Labb5
def main():
    svenska = Bintree()
    gamla = Bintree()
    with open("word3.txt", "r", encoding="utf-8") as svenskfil:
        for rad in svenskfil:
            ordet = rad.strip()
            if ordet not in svenska:
                svenska.put(ordet)
    startord = input('Ange ett startord: ')
    parent = ParentNode(startord)
    slutord = input('Ange ett slutord: ')
    q = LinkedQ()
    q.enqueue(parent)
    try:
        while not q.isEmpty():
            parent = q.dequeue()
            makechildren(parent, startord, slutord, svenska, q, gamla)
        print('Det finns ingen väg.')
    except SolutionFound:
        pass
예제 #8
0
파일: Labb_2.py 프로젝트: AlexWombat/Labb2
def main():
    a = input('Vilken ordning ligger korten i?')
    b = a.split()
    for i in b:
        if int(i)>13:
            return print('Värdet på kortet kan ej överstiga 13.')
    #q = ArrayQ()
    q = LinkedQ()
    for i in b[1::2]:
        q.enqueue(int(i))
    for i in b[0::2]:
        q.enqueue(int(i))
    if q.isEmpty() is True:
        print('Du måste mata i några kort för att beskåda magin.')
    else:
        right_order = []
        for i in range(len(b)):
            right_order.append(q.dequeue())
        print('Korten kommer ut i denna ordning:')
        for i in right_order:
            print(i, end=' ')
예제 #9
0
def main():
    # Skapar binärträd av ordlistan (svenska) och dumbarnen (gamla)
    # Frågar efter start- och slutord

    svenska = Bintree()  # ordlistan
    gamla = Bintree()  # dumbarnen
    with open('word3.txt', 'r', encoding='utf-8') as svenskfil:
        for rad in svenskfil:
            ordet = rad.strip()  # ett trebokstavsord per rad
            if ordet in svenska:
                pass
            else:
                svenska.put(ordet)

    startord = input('Vad är startordet?\n')
    slutord = input('Vad är slutordet?\n')

    q = LinkedQ()  # skapar en kö

    node = ParentNode(startord)  # skapa en ParentNode av startord

    q.enqueue(node)  # lägger in startordet i kön
    gamla.put(startord)  # lägger in startordet i gamlabarn-trädet

    foundPath = None

    while not q.isEmpty():  # Gå igenom alla barn, barnbarn, ...
        parent = q.dequeue()
        if parent.word == slutord:
            foundPath = True
            break
        makechildren(parent, q, svenska, gamla)

    if foundPath:
        print('Det finns en väg från', startord, 'till', slutord,
              '\nVägen är:')
        parent.writechain()  # parent är slutordets ParentNode
    else:
        print('Det finns ingen väg från', startord, 'till', slutord)
예제 #10
0
def main():
    svenska = Bintree()
    gamla = Bintree()
    with open("word3.txt", "r", encoding="utf-8") as svenskfil:
        for rad in svenskfil:
            ordet = rad.strip()
            if ordet not in svenska:
                svenska.put(ordet)
    startord = input('Ange ett startord: ')
    slutord = input('Ange ett slutord: ')
    q = LinkedQ()
    q.enqueue(startord)
    kedja = None
    while not q.isEmpty():
        nod = q.dequeue()
        kedja = makechildren(nod, slutord, svenska, q, gamla)
        if kedja is not None:
            break
    if kedja is None:
        print('Det finns ingen väg')
    else:
        print('Det finns en väg från', startord, 'till', slutord)
예제 #11
0
from linkedQFile import LinkedQ
li = [7, 1, 12, 2, 8, 3, 11, 4, 9, 5, 13, 6, 10]

q = LinkedQ()
for number in li:
    q.enqueue(number)
D1list = []

while q.isEmpty() == False:
    x = q.dequeue()
    q.enqueue(x)
    y = q.dequeue()
    D1list.append(y)

print("I rätt ordning: ", D1list)
예제 #12
0
파일: v5.py 프로젝트: fabianrevilla/tilda
class ParentNode:
    def __init__(self, word, parent=None):
        self.word = word
        self.parent = parent


startNode = ParentNode(str(sys.argv[1]))
slutNode = ParentNode(str(sys.argv[2]))
visited = DictHash()
visited.store(startNode, startNode)
queueOfNodes = LinkedQ()
q = LinkedQ()
queueOfNodes.enqueue(startNode)  #lägger startnoden i kön
while not queueOfNodes.isEmpty():
    nextNode = queueOfNodes.dequeue()  #plockar ut första noden ur kön
    if nextNode.word == slutNode.word:  #om elementet är slutordet
        break
    else:
        makechildren(nextNode, visited, queueOfNodes)  #skapa alla barn


def writechain(parentNode):
    if parentNode == None:
        return
    writechain(parentNode.parent)
    print(parentNode.word)


writechain(nextNode)
예제 #13
0
파일: bfs.py 프로젝트: Ceasarna/KTH
            new_word = "".join(start_word)
            if new_word in svenska:
                if new_word not in gamla:
                    gamla.put(new_word)
                    q.enqueue(new_word)
                    # If it so happens that we find the word that is looked for, return True.
                    if new_word == end:
                        return True
            # When the whole alfabet has been checked through, add +1 to i and re-loop.
            if letter == 'ö':
                i += 1
                break
            start_word = list(word)


start = input("Start")
end = input("End")
q = LinkedQ()
q.enqueue(start)
while not q.isEmpty():
    # Takes the first element in the queue and removes it. This will then be checked.
    nod = q.dequeue()
    connection = makechildren(nod, end, q)

    if connection:
        print("There was a way!")
        break

if not connection:
    print("There was no way!")
예제 #14
0
from makechildren import makechildren
from hashtest import DictHash
from linkedQFile import LinkedQ

startord = 'fan'
slutord = 'gud'
visited = DictHash()
visited.store(startord, startord)
queueOfWords = LinkedQ()
q = LinkedQ()
queueOfWords.enqueue(startord)  #lägger startordet i kön
while not queueOfWords.isEmpty():
    nextWord = queueOfWords.dequeue()  #plockar ut första elementet ur kön
    if nextWord == slutord:  #om elementet är slutordet
        break
    else:
        makechildren(nextWord, visited, queueOfWords)  #skapa alla barn
print("slutord = ", slutord)
예제 #15
0
    for i in range(5):
        arrayQ.enqueue(int(input("Ange vilket kort som väljs härnsäst: "))
                       )  #Kortet stoppas längst bak i listan


def test():  #Testfunktion för att kontrollera enqueue och dequeue
    q = LinkedQ()
    q.enqueue(1)
    q.enqueue(2)
    x = q.dequeue()
    y = q.dequeue()
    if (x == 1 and y == 2):
        print("Fungerar")
    else:
        print("Något är fel. 1 och 2 förväntades men vi fick", x, y)


if __name__ == '__main__':
    test()
    arrayQ = LinkedQ()  #en array skapas
    start_kort(arrayQ)  #anrpoar funktionen start_kort

    i = 0
    while not arrayQ.isEmpty():
        i += 1
        kortet = arrayQ.dequeue()  #raden anropar kortet längst bak i listan
        if i % 2 != 0:  #När i är delbart med 2 (varranan gång) körs följande
            #print("nu placeras ett kort längst bak")
            arrayQ.enqueue(kortet)  #Enqueue körs
        else:
            print("kort", kortet, "placeras på bordet")
예제 #16
0
from linkedQFile import LinkedQ
from linkedQFile import Node
#from arrayQFile import ArrayQ
a=input("Vilken ordning_in ligger korten i?") #Lagrar input i en sträng
ordning_in=LinkedQ()                          #Skapar objektet för inordningen
a=a.split()                                   #Gör strängen till en lista utan mellanslag
for indx, i in enumerate(a):                  #Omvandlar varje character i listan till integer
    ordning_in.enqueue(int(i))

/Users/fabian/Desktop/skolskit/Tilda/Datorlabbar/d1/test.py
k=len(a)
svar=k*[0]
for i in range(k):
    #ordning_in.disp()
    x=ordning_in.dequeue()  #Plockar ut det översta kortet
    ordning_in.enqueue(x)
    x=ordning_in.dequeue()
    ordning_in.disp()
    svar[i]=int(x)

print("svar = ",svar)
#RÄTT ORDNING 7 1 12 2 8 3 11 4 9 5 13 6 10