Skip to content

Instantly share code, notes, and snippets.

@nerun
Last active January 24, 2024 19:51
Show Gist options
  • Save nerun/1a73d1f2e1735164612bdeb1885c07d4 to your computer and use it in GitHub Desktop.
Save nerun/1a73d1f2e1735164612bdeb1885c07d4 to your computer and use it in GitHub Desktop.
Geradores Diversos de RPG baseados em artigos de Diogo Nogueira para o blog "Pontos de Experiência" <http://www.pontosdeexperiencia.com.br>.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os, sys, random
# VARIÁVEIS
# Gerador de Aventuras de Espada e Feitiçaria
# ===========================================
objetivo = { 'Atacar / Matar / Destruir' : [ 'Uma pessoa importante',
'Uma organização',
'Uma comunidade',
'Um artefato',
'Uma criatura',
'Um local' ],
'Encontrar / Recuperar' : [ 'Uma pessoa desaparecida',
'Uma pessoa sequestrada',
'Um objeto perdido',
'Um objeto roubado',
'Uma criatura rara',
'Uma planta rara' ],
'Roubar / Sequestrar' : [ 'Uma obra de arte ou joia',
'Um item mágico',
'Um grimório',
'Uma pessoa importante',
'Uma criatura poderosa',
'Um mapa ou pergaminho com informações importantes' ],
'Proteger' : [ 'Uma comunidade',
'Um local',
'Uma pessoa',
'Um objeto importante',
'Uma caravana',
'Uma organização' ],
'Explorar / Descobrir' : [ 'Uma nova rota ou caminho',
'Uma ilha exótica',
'Uma ruína',
'As catacumbas de uma cidade',
'Um novo feitiço sinistro',
'O paradeiro de algum objeto poderoso' ],
'Sobreviver / Escapar' : [ 'A um naufrágio',
'De uma prisão',
'Da caçada por uma guilda de assassinos',
'Da fúria de um feiticeiro',
'A um desastre natural',
'A acusação de um crime que não cometeram' ] }
local = { 'Ruínas' : [ 'De uma cidade antiga',
'Da torre de um feiticeiro',
'De um forte',
'Da tumba de um antigo rei',
'De um pequeno vilarejo isolado',
'De um templo antigo' ],
'Região Isolada' : [ 'Ilha exótica perdida',
'Ilha dos Mortos',
'Um vale proibido',
'Selva pré-histórica',
'Templo no alto de uma montanha',
'Caverna subterrânea' ],
'Cidade Grande' : [ 'No templo local',
'No castelo do Lorde',
'Na sede de uma guilda de mercadores',
'Em um museu',
'Na casa de um nobre',
'No subterrâneo da cidade' ],
'Região Fronteiriça' : [ 'No forte local',
'Em um pequeno vilarejo',
'Nas cavernas das colinas próximas',
'Na floresta escura',
'No território onde vivem os inimigos',
'Em uma estalagem na estrada' ],
'Região Selvagem' : [ 'Selvas infestadas de canibais',
'Deserto dominado por nômades saqueadores',
'Pântano sinistro, considerado amaldiçoado',
'Cavernas habitadas por monstros selvagens',
'Montanhas inexploradas',
'Floresta infestada de monstros sinistros' ],
'Lugar Estranho' : [ 'Ruínas sobre um vulcão',
'Caverna de cristal',
'Monólito que é muito maior em seu interior do que aparenta do lado de fora',
'Uma nave espacial que caiu no planeta',
'Uma pirâmide invertida no topo de uma montanha',
'A morada de um antigo feiticeiro que só aparece por alguns momentos antes de desaparecer' ] }
antagonistas = { 'Pessoa Poderosa' : [ 'Feiticeiro Poderoso',
'Sacerdote de Entidade Caótica',
'Líder bárbaro selvagem',
'Rei',
'Líder de uma guilda influente',
'Guerreiro ganancioso' ],
'Artefato' : [ 'Um golem assassino',
'Um colar com a alma de um feiticeiro antigo',
'Uma espada de um cavaleiro demoníaco',
'Uma orbe negra com consciência alienígena',
'Uma joia que gera cobiça de quem a usa',
'Uma estatueta que domina a mente das pessoas ao redor' ],
'Organização' : [ 'Uma guilda de mercadores maligna',
'Um culto a entidades caóticas',
'Piratas',
'Guilda de Assassinos',
'Sociedade Secreta',
'Grupo de aventureiros rival' ],
'Monstro Selvagem' : [ 'Ser primordial desperto',
'Besta mitológica solta de sua prisão acidentalmente',
'Experimento de feiticeiro que deu errado',
'Animais gigantes famintos',
'Humanoides bestiais e primitivos',
'Homens-bestas' ],
'Monstro Inteligente' : [ 'Morto-Vivo',
'Lich',
'Alienígena',
'Homem-Serpente',
'Raça ancestral',
'Metamorfo' ],
'Entidade Sobrenatural' : [ 'Deus antigo e louco',
'Fantasmas',
'Seres de outra dimensão',
'Espíritos antigos',
'Um homem imortal',
'Energia viva' ] }
aliados = { 'Aventureiros' : [ 'Um bardo viajante',
'Um ladrão bon vivant',
'Um bárbaro espirituoso',
'Um Sacerdote de uma divindade da ordem',
'Um feiticeiro',
'Um cavaleiro vingador' ],
'Pessoas Poderosas' : [ 'Capitão de um navio',
'Lorde local',
'Líder de uma guilda influente',
'Um xamã ancião',
'Um feiticeiro antigo',
'Um líder militar' ],
'Organizações' : [ 'Um grupo de mercenários',
'Uma ordem religiosa',
'Guilda influente',
'Sociedade secreta',
'Comunidade local',
'Grupo de aventureiros' ],
'Monstros' : [ 'Mutante deformado com boas intenções',
'Alienígena',
'Raça Ancestral',
'Criaturas Místicas (elfo, centauro)',
'Animal inteligente',
'Morto-Vivo' ],
'Entidades' : [ 'Deus esquecido',
'Seres de outras dimensões',
'Forças naturais',
'Um Imortal',
'Espírito',
'Entidade primordial' ],
'Artefato' : [ 'Espada Mágica',
'Amuleto abençoado',
'Tecnologia Alienígena',
'Formação de cristal inteligente',
'Armadura Viva',
'Estátua' ] }
complicação = { 'Recursos' : [ 'Um grande tesouro está em risco',
'Água e comida estão escassos',
'O inimigo possui recursos infindáveis',
'As armas dos aventureiros não são eficazes',
'Algo torna a magia mais caótica',
'O grupo é roubado' ],
'Vítimas' : [ 'Uma grande população de inocentes é afetada',
'Pessoa amada é afetada',
'Rival afetado, que pede ajuda',
'Nobre orgulhoso',
'Monstro',
'Local' ],
'Perigos' : [ 'Tempestade',
'Monstro a solta',
'Vulcão em erupção',
'Explosão mágica',
'Plantas carnívoras',
'Animais selvagens' ],
'Facções' : [ 'Grupo Rival de Aventureiros',
'Seita que quer que tudo continue equilibrado',
'Grupo de mercenários em busca de dinheiro',
'Grupo fatalista',
'Casa nobre que quer ganhar algo com a história',
'Inimigo do antagonista que quer seu lugar' ],
'Sobrenatural' : [ 'Uma maldição',
'Local que é jogado em outro plano',
'Fantasmas das vítimas que se manifestam',
'O local é sagrado para algum povo',
'Uma proteção mágica como barreira',
'Uma praga mágica' ],
'Revelações' : [ 'As vítimas não são o que parecem ser',
'O antagonista não é o que parece',
'Os aliados são propensos a traições',
'Um antigo inimigo está por trás de tudo',
'Um antigo inimigo se mostra como aliado',
'O que parece sobrenatural, na verdade, não é' ] }
# Gerador de Títulos de Aventuras Pulp
# ====================================
formato_titulo = [ 'O/A Localidade Qualidade',
'O/A Personalidade Qualidade',
'O/A Objeto Qualidade',
'O/A Localidade do/da Personalidade Qualidade',
'O/A Objeto do/da Personalidade Qualidade',
'O/A Localidade do/da Objeto Qualidade',
'O/A Localidade no/na Localidade Qualidade',
'O/A Objeto do/da Localidade Qualidade',
'O/A Personalidade do/da Localidade Qualidade',
'Evento no/na Localidade Qualidade',
'Evento do/da Personalidade Qualidade',
'Evento do/da Objeto Qualidade' ]
# COLUNAS: Localidade[0], Objeto[1], Personalidade[2], Qualidade[3], Evento[4]
pulp_matrix = [ [ 'Castelo', 'Espada', 'Bruxo', 'Eterno', 'Assalto' ],
[ 'Palácio', 'Cálice', 'Feiticeiro', 'Imortal', 'Destruição' ],
[ 'Templo', 'Orbe', 'Deus', 'Perdido', 'Resgate' ],
[ 'Floresta', 'Coroa', 'Lorde', 'Sombrio', 'Roubo' ],
[ 'Pântano', 'Joia', 'Rei/Rainha', 'Dourado', 'Descoberta' ],
[ 'Montanha', 'Gema', 'Imperador', 'Esmeralda', 'Salvamento' ],
[ 'Cidadela', 'Elmo', 'Gigante', 'Senciente', 'Restauração' ],
[ 'Pirâmide', 'Baú', 'Vampiro', 'Divino', 'Assassinato' ],
[ 'Tumba', 'Casulo', 'Clone', 'Mortal', 'Ressurreição' ],
[ 'Deserto', 'Forja', 'Robô', 'Subterrâneo', 'Volta' ],
[ 'Selva', 'Gerador', 'Androide', 'Selvagem', 'Jornada' ],
[ 'Torre', 'Globo', 'Besta', 'Onírico', 'Viagem' ],
[ 'Forte', 'Urna', 'Demônio', 'Batráquio', 'Expedição' ],
[ 'Refúgio', 'Relicário', 'Oráculo', 'Esquecido', 'Busca' ],
[ 'Salões', 'Martelo', 'Cavaleiro', 'Proibido', 'Retorno' ],
[ 'Planícies', 'Escudo', 'Guerreiro', 'Das Trevas', 'Nascimento' ],
[ 'Colinas', 'Cajado', 'Bárbaro', 'Do Caos', 'Batalha' ],
[ 'Abismo', 'Capa', 'Mago', 'Da Ordem', 'Eclipse' ],
[ 'Penhasco', 'Monóculos', 'Vidente', 'Psíquico', 'Despedaçar' ],
[ 'Cidade', 'Sandálias', 'Lich', 'Prateado', 'Crepúsculo' ],
[ 'Ruínas', 'Braçadeiras', 'Monstro', 'Sangrento', 'Despertar' ],
[ 'Fortaleza', 'Bóton', 'Besouro', 'Lendário', 'Ataque' ],
[ 'Ilha', 'Anel', 'Alienígena', 'Imprevisto', 'Revolução' ],
[ 'Arquipélago', 'Tiara', 'Barão', 'Profana', 'Perdição' ],
[ 'Caverna', 'Luvas', 'Príncipe/Princesa', 'Vivo', 'Catástrofe' ],
[ 'Abadia', 'Manoplas', 'Devorador', 'Imóvel', 'Passagem' ],
[ 'Ninho', 'Botas', 'Assassino', 'Escarlate', 'Conquista' ],
[ 'Covil', 'Lira', 'Xamã', 'Condenado', 'Derrota' ],
[ 'Hospício', 'Harpa', 'General', 'Flutuante', 'Vitória' ],
[ 'Bazar', 'Trombeta', 'Profeta', 'Imensa', 'Saque' ],
[ 'Albergue', 'Chifre', 'Faraó', 'Mecânico', 'Ritual' ],
[ 'Pradarias', 'Tomo', 'Sacerdote', 'Secreto', 'Invocação' ],
[ 'Ponte', 'Livro', 'Monge', 'Oculto', 'Invasão' ],
[ 'Mausoléu', 'Grimório', 'Jardineiro', 'Das Estrelas', 'Metamorfose' ],
[ 'Círculo', 'Carta', 'Cão', 'Cósmico', 'Criação' ],
[ 'Desfiladeiro', 'Coração', 'Serpente', 'Mutante', 'Morte' ],
[ 'Carnaval', 'Olhos', 'Sapo', 'Terrível', 'Extermínio' ],
[ 'Catedral', 'Estátuas', 'Gorila', 'Último', 'Premonição' ],
[ 'Porão', 'Pilares', 'Filho', 'Enfeitiçado', 'Festejos' ],
[ 'Capela', 'Fonte', 'Mensageiro', 'Rastejante', 'Duelo' ],
[ 'Altar', 'Árvore', 'Arauto', 'De Outro Mundo', 'Chegada' ],
[ 'Igreja', 'Arcos', 'Guardião', 'Artificial', 'Casamento' ],
[ 'Mosteiro', 'Sino', 'Destruidor', 'Silencioso', 'Abdução' ],
[ 'Cabana', 'Colar', 'Druida', 'Inimaginável', 'Corrupção' ],
[ 'Coliseu', 'Arca', 'Dríade', 'Inefável', 'Baile' ],
[ 'Corte', 'Crânio', 'Eremita', 'Estranho', 'Campeonato' ],
[ 'Planeta', 'Garras', 'Alquimista', 'Uivante', 'Dança' ],
[ 'Plano', 'Presas', 'Viajante', 'Prismático', 'Grito' ],
[ 'Dimensão', 'Lança', 'Andarilho', 'Titânico', 'Visão' ],
[ 'Cratera', 'Machado', 'Conquistador', 'Desconhecido', 'Cerimônia' ],
[ 'Cripta', 'Luneta', 'Cultista', 'Misterioso', 'Separação' ],
[ 'Semiplano', 'Vaso', 'Escriba', 'Dracônico', 'Defesa' ],
[ 'Domínio', 'Elixir', 'Astrólogo', 'Impiedoso', 'Revelação' ],
[ 'Cúpula', 'Fruto', 'Astronauta', 'Cruel', 'Acordo' ],
[ 'Masmorra', 'Rosa', 'Mercador', 'Sádico', 'Encantamento' ],
[ 'Morada', 'Lótus', 'Ladrão', 'Canibal', 'Vigília' ],
[ 'Santuário', 'Flor', 'Joalheiro', 'Extraplanar', 'Mergulho' ],
[ 'Fazenda', 'Cérebro', 'Ferreiro', 'Sem Cor', 'Descida' ],
[ 'Fundição', 'Amuleto', 'Vingador', 'Morto-vivo', 'Conversão' ],
[ 'Galeão', 'Símbolo', 'Ciclope', 'De Cristal', 'Relatos' ],
[ 'Galerias', 'Pergaminho', 'Enviado', 'Flamejante', 'Incêndio' ],
[ 'Navio', 'Mapa', 'Embaixador', 'Gélido', 'Heresia' ],
[ 'Jardim', 'Chave', 'Observador', 'Metálico', 'Julgamento' ],
[ 'Quartel', 'Cadeado', 'Vigia', 'Espacial', 'Intriga' ],
[ 'Salão', 'Ídolo', 'Aranha', 'Maculado', 'Traição' ],
[ 'Bosque', 'Estatueta', 'Campeão', 'Milenar', 'Fuga' ],
[ 'Gruta', 'Tentáculos', 'Capitão', 'Voador', 'Segredo' ],
[ 'Porto', 'Mar', 'Ancião', 'Das Profundezas', 'Sonhar' ],
[ 'Incubadora', 'Trono', 'Necromante', 'Abissal', 'Aprisionamento' ],
[ 'Abrigo', 'Cetro', 'Mentalista', 'Celeste', 'Guerra' ],
[ 'Colmeia', 'Manto', 'Escolhido', 'Medonho', 'Conselho' ],
[ 'Casa', 'Corselete', 'Criador', 'Enigmático', 'Amanhecer' ],
[ 'Toca', 'Brincos', 'Geneticista', 'Implacável', 'Anoitecer' ],
[ 'Choupana', 'Incensário', 'Orador', 'Desumano', 'Naufrágio' ],
[ 'Canal', 'Ovo', 'Pirata', 'Iridescente', 'Escolha' ],
[ 'Canil', 'Piscina', 'Saqueador', 'Invisível', 'Vingança' ],
[ 'Labirinto', 'Lagoa', 'Escravagistas', 'Enevoado', 'Maldição' ],
[ 'Sepultura', 'Invólucro', 'Menestrel', 'Escuro', 'Benção' ],
[ 'Farol', 'Receptáculo', 'Colossos', 'Ardente', 'Triunfo' ],
[ 'Pousada', 'Lâmpada', 'Titã', 'Sufocante', 'Construção' ],
[ 'Mansão', 'Cuba', 'Bardo', 'Bizarro', 'Tempestade' ],
[ 'Solar', 'Cubo', 'Vigarista', 'Invertido', 'Tormenta' ],
[ 'Charcos', 'Dados', 'Mestre', 'Afortunado', 'Crise' ],
[ 'Obelisco', 'Icosaedro', 'Soldado', 'Azarado', 'Libertação' ],
[ 'Observatório', 'Lentes', 'Legionário', 'Do Destino', 'Transformação' ],
[ 'Moinho', 'Bússola', 'Telepata', 'Pulsante', 'Lamentações' ],
[ 'Minas', 'Relógio', 'Colecionador', 'Moribundo', 'Desolação' ],
[ 'Monastério', 'Chá', 'Espírito', 'Partido', 'Conspiração' ],
[ 'Necropolis', 'Moedas', 'Fantasma', 'Vagaroso', 'Reinvenção' ],
[ 'Monte', 'Máscara', 'Diabolista', 'Obsidiano', 'Restauração' ],
[ 'Posto Avançado', 'Molde', 'Inquisidor', 'Dos Mil Olhos', 'Infestação' ],
[ 'Pavilhão', 'Monumento', 'Sentinela', 'Tentacular', 'Peregrinação' ],
[ 'Poços', 'Escaravelho', 'Juiz', 'Dos Mortos', 'Trapaças' ],
[ 'Prisão', 'Sarcófago', 'Ninfa', 'Maquiavélico', 'Acidente' ],
[ 'Fenda', 'Máquina', 'Amazona', 'Antigo', 'Massacre' ],
[ 'Laboratório', 'Totem', 'Concubina', 'Ancestral', 'Cataclisma' ],
[ 'Espiral', 'Espelho', 'Noiva', 'Do Futuro', 'Lembranças' ],
[ 'Biblioteca', 'Esqueleto', 'Cigano', 'Incorpóreo', 'Reunião' ],
[ 'Muro', 'Adaga', 'Bandido', 'Faminto', 'Queda' ],
[ 'Praias', 'Caldeirão', 'Homem', 'Asqueroso', 'Ascensão' ] ]
# Gerador de Nomes de Tavernas
# ============================
tipo_taverna = [ 'Taverna', 'Estalagem' ]
formato_nome_taverna = [ 'Tipo do(a)(s) Personagem Qualidade do Personagem',
'Tipo do(a)(s) Objeto e do(a)(s) Objeto',
'Tipo do(a)(s) Personagem e do(a)(s) Personagem',
'Tipo do(a)(s) Objeto Qualidade do Objeto',
'Tipo do(a)(s) Objeto do(a)(s) Personagem',
'Tipo do(a)(s) Qualidade do Objeto' ]
# COLUNAS: Objeto[0], Qualidade do Objeto[1], Personagem[2], Qualidade do Personagem[3]
tavern_matrix = [ [ 'Espada', 'Eterno', 'Andarilho', 'Eterno' ],
[ 'Cálice', 'Brilhante', 'Dragão', 'Imortal' ],
[ 'Orbe', 'Perdido', 'Rinoceronte', 'Perdido' ],
[ 'Coroa', 'Sombrio', 'Rouxinol', 'Sombrio' ],
[ 'Joia', 'Dourado', 'Demônio', 'Dourado' ],
[ 'Gema', 'Esmeralda', 'Salamandra', 'Egoísta' ],
[ 'Elmo', 'Delirante', 'Bruxo', 'Zangado' ],
[ 'Baú', 'Divino', 'Assassino', 'Divino' ],
[ 'Caneco', 'Delicioso', 'Réptil', 'Mortal' ],
[ 'Forja', 'Fedorento', 'Valkyria', 'Subterrâneo' ],
[ 'Gerador', 'Sujo', 'Jogador', 'Selvagem' ],
[ 'Globo', 'Dos Sonhos', 'Violinista', 'Onírico' ],
[ 'Urna', 'Pegajosa', 'Explorador', 'Batráquio' ],
[ 'Relicário', 'Esquecido', 'Bardo', 'Esquecido' ],
[ 'Martelo', 'Proibido', 'Rei', 'Preguiçoso' ],
[ 'Escudo', 'Das Trevas', 'Nômade', 'Das Trevas' ],
[ 'Cajado', 'Do Caos', 'Bárbaro', 'Do Caos' ],
[ 'Capa', 'Da Ordem', 'Escravo', 'Da Ordem' ],
[ 'Lanterna', 'Assado', 'Diabo', 'Sonolento' ],
[ 'Sandálias', 'Prateado', 'Cronista', 'Prateado' ],
[ 'Braçadeiras', 'Sangrento', 'Troll', 'Sangrento' ],
[ 'Broche', 'Lendário', 'Arcanista', 'Lendário' ],
[ 'Anel', 'Irreal', 'Serpente', 'Ingrato' ],
[ 'Tiara', 'Profana', 'Padre', 'Profana' ],
[ 'Luvas', 'Vivo', 'Cafageste', 'Fanfarrão' ],
[ 'Manoplas', 'Imóvel', 'Peregrino', 'Insaciável' ],
[ 'Botas', 'Escarlate', 'Conquistador', 'Escarlate' ],
[ 'Lira', 'Abençoado', 'Medusa', 'Condenado' ],
[ 'Harpa', 'Flutuante', 'Vidente', 'Flutuante' ],
[ 'Trombeta', 'Imensa', 'Saqueador', 'Imenso' ],
[ 'Chifre', 'Mecânico', 'Cultista', 'Melanólico' ],
[ 'Tomo', 'Secreto', 'Macaco', 'Secreto' ],
[ 'Livro', 'Oculto', 'Sapo', 'Oculto' ],
[ 'Grimório', 'Das Estrelas', 'Metamorfo', 'Das Estrelas' ],
[ 'Carta', 'Cósmico', 'Criador', 'Calado' ],
[ 'Coração', 'Suculento', 'Defunto', 'Mentiroso' ],
[ 'Olhos', 'Terrível', 'Coelho', 'Terrível' ],
[ 'Estátuas', 'Último', 'Pássaro', 'Ungido' ],
[ 'Pilares', 'Enfeitiçado', 'Fênix', 'Enfeitiçado' ],
[ 'Fonte', 'Temperado', 'Duelista', 'Rastejante' ],
[ 'Árvore', 'De Outro Mundo', 'Bruxa', 'Paciente' ],
[ 'Arcos', 'Apimentado', 'Marido', 'Audacioso' ],
[ 'Sino', 'Silencioso', 'Arara', 'Silencioso' ],
[ 'Colar', 'Inimaginável', 'Cachorro', 'Inimaginável' ],
[ 'Arca', 'Inefável', 'Bufão', 'Inefável' ],
[ 'Crânio', 'Estranho', 'Campeão', 'Estranho' ],
[ 'Garras', 'Doce', 'Rato', 'Antipático' ],
[ 'Presas', 'Prismático', 'Gato', 'Patético' ],
[ 'Lança', 'Titânico', 'Vizir', 'Titânico' ],
[ 'Machado', 'Desconhecido', 'Jacaré', 'Desconhecido' ],
[ 'Luneta', 'Misterioso', 'Sábio', 'Misterioso' ],
[ 'Vaso', 'Dracônico', 'Defensor', 'Dracônico' ],
[ 'Elixir', 'Salgado', 'Rei-Bruxo', 'Impiedoso' ],
[ 'Fruto', 'Quebrado', 'Basilisco', 'Cruel' ],
[ 'Rosa', 'Frito', 'Elefante', 'Sádico' ],
[ 'Lótus', 'Apetitoso', 'Vigia', 'Canibal' ],
[ 'Flor', 'Enebriante', 'Mercador', 'Extraplanar' ],
[ 'Tocha', 'Incolor', 'Tartaruga', 'Sem Cor' ],
[ 'Amuleto', 'Dançante', 'Cogumelo', 'Morto-vivo' ],
[ 'Runas', 'De Cristal', 'Rã', 'De Cristal' ],
[ 'Pergaminho', 'Flamejante', 'Pombo', 'Feliz' ],
[ 'Mapa', 'Gélido', 'Herege', 'Guloso' ],
[ 'Chave', 'Metálico', 'Juiz', 'Metálico' ],
[ 'Cadeado', 'Enferrujado', 'Gambá', 'Eloquente' ],
[ 'Ídolo', 'Maculado', 'Tigre', 'Maculado' ],
[ 'Estatueta', 'Milenar', 'Furão', 'Malandro' ],
[ 'Garrafa', 'Voador', 'Sacerdote', 'Vigarista' ],
[ 'Taça', 'Das Profundezas', 'Sonhador', 'Dócil' ],
[ 'Trono', 'Abissal', 'Prisioneiro', 'Altruista' ],
[ 'Cetro', 'Celeste', 'Guerreiro', 'Celeste' ],
[ 'Manto', 'Medonho', 'Conselheiro', 'Medonho' ],
[ 'Corselete', 'Enigmático', 'Mago', 'Enigmático' ],
[ 'Brincos', 'Implacável', 'Ladrão', 'Implacável' ],
[ 'Incensário', 'Familiar', 'Naufrago', 'Desumano' ],
[ 'Ovo', 'Iridescente', 'Pirata', 'Iridescente' ],
[ 'Pernil', 'Invisível', 'Vingador', 'Invisível' ],
[ 'Pão', 'Enevoado', 'Feiticeiro', 'Belicoso' ],
[ 'Cerveja', 'Escuro', 'Vampiro', 'Burro' ],
[ 'Vinho', 'Ardente', 'Trabalhador', 'Atento' ],
[ 'Lâmpada', 'Sufocante', 'Druida', 'Sufocante' ],
[ 'Vela', 'Bizarro', 'Templário', 'Bizarro' ],
[ 'Lareira', 'Invertido', 'Cavaleiro', 'Invertido' ],
[ 'Salsicha', 'Afortunado', 'Pato', 'Afortunado' ],
[ 'Dados', 'Azarado', 'Porco', 'Azarado' ],
[ 'Queijo', 'Do Destino', 'Lobisomem', 'Do Destino' ],
[ 'Bússola', 'Pulsante', 'Princesa', 'Pedante' ],
[ 'Xícara', 'Restaurado', 'Bispo', 'Moribundo' ],
[ 'Chá', 'Partido', 'Hierofante', 'Libertinoso' ],
[ 'Moedas', 'Pesado', 'Aldeão', 'Vagaroso' ],
[ 'Máscara', 'Obsidiano', 'Mosca', 'Orgulhoso' ],
[ 'Bolo', 'Mofado', 'Barata', 'Dorminhoco' ],
[ 'Prato', 'Reluzente', 'Pernilongo', 'Tímido' ],
[ 'Escaravelho', 'Crepitante', 'Grilo', 'Zarolho' ],
[ 'Garfo', 'Torto', 'Gafanhoto', 'Maquiavélico' ],
[ 'Forno', 'Antigo', 'Mula', 'Ancião' ],
[ 'Panela', 'Ancestral', 'Centopeia', 'Ancestral' ],
[ 'Espelho', 'Encravado', 'Lince', 'Simpático' ],
[ 'Faca', 'Incorpóreo', 'Leão', 'Incorpóreo' ],
[ 'Adaga', 'Borbulhante', 'Gorila', 'Faminto' ],
[ 'Caldeirão', 'Asqueroso', 'Cobra', 'Asqueroso' ] ]
line = 80 * '='
def clear(linhas=100):
if os.name == 'posix':
os.system('clear')
elif os.name in ('nt', 'dos', 'ce'):
os.system('cls')
else:
print ('\n' * linhas)
def ger_aventuras():
print ("""%s
GERADOR DE AVENTURAS DE ESPADA E FEITIÇARIA
baseado em artigo de
Diogo Nogueira (28 fev. 2013). \"Pontos de Experiência\"
<http://www.pontosdeexperiencia.com.br/2013/02/gerador-de-aventuras-de-espada-e.html>.
%s""" %(line, line) )
def select(dic):
key, valueList = random.choice(list(dic.items()))
x = random.randint(0,5)
return key + ": " + valueList[x]
print ("""
OBJETIVO GERAL:
- %s
LOCAL:
- %s
ANTAGONISTAS:
- %s
COADJUVANTES:
- %s
COMPLICAÇÃO:
- %s""" % (select(objetivo), select(local), select(antagonistas),
select(aliados), select(complicação)))
again("\n Quer gerar outra aventura? (s/n) ", 1)
def ger_titulos_pulp():
print ("""%s
GERADOR DE TÍTULOS DE AVENTURAS DE FANTASIA PULP
baseado em artigo de
Diogo Nogueira (7 jan. 2016). \"Pontos de Experiência\"
<http://www.pontosdeexperiencia.com.br/2016/01/gerador-de-nomes-de-aventuras-de.html>.
%s""" %(line, line) )
def titulo():
tit = random.choice(formato_titulo)
tit = tit.replace('Localidade', random.choice(pulp_matrix)[0], 1)
tit = tit.replace('Localidade', random.choice(pulp_matrix)[0], 1)
tit = tit.replace('Objeto', random.choice(pulp_matrix)[1])
tit = tit.replace('Personalidade', random.choice(pulp_matrix)[2])
tit = tit.replace('Qualidade', random.choice(pulp_matrix)[3])
tit = tit.replace('Evento', random.choice(pulp_matrix)[4])
return tit
print("""
%s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s""" % (titulo(), titulo(),
titulo(), titulo(), titulo(), titulo(), titulo(), titulo(), titulo(),
titulo()) )
again("\n Quer gerar outra lista de títulos de aventuras? (s/n) ", 2)
def ger_nomes_tavernas():
print ("""%s
GERADOR DE NOMES DE TAVERNAS
baseado em artigo de
Diogo Nogueira (24 jan. 2016). \"Pontos de Experiência\"
<http://www.pontosdeexperiencia.com.br/2016/01/gerador-de-nomes-de-tavernas.html>.
%s""" %(line, line) )
def taverna():
tit = random.choice(formato_nome_taverna)
tit = tit.replace('Tipo', random.choice(tipo_taverna))
tit = tit.replace('Qualidade do Objeto', random.choice(tavern_matrix)[1])
tit = tit.replace('Qualidade do Personagem', random.choice(tavern_matrix)[3])
tit = tit.replace('Personagem', random.choice(tavern_matrix)[2], 1)
tit = tit.replace('Personagem', random.choice(tavern_matrix)[2], 1)
tit = tit.replace('Objeto', random.choice(tavern_matrix)[0], 1)
tit = tit.replace('Objeto', random.choice(tavern_matrix)[0], 1)
return tit
print("""
%s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s\n %s""" % (taverna(), taverna(),
taverna(), taverna(), taverna(), taverna(), taverna(), taverna(), taverna(),
taverna()) )
again("\n Quer gerar outra lista de nomes? (s/n) ", 3)
def again(ask, ger):
again = input(ask).lower()
if again[0] == "s":
clear()
match ger:
case 1: ger_aventuras()
case 2: ger_titulos_pulp()
case 3: ger_nomes_tavernas()
else:
start()
def menu_choice(x, y, ask=' Sua escolha'):
if x >= y:
raise ValueError('primeiro argumento deve ser menor que o segundo.')
else:
while True:
try:
choice = int(input("%s: " % ask))
except ValueError:
continue
if x <= choice <= y:
return choice
def start():
print("""%s
Geradores do blog \"Pontos de Experiência\"
http://www.pontosdeexperiencia.com.br
programa python por
Daniel Dias Rodrigues (\"Nerun\") <[email protected]>
https://gist.github.com/nerun/1a73d1f2e1735164612bdeb1885c07d4
%s
Gerador de...
[1] Aventuras de Espada e Feitiçaria
[2] Títulos de Aventuras de Fantasia Pulp
[3] Nomes de Tavernas
[0] SAIR
""" %(line, line) )
menu = menu_choice(0, 3)
match menu:
case 1: ger_aventuras()
case 2: ger_titulos_pulp()
case 3: ger_nomes_tavernas()
case _: sys.exit()
start()
@nerun
Copy link
Author

nerun commented Jan 19, 2024

Instalando Python 3 no Windows

Siga este guia: https://python.org.br/instalacao-windows/

Linux

$ ./gerador-aventuras.py

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment