You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
4.6 KiB
106 lines
4.6 KiB
|
1 year ago
|
import networkx as nx
|
||
|
|
from pyvis.network import Network
|
||
|
|
|
||
|
|
def main():
|
||
|
|
G = nx.DiGraph()
|
||
|
|
|
||
|
|
for i in range(1,25):
|
||
|
|
G.add_node(f'Route {i}', node_type='route')
|
||
|
|
|
||
|
|
G.add_node('Pallet Town', node_type='location')
|
||
|
|
G.add_node('Viridian City', node_type='location')
|
||
|
|
G.add_node('Viridian Forest', node_type='location')
|
||
|
|
G.add_node('Pewter City', node_type='location')
|
||
|
|
G.add_node('Mt. Moon', node_type='location')
|
||
|
|
G.add_node('Cerulean City', node_type='location')
|
||
|
|
G.add_node('Power Plant', node_type='location')
|
||
|
|
G.add_node('Saffron City', node_type='location')
|
||
|
|
G.add_node('Celadon City', node_type='location')
|
||
|
|
G.add_node('Cerulean Cave', node_type='location')
|
||
|
|
G.add_node('Vermillion City', node_type='location')
|
||
|
|
G.add_node('Fuchsia City', node_type='location')
|
||
|
|
G.add_node('Cinnabar Island', node_type='location')
|
||
|
|
G.add_node('Seafoam Islands', node_type='location')
|
||
|
|
G.add_node('Victory Road', node_type='location')
|
||
|
|
G.add_node('Indigo Plateau', node_type='location')
|
||
|
|
G.add_node('Rock Tunnel', node_type='location')
|
||
|
|
G.add_node('Underground Path', node_type='location')
|
||
|
|
|
||
|
|
G.add_edge('Pallet Town', 'Route 1', condition=None)
|
||
|
|
G.add_edge('Pallet Town', 'Route 21', condition=None)
|
||
|
|
G.add_edge('Route 1', 'Viridian City', condition=None)
|
||
|
|
G.add_edge('Viridian City', 'Route 2', condition=None)
|
||
|
|
G.add_edge('Route 2', 'Viridian Forest', condition=None)
|
||
|
|
G.add_edge('Viridian Forest', 'Pewter City', condition=None)
|
||
|
|
G.add_edge('Pewter City', 'Route 3', condition=None)
|
||
|
|
G.add_edge('Route 3', 'Mt. Moon', condition=None)
|
||
|
|
G.add_edge('Mt. Moon', 'Route 4', condition=None)
|
||
|
|
G.add_edge('Route 4', 'Cerulean City', condition=None)
|
||
|
|
G.add_edge('Cerulean City', 'Route 24', condition=None)
|
||
|
|
G.add_edge('Cerulean City', 'Route 9', condition=None)
|
||
|
|
G.add_edge('Cerulean City', 'Route 5', condition=None)
|
||
|
|
G.add_edge('Route 5', 'Saffron City', condition=None)
|
||
|
|
G.add_edge('Saffron City', 'Route 6', condition=None)
|
||
|
|
G.add_edge('Saffron City', 'Route 7', condition=None)
|
||
|
|
G.add_edge('Saffron City', 'Route 8', condition=None)
|
||
|
|
G.add_edge('Route 6', 'Vermillion City', condition=None)
|
||
|
|
G.add_edge('Vermillion City', 'Route 11', condition=None)
|
||
|
|
G.add_edge('Route 11', 'Route 12', condition=None)
|
||
|
|
G.add_edge('Route 12', 'Route 13', condition=None)
|
||
|
|
G.add_edge('Route 12', 'Lavender Town', condition=None)
|
||
|
|
G.add_edge('Route 7', 'Lavender Town', condition=None)
|
||
|
|
G.add_edge('Route 9', 'Route 10', condition=None)
|
||
|
|
G.add_edge('Route 10', 'Rock Tunnel', condition=None)
|
||
|
|
G.add_edge('Lavender Town', 'Rock Tunnel', condition=None)
|
||
|
|
G.add_edge('Celadon City', 'Route 8', condition=None)
|
||
|
|
G.add_edge('Celadon City', 'Route 16', condition=None)
|
||
|
|
G.add_edge('Route 16', 'Route 17', condition=None)
|
||
|
|
G.add_edge('Route 17', 'Route 18', condition=None)
|
||
|
|
G.add_edge('Route 18', 'Fuchsia City', condition=None)
|
||
|
|
G.add_edge('Fuchsia City','Route 19', condition=None)
|
||
|
|
G.add_edge('Fuchsia City','Route 15', condition=None)
|
||
|
|
G.add_edge('Fuchsia City','Safari Zone', condition=None)
|
||
|
|
G.add_edge('Route 19', 'Seafoam Islands', condition=None)
|
||
|
|
G.add_edge('Seafoam Islands', 'Route 20', condition=None)
|
||
|
|
G.add_edge('Route 20', 'Cinnabar Island', condition=None)
|
||
|
|
G.add_edge('Route 21', 'Cinnabar Island', condition=None)
|
||
|
|
G.add_edge('Route 22', 'Viridian City', condition=None)
|
||
|
|
G.add_edge('Route 22', 'Route 23', condition=None)
|
||
|
|
G.add_edge('Route 23', 'Victory Road', condition=None)
|
||
|
|
G.add_edge('Victory Road', 'Indigo Plateau', condition=None)
|
||
|
|
G.add_edge('Route 12', 'Route 13', condition=None)
|
||
|
|
G.add_edge('Route 13', 'Route 14', condition=None)
|
||
|
|
G.add_edge('Route 14', 'Route 15', condition=None)
|
||
|
|
G.add_edge('Route 24', 'Cerulean Cave', condition=None)
|
||
|
|
G.add_edge('Route 10', 'Power Plant', condition=None)
|
||
|
|
G.add_edge('Route 5', 'Underground Path', condition=None)
|
||
|
|
G.add_edge('Underground Path', 'Route 6', condition=None)
|
||
|
|
|
||
|
|
net = Network(notebook=True)
|
||
|
|
for node, attrs in G.nodes(data=True):
|
||
|
|
net.add_node(
|
||
|
|
node,
|
||
|
|
label=node,
|
||
|
|
title=f"Type: {attrs}",
|
||
|
|
color='lightblue' if attrs == 'location' else 'lightgreen'
|
||
|
|
)
|
||
|
|
|
||
|
|
for source, target, attrs in G.edges(data=True):
|
||
|
|
condition = attrs['condition']
|
||
|
|
edge_label = f"Condition: {condition}" if condition else "No condition"
|
||
|
|
net.add_edge(
|
||
|
|
source,
|
||
|
|
target,
|
||
|
|
title=edge_label,
|
||
|
|
label=edge_label,
|
||
|
|
color='red' if condition else 'gray'
|
||
|
|
)
|
||
|
|
|
||
|
|
net.show('pokemon_map.html')
|
||
|
|
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
try:
|
||
|
|
main()
|
||
|
|
finally:
|
||
|
|
pass
|