Прописал init для всех модулей
This commit is contained in:
parent
c8694aa053
commit
06f8192f6a
4
stepushovgs/labyrinth/source/builder/__init__.py
Normal file
4
stepushovgs/labyrinth/source/builder/__init__.py
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
from .builder import MazeBuilder
|
||||||
|
from .text_file_maze_builder import TextFileMazeBuilder
|
||||||
|
|
||||||
|
__all__ = ['MazeBuilder', 'TextFileMazeBuilder']
|
||||||
|
|
@ -2,61 +2,8 @@ from abc import ABC, abstractmethod
|
||||||
|
|
||||||
|
|
||||||
from source.classes.maze import Maze
|
from source.classes.maze import Maze
|
||||||
from source.classes.cell import Cell
|
|
||||||
|
|
||||||
class MazeBuilder(ABC):
|
class MazeBuilder(ABC):
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def buildFromFile(self, filename: str) -> Maze:
|
def buildFromFile(self, filename: str) -> Maze:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class TextFileMazeBuilder(MazeBuilder):
|
|
||||||
def buildFromFile(self, filename: str) -> Maze:
|
|
||||||
"""Получает лабиринт из текстового файла"""
|
|
||||||
with open(filename) as f:
|
|
||||||
data = f.read().splitlines()
|
|
||||||
x, y = 0, 0
|
|
||||||
width = len(data[0])
|
|
||||||
height = len(data)
|
|
||||||
|
|
||||||
cells = [[None] * width for _ in range(height)]
|
|
||||||
|
|
||||||
start, c_exit = None, None
|
|
||||||
|
|
||||||
for line in data:
|
|
||||||
x = 0
|
|
||||||
for c in line.strip():
|
|
||||||
if c == 'S':
|
|
||||||
cells[y][x] = Cell(x, y, isStart=True)
|
|
||||||
start = cells[y][x]
|
|
||||||
x += 1
|
|
||||||
elif c == 'E':
|
|
||||||
cells[y][x] = Cell(x, y, isExit=True)
|
|
||||||
c_exit = cells[y][x]
|
|
||||||
x += 1
|
|
||||||
elif c == '#':
|
|
||||||
cells[y][x] = Cell(x, y, isWall=True)
|
|
||||||
x += 1
|
|
||||||
elif c == ' ':
|
|
||||||
cells[y][x] = Cell(x, y)
|
|
||||||
x += 1
|
|
||||||
else:
|
|
||||||
print(f'Обнаружен неизвестный символ({c}) в файле лабиринта\nfilename: {filename}\nОн заменён на стену')
|
|
||||||
cells[y][x] = Cell(x, y, isWall=True)
|
|
||||||
x += 1
|
|
||||||
|
|
||||||
y += 1
|
|
||||||
|
|
||||||
if start == None:
|
|
||||||
raise ValueError(f'В файле лабиринта не обнаружен вход!\nfilename: {filename}')
|
|
||||||
|
|
||||||
if c_exit == None:
|
|
||||||
raise ValueError(f'В файле лабиринта не обнаружен выход!\nfilename: {filename}')
|
|
||||||
|
|
||||||
return Maze(
|
|
||||||
cells=cells,
|
|
||||||
width=width,
|
|
||||||
height=height,
|
|
||||||
start=start,
|
|
||||||
exit_cell=c_exit
|
|
||||||
)
|
|
||||||
|
|
@ -0,0 +1,54 @@
|
||||||
|
from source.classes.maze import Maze, Cell
|
||||||
|
from .builder import MazeBuilder
|
||||||
|
|
||||||
|
|
||||||
|
class TextFileMazeBuilder(MazeBuilder):
|
||||||
|
def buildFromFile(self, filename: str) -> Maze:
|
||||||
|
"""Получает лабиринт из текстового файла"""
|
||||||
|
with open(filename) as f:
|
||||||
|
data = f.read().splitlines()
|
||||||
|
x, y = 0, 0
|
||||||
|
width = len(data[0])
|
||||||
|
height = len(data)
|
||||||
|
|
||||||
|
cells = [[None] * width for _ in range(height)]
|
||||||
|
|
||||||
|
start, c_exit = None, None
|
||||||
|
|
||||||
|
for line in data:
|
||||||
|
x = 0
|
||||||
|
for c in line.strip():
|
||||||
|
if c == 'S':
|
||||||
|
cells[y][x] = Cell(x, y, isStart=True)
|
||||||
|
start = cells[y][x]
|
||||||
|
x += 1
|
||||||
|
elif c == 'E':
|
||||||
|
cells[y][x] = Cell(x, y, isExit=True)
|
||||||
|
c_exit = cells[y][x]
|
||||||
|
x += 1
|
||||||
|
elif c == '#':
|
||||||
|
cells[y][x] = Cell(x, y, isWall=True)
|
||||||
|
x += 1
|
||||||
|
elif c == ' ':
|
||||||
|
cells[y][x] = Cell(x, y)
|
||||||
|
x += 1
|
||||||
|
else:
|
||||||
|
print(f'Обнаружен неизвестный символ({c}) в файле лабиринта\nfilename: {filename}\nОн заменён на стену')
|
||||||
|
cells[y][x] = Cell(x, y, isWall=True)
|
||||||
|
x += 1
|
||||||
|
|
||||||
|
y += 1
|
||||||
|
|
||||||
|
if start == None:
|
||||||
|
raise ValueError(f'В файле лабиринта не обнаружен вход!\nfilename: {filename}')
|
||||||
|
|
||||||
|
if c_exit == None:
|
||||||
|
raise ValueError(f'В файле лабиринта не обнаружен выход!\nfilename: {filename}')
|
||||||
|
|
||||||
|
return Maze(
|
||||||
|
cells=cells,
|
||||||
|
width=width,
|
||||||
|
height=height,
|
||||||
|
start=start,
|
||||||
|
exit_cell=c_exit
|
||||||
|
)
|
||||||
4
stepushovgs/labyrinth/source/classes/__init__.py
Normal file
4
stepushovgs/labyrinth/source/classes/__init__.py
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
from .cell import Cell
|
||||||
|
from .maze import Maze
|
||||||
|
|
||||||
|
__all__ = ['Cell', 'Maze']
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
from source.classes.cell import Cell
|
from .cell import Cell
|
||||||
|
|
||||||
class Maze:
|
class Maze:
|
||||||
"""Лабиринт"""
|
"""Лабиринт"""
|
||||||
|
|
|
||||||
4
stepushovgs/labyrinth/source/observer/__init__.py
Normal file
4
stepushovgs/labyrinth/source/observer/__init__.py
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
from .console_view import ConsoleView
|
||||||
|
from .observer import Observer, Event
|
||||||
|
|
||||||
|
__all__ = ['ConsoleView', 'Observer', 'Event']
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
from source.observer.observer import Observer, Event
|
from .observer import Observer, Event
|
||||||
from source.classes.cell import Cell
|
from source.classes import Cell, Maze
|
||||||
from source.classes.maze import Maze
|
|
||||||
|
|
||||||
class ConsoleView(Observer):
|
class ConsoleView(Observer):
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
# import os
|
# import os
|
||||||
|
|
||||||
# from source.classes.cell import Cell
|
from source.classes import Maze
|
||||||
from source.classes.maze import Maze
|
|
||||||
|
|
||||||
|
|
||||||
class Event:
|
class Event:
|
||||||
|
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
from source.strategy.strategy import PathFindingStrategy
|
|
||||||
from source.classes.maze import Maze
|
|
||||||
from source.classes.cell import Cell
|
|
||||||
|
|
||||||
class AStrategy(PathFindingStrategy):
|
|
||||||
def findPath(self, maze: Maze, start: Cell, exit: Cell):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def __A__(self, maze: Maze, start: Cell, exit: Cell):
|
|
||||||
pass
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
from collections import deque
|
from collections import deque
|
||||||
|
|
||||||
|
|
||||||
from source.strategy.strategy import PathFindingStrategy, reconstruct_path
|
from source.strategy import PathFindingStrategy, reconstruct_path
|
||||||
from source.classes.maze import Maze
|
from source.classes import Maze, Cell
|
||||||
from source.classes.cell import Cell
|
|
||||||
|
|
||||||
class BFS(PathFindingStrategy):
|
class BFS(PathFindingStrategy):
|
||||||
def name(self):
|
def name(self):
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
from source.strategy.strategy import PathFindingStrategy, reconstruct_path
|
from source.strategy import PathFindingStrategy, reconstruct_path
|
||||||
from source.classes.maze import Maze
|
from source.classes import Maze, Cell
|
||||||
from source.classes.cell import Cell
|
|
||||||
|
|
||||||
class DFS(PathFindingStrategy):
|
class DFS(PathFindingStrategy):
|
||||||
@property
|
@property
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from source.strategy.strategy import PathFindingStrategy
|
from source.strategy import PathFindingStrategy
|
||||||
from source.classes.maze import Maze
|
from source.classes import Maze, Cell
|
||||||
from source.classes.cell import Cell
|
|
||||||
|
|
||||||
class Dijkstra(PathFindingStrategy):
|
class Dijkstra(PathFindingStrategy):
|
||||||
def findPath(self, maze: Maze, start: Cell, exit: Cell):
|
def findPath(self, maze: Maze, start: Cell, exit: Cell):
|
||||||
|
|
|
||||||
8
stepushovgs/labyrinth/source/strategy/__init__.py
Normal file
8
stepushovgs/labyrinth/source/strategy/__init__.py
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
from .bfs import BFS
|
||||||
|
from .dfs import DFS
|
||||||
|
from .astar import AStar
|
||||||
|
from .dijkstra import Dijkstra
|
||||||
|
from .maze_solver import MazeSolver
|
||||||
|
from .strategy import PathFindingStrategy, reconstruct_path
|
||||||
|
|
||||||
|
__all__ = ['BFS', 'DFS', 'AStar', 'Dijkstra', 'MazeSolver', 'PathFindingStrategy', 'reconstruct_path']
|
||||||
10
stepushovgs/labyrinth/source/strategy/astar.py
Normal file
10
stepushovgs/labyrinth/source/strategy/astar.py
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
from source.strategy import PathFindingStrategy
|
||||||
|
from source.classes import Maze, Cell
|
||||||
|
|
||||||
|
|
||||||
|
class AStar(PathFindingStrategy):
|
||||||
|
def findPath(self, maze: Maze, start: Cell, exit: Cell):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def __A__(self, maze: Maze, start: Cell, exit: Cell):
|
||||||
|
pass
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
|
||||||
from source.strategy.strategy import PathFindingStrategy
|
from source.strategy import PathFindingStrategy
|
||||||
from source.observer.observer import Observer, Event
|
from source.observer import Observer, Event
|
||||||
from source.classes.cell import Cell
|
from source.classes import Cell, Maze
|
||||||
from source.classes.maze import Maze
|
|
||||||
|
|
||||||
class MazeSolver:
|
class MazeSolver:
|
||||||
def __init__(self, maze: Maze, strategy: PathFindingStrategy, observer: Observer):
|
def __init__(self, maze: Maze, strategy: PathFindingStrategy, observer: Observer):
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,7 @@
|
||||||
from abc import ABC, abstractmethod
|
from abc import ABC, abstractmethod
|
||||||
|
|
||||||
|
|
||||||
from source.classes.cell import Cell
|
from source.classes import Cell, Maze
|
||||||
from source.classes.maze import Maze
|
|
||||||
|
|
||||||
|
|
||||||
class PathFindingStrategy(ABC):
|
class PathFindingStrategy(ABC):
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 2,
|
"execution_count": null,
|
||||||
"id": "fde1eddb",
|
"id": "fde1eddb",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"from source.builder.builder import TextFileMazeBuilder\n",
|
"from source.builder import TextFileMazeBuilder\n",
|
||||||
"\n",
|
"\n",
|
||||||
"builder = TextFileMazeBuilder()\n",
|
"builder = TextFileMazeBuilder()\n",
|
||||||
"maze = builder.buildFromFile(filename='test_lab.txt')\n",
|
"maze = builder.buildFromFile(filename='test_lab.txt')\n",
|
||||||
|
|
@ -89,7 +89,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 4,
|
"execution_count": null,
|
||||||
"id": "19840429",
|
"id": "19840429",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
|
|
@ -97,26 +97,6 @@
|
||||||
"name": "stdout",
|
"name": "stdout",
|
||||||
"output_type": "stream",
|
"output_type": "stream",
|
||||||
"text": [
|
"text": [
|
||||||
"Старт: (0, 0)\n",
|
|
||||||
"Выход: (7, 1)\n",
|
|
||||||
"Соседи старта: [(1, 0)]\n",
|
|
||||||
"для клекти (0, 0) соседи: [(1, 0)]\n",
|
|
||||||
"для клекти (1, 0) соседи: [(0, 0), (2, 0)]\n",
|
|
||||||
"для клекти (2, 0) соседи: [(2, 1), (1, 0)]\n",
|
|
||||||
"для клекти (2, 1) соседи: [(2, 0), (2, 2)]\n",
|
|
||||||
"для клекти (2, 2) соседи: [(2, 1), (1, 2), (3, 2)]\n",
|
|
||||||
"для клекти (3, 2) соседи: [(3, 3), (2, 2), (4, 2)]\n",
|
|
||||||
"для клекти (4, 2) соседи: [(4, 1), (3, 2)]\n",
|
|
||||||
"для клекти (4, 1) соседи: [(4, 0), (4, 2)]\n",
|
|
||||||
"для клекти (4, 0) соседи: [(4, 1)]\n",
|
|
||||||
"для клекти (3, 3) соседи: [(3, 2), (3, 4)]\n",
|
|
||||||
"для клекти (3, 4) соседи: [(3, 3), (2, 4), (4, 4)]\n",
|
|
||||||
"для клекти (4, 4) соседи: [(3, 4), (5, 4)]\n",
|
|
||||||
"для клекти (5, 4) соседи: [(4, 4), (6, 4)]\n",
|
|
||||||
"для клекти (6, 4) соседи: [(6, 3), (5, 4)]\n",
|
|
||||||
"для клекти (6, 3) соседи: [(6, 2), (6, 4)]\n",
|
|
||||||
"для клекти (6, 2) соседи: [(6, 1), (6, 3)]\n",
|
|
||||||
"для клекти (6, 1) соседи: [(6, 2), (7, 1)]\n",
|
|
||||||
"Путь найден:\n",
|
"Путь найден:\n",
|
||||||
"S**# ###\n",
|
"S**# ###\n",
|
||||||
"##*# #*E\n",
|
"##*# #*E\n",
|
||||||
|
|
@ -153,9 +133,9 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"from source.strategy.DFS import DFS\n",
|
"from source.strategy import DFS, MazeSolver\n",
|
||||||
"from source.strategy.maze_solver import MazeSolver\n",
|
"# from source.strategy.maze_solver import \n",
|
||||||
"from source.classes.cell import Cell\n",
|
"from source.classes import Cell\n",
|
||||||
"\n",
|
"\n",
|
||||||
"\n",
|
"\n",
|
||||||
"solver = MazeSolver(maze, DFS(), ConsoleView())\n",
|
"solver = MazeSolver(maze, DFS(), ConsoleView())\n",
|
||||||
|
|
@ -171,67 +151,21 @@
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
{
|
{
|
||||||
"name": "stdout",
|
"ename": "TypeError",
|
||||||
"output_type": "stream",
|
"evalue": "'module' object is not callable",
|
||||||
"text": [
|
"output_type": "error",
|
||||||
"Старт: (0, 0)\n",
|
"traceback": [
|
||||||
"Выход: (7, 1)\n",
|
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||||||
"Соседи старта: [(1, 0)]\n",
|
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
|
||||||
"для клекти (0, 0) соседи: [(1, 0)]\n",
|
"Cell \u001b[1;32mIn[9], line 6\u001b[0m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01msource\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mstrategy\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mmaze_solver\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m MazeSolver\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01msource\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mclasses\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mcell\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m Cell\n\u001b[1;32m----> 6\u001b[0m solver \u001b[38;5;241m=\u001b[39m MazeSolver(maze, \u001b[43mBFS\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m, ConsoleView())\n\u001b[0;32m 7\u001b[0m stats \u001b[38;5;241m=\u001b[39m solver\u001b[38;5;241m.\u001b[39msolve()\n\u001b[0;32m 9\u001b[0m [cord\u001b[38;5;241m.\u001b[39mgetXY() \u001b[38;5;28;01mfor\u001b[39;00m cord \u001b[38;5;129;01min\u001b[39;00m maze\u001b[38;5;241m.\u001b[39mgetNeighbors(cell\u001b[38;5;241m=\u001b[39mCell(\u001b[38;5;241m2\u001b[39m, \u001b[38;5;241m0\u001b[39m))], [cord\u001b[38;5;241m.\u001b[39mgetXY() \u001b[38;5;28;01mfor\u001b[39;00m cord \u001b[38;5;129;01min\u001b[39;00m stats\u001b[38;5;241m.\u001b[39mpath]\n",
|
||||||
"для клекти (1, 0) соседи: [(0, 0), (2, 0)]\n",
|
"\u001b[1;31mTypeError\u001b[0m: 'module' object is not callable"
|
||||||
"для клекти (2, 0) соседи: [(2, 1), (1, 0)]\n",
|
|
||||||
"для клекти (2, 1) соседи: [(2, 0), (2, 2)]\n",
|
|
||||||
"для клекти (2, 2) соседи: [(2, 1), (1, 2), (3, 2)]\n",
|
|
||||||
"для клекти (3, 2) соседи: [(3, 3), (2, 2), (4, 2)]\n",
|
|
||||||
"для клекти (4, 2) соседи: [(4, 1), (3, 2)]\n",
|
|
||||||
"для клекти (4, 1) соседи: [(4, 0), (4, 2)]\n",
|
|
||||||
"для клекти (4, 0) соседи: [(4, 1)]\n",
|
|
||||||
"для клекти (3, 3) соседи: [(3, 2), (3, 4)]\n",
|
|
||||||
"для клекти (3, 4) соседи: [(3, 3), (2, 4), (4, 4)]\n",
|
|
||||||
"для клекти (4, 4) соседи: [(3, 4), (5, 4)]\n",
|
|
||||||
"для клекти (5, 4) соседи: [(4, 4), (6, 4)]\n",
|
|
||||||
"для клекти (6, 4) соседи: [(6, 3), (5, 4)]\n",
|
|
||||||
"для клекти (6, 3) соседи: [(6, 2), (6, 4)]\n",
|
|
||||||
"для клекти (6, 2) соседи: [(6, 1), (6, 3)]\n",
|
|
||||||
"для клекти (6, 1) соседи: [(6, 2), (7, 1)]\n",
|
|
||||||
"Путь найден:\n",
|
|
||||||
"S**# ###\n",
|
|
||||||
"##*# #*E\n",
|
|
||||||
"# ** #*#\n",
|
|
||||||
"###*##*#\n",
|
|
||||||
"# ****#\n",
|
|
||||||
"########\n"
|
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"text/plain": [
|
|
||||||
"([(2, 1), (1, 0)],\n",
|
|
||||||
" [(0, 0),\n",
|
|
||||||
" (1, 0),\n",
|
|
||||||
" (2, 0),\n",
|
|
||||||
" (2, 1),\n",
|
|
||||||
" (2, 2),\n",
|
|
||||||
" (3, 2),\n",
|
|
||||||
" (3, 3),\n",
|
|
||||||
" (3, 4),\n",
|
|
||||||
" (4, 4),\n",
|
|
||||||
" (5, 4),\n",
|
|
||||||
" (6, 4),\n",
|
|
||||||
" (6, 3),\n",
|
|
||||||
" (6, 2),\n",
|
|
||||||
" (6, 1),\n",
|
|
||||||
" (7, 1)])"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "display_data"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"from source.strategy.BFS import BFS\n",
|
"from source.strategy import BFS, MazeSolver\n",
|
||||||
"from source.strategy.maze_solver import MazeSolver\n",
|
"# from source.strategy import \n",
|
||||||
"from source.classes.cell import Cell\n",
|
"from source.classes import Cell\n",
|
||||||
"\n",
|
"\n",
|
||||||
"\n",
|
"\n",
|
||||||
"solver = MazeSolver(maze, BFS(), ConsoleView())\n",
|
"solver = MazeSolver(maze, BFS(), ConsoleView())\n",
|
||||||
|
|
@ -242,7 +176,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 5,
|
"execution_count": 6,
|
||||||
"id": "857c5c04",
|
"id": "857c5c04",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
|
|
@ -264,7 +198,7 @@
|
||||||
"{'0', '1', '2', '3', '4'}"
|
"{'0', '1', '2', '3', '4'}"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 5,
|
"execution_count": 6,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
|
|
@ -293,7 +227,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 6,
|
"execution_count": 7,
|
||||||
"id": "9a5ea5cb",
|
"id": "9a5ea5cb",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
|
|
@ -379,7 +313,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 7,
|
"execution_count": 8,
|
||||||
"id": "32edf4d1",
|
"id": "32edf4d1",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user