Giter VIP home page Giter VIP logo

log-parser's Introduction

Log-Parser

Este algoritmo consiste em simular o funcionamento de um parser, onde iremos ler os logs gerados pelo jogo "Quake".

O arquivo "Quake.txt" é gerado pelo servidor de Quake 3 Arena. Nele está registrado informações sobre as partidas, informações como: Quando começa, quando termina, quem matou quem, quem "se matou" (caiu no vazio, explodiu a si próprio), entre outros. O Parser deve ser capaz de ler o arquivo, agrupar os dados de cada partida, e organizar as suas informações.

Exemplo:

21:42 Kill: 1022 2 22: <world> killed Isgalamido by MOD_TRIGGER_HURT
* O player "Isgalamido" morreu por que estava ferido e caiu de uma altura que o matou.
 2:22 Kill: 3 2 10: Isgalamido killed Dono da Bola by MOD_RAILGUN
* O player "Isgalamido" matou o player "Dono da Bola" usando a arma "Railgun".

Para cada jogo o Parser deve gerar algo como:

[{
  "game": 1,
  "status": {
     "total_kills": 43,
     "players": [
		{
			"id": 1,
			"nome": "Mocinha",
			"kills": 5,
			"old_names": ["Dono da bola"]
		},
		{
			"id": 2,
			"nome": "Isgalamido",
			"kills": 18,
			"old_names": []
		},
		{
			"id": 3,
			"nome": "Zeh",
			"kills": 20,
			"old_names": []
		}
	]
  }
}]

Observações: Quando o <world> mata o player ele perde -1 kill. <world> não é um player e não deve aparecer na lista de players e nem no dicionário de kills. total_kills são os kills dos games, isso inclui as kills realizadas pelo <world>

Como executar

Para executar o código, será necessário utilizar o terminal, sendo passados 3 parâmetros, código fonte, local onde se encontra o log do game, e o local o qual irá salvá-lo. Exemplo:

gcc parser.c -o parser -Wall
./parser input-files/Quake.txt output-files/saida.json

log-parser's People

Contributors

felipesoares-tech avatar

Stargazers

Christopher Lee avatar Diego C. Silva 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.