예제 #1
0
class Snake:
    def __init__(self, initPos: Cell):
        self.head = initPos  #head: saves row and col of head
        self.body = LinkedList(self.head)

    def grow(self):
        self.body.insert()

    def move(self, nextCell: Cell):
        print('Snake is moving to {row}, {col}'.format(row=nextCell.row,
                                                       col=nextCell.col))
        self.head = nextCell
        self.body.addFirst(nextCell)
        tail = self.body.removeLast().value  #type is Cell
        tail.set_status = CellStatus.EMPTY

    def checkCrush(self, nextCell: Cell):
        print('checking for crash')
예제 #2
0
class TestLinkedList(unittest.TestCase):
    def setUp(self):
        self.llist = LinkedList()
        self.llist.add(1)
        self.llist.add(2)
        self.llist.add(3)

    def test_add(self):
        self.llist.addFirst(10)
        self.assertEqual(repr(self.llist), '[10, 1, 2, 3]')
        self.assertEqual(self.llist.last.data, 3)
        self.assertEqual(self.llist.head.data, 10)

    def test_remove(self):
        self.llist.add(4)
        self.llist.add(5)
        self.assertEqual(repr(self.llist), '[1, 2, 3, 4, 5]')
        self.llist.removeFirst()
        self.assertEqual(repr(self.llist), '[2, 3, 4, 5]')
        self.assertEqual(self.llist.head.data, 2)
        self.llist.removeAt(3)
        self.assertEqual(repr(self.llist), '[2, 3, 4]')
        self.llist.remove(3)
        self.assertEqual(repr(self.llist), '[2, 4]')
        self.assertEqual(self.llist.last.data, 4)
        self.assertEqual(self.llist.head.data, 2)

    def test_aux_methods(self):
        self.llist.add(4)
        self.llist.add(5)
        self.assertEqual(repr(self.llist), '[1, 2, 3, 4, 5]')
        self.assertEqual(self.llist.indexOf(10), -1)
        self.assertEqual(self.llist.indexOf(1), 0)
        self.assertTrue(self.llist.contains(4))
        self.assertFalse(self.llist.isEmpty())
        self.assertEqual(len(self.llist), 5)
예제 #3
0
class Stack:
    """
	Implementation of stack with linked list
	"""
    def __init__(self):
        self.llist = LinkedList()

    def push(self, value):
        self.llist.addFirst(value)

    def pop(self):
        return self.llist.removeFirst()

    def peek(self):
        return self.llist.peekFirst()

    def __len__(self):
        return len(self.llist)

    def isEmpty(self):
        return self.llist.isEmpty()

    def __repr__(self):
        return self.llist.__repr__()