Git Product home page Git Product logo

quakeparser's Introduction

QuakeParser

Um Parser para o jogo Quake 3, que lê o arquivo de log (.txt), agrupa os dados de cada partida e organiza as informações em um .json

Funcionamento do Main

O programa separa o arquivo .txt linha por linha e as transforma em listas. O arquivo então analisa as linhas e busca alterações na partida e de acordo com as alterações, cria e modifica um dicionario que contem as informações da partida.

O programa então agrupa os dicionarios das partidas em uma grande lista de partidas e finaliza o inserindo em um .json

Listas e Variaveis do programa:

  • players (list): Armazena os jogadores da partida. A lista é reiniciada a cada jogo
  • game_count (int): Contabiliza o numero de partidas
  • total_kills (int): Contabiliza o numero de mortes da partida. É reiniciado a cada jogo
  • game_list (list): Contém todas as partidas jogadas. É inserida no .json no final do programa

Analisando as linhas, o programa executa tarefas especificas de acordo com o que o log diz:

  • ClientConnect: Adiciona um dicionario do jogador junto com seu id
  • ClientDisconnect: Remove o dicionario do jogador mencionado
  • ClientUserinfoChanged: Altera o nome do jogador caso haja necessidade
  • Kill: Adiciona uma kill global para a partida e altera os valores de kill dos jogadores de acordo com as informações da linha
  • ShutdownGame: Finaliza um jogo, armazenando as informações da partida em um dicionario e o adiciona na lista de partidas. Logo em seguida reinicia as variaveis, pronto para um novo jogo.

Funções criadas

addPlayer(id)

Cria um dicionario para o jogador e o adiciona na lista de jogadores
A função adiciona o id como um item no dicionario

  • id (int): id do jogador

findPlayer(id)

Retorna a posição de um jogador na lista de jogadores após busca-lo de acordo com o id.
Caso a função não encontre o jogador ela retorna -1

  • id (int): id do jogador

changeName(pos, new_name)

Altera o nome de um jogador e atualiza a lista de nomes antigos.
A função verifica se o novo nome esta na lista dos nomes antigos e o remove caso esteja. Caso contrario, a função adiciona o nome na lista de nomes antigos.
Logo em seguida, ela altera o nome atual pelo novo.

  • pos (int): posição do jogador na lista de jogadores
  • new_name (string): novo nome do jogador

killCount(killer_id, killed_id)

Adiciona uma kill para o jogador que eliminou
Remove uma kill do jogador que morreu, caso o mesmo tenha morrido para o "mundo"

  • killer_id (int): id do jogador que matou
  • killed_id (int): id do jogador que morreu

finish(game_count, total_kills, game_list)

Insere os valores e informações da partida em uma camada de dicionarios e adiciona o dicionario da partida na lista de partidas.

  • game_count (int): Valor do jogo atual
  • total_kills (int): Valor total de mortes que ocorreram no jogo
  • game_list (list): Contém todas as partidas jogadas.

quakeparser's People

Contributors

mauriciodolacio avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.