Bruno Posted April 24, 2006 at 07:14 PM Report #24048 Posted April 24, 2006 at 07:14 PM Introdução Boa Tarde, como alguns saberão estamos, eu e mais 3 amigos meus, a desenvolver um jogo em PHP. Gostaria de lançar uma beta no inicio da próxima semana mas com os trabalhos da universidade, com teste no Sábado e com algum atraso que tenho tido fica-me quase impossivel conciliar tudo! Já perdi uma tarde a pensar neste problema e acho que se "perdesse" outra conseguiria resolvê-lo! Mas como há ainda muita coisa para fazer e como sei que deverá haver aqui programadores bem melhores que eu (e uma vez que isto é importante que fique eficiente) gostava que me dessem uma ajuda! (eu assim aproveito e vou fazendo outras coisas). Linguagem, detalhe do código... Não vos venho pedir o código mas sim uma ideia que poderá ser representada em Pseudo-Código! De qualquer modo sei C, Java, PHP, ... portanto caso se sintam mais à vontade em apresentar uma solução numa destas linguagens eu não terei qq problema em comprendê-las 🙂 Descrição Geral Neste jogo existem 7 economias: Metal, Diamante, Hidrogénio, Zion, Plutonite, Nanites e Energia De modo a simplificar vamos supor que o seguinte "10 0 1 0 0 0 -10" significa que por hora serão produzidos 10 de metal, 1 de hidrogénio e consumidos 10 de energia! Para a economia cresçer é necessário construir os seguintes edificios: Mina de Metal, Mina de Diamantes, Extractor de Hidrogénio, Fábrica de Computadores, Extractor de Plutonite, Fábrica de Nanites, Paineis Solares e Central Nuclear. Cada edificio terá um nivel de evolução associado produzindo/consumindo mais consuante a evolução. Produção/Consumo dos Edificios no nivel 1: Mina de Metal -> 20 0 0 0 0 0 -11 Mina de Cristal -> 0 10 0 0 0 0 -9 Extractor de Hidrogénio -> 0 0 5 0 0 0 -10 Fábrica de Computadores -> 0 0 0 16 0 0 -100 Extractor de Plutonite -> 0 0 0 0 18 0 -1000 Fábrica de Nanites -> 0 0 0 -50 -20 8 -4000 Paineis Solares -> 0 0 0 0 0 0 20 Central Nuclear -> 0 0 -40 0 0 0 1000 Problema: Quando a energia total existente não chega para todos os que consomem é preciso reduzir uma percentagem em cada um. Caso simples (apenas 2 edificios): Mina de Metal está a produzir 100 e a consumir 40 de energia. Paineis Solares está a produzir 30. Logo EnergiaProduzida/EnergiaNecessária -> 30/40 -> 0,75 (se <1 quer dizer que a energia não chega) Assim sendo se a produção da Mina desçer para 75% a energia chega (passará a produzir -> 100*0,75= 75 e a consumir -> 40*.75=30) Caso ainda simples (apenas 2 edificios): Extractor de Hidrogénio está a produzir 3 e a consumir 50 de energia A central nuclear está a produzir a 1000 de energia e a consumir 50 de hidrogénio Uma vez que a central nuclear produz energia consumindo hidrogénio e o hidrogénio não chega para tal precisamos de: 1000 ------> 50 ???? -------> 3 1000*3/50 = 600 de energia! Temos então EnergiaProduzida/EnergiaNecessária -> 600/50 -> 12 Ok 12>1 logo temos energia que chegue! 😕 Caso mais complicado (apenas com 2 edificios): Extractor de Hidrogénio está a produzir 3 e a consumir 50 de energia A central nuclear está a produzir a 100 de energia e a consumir 50 de hidrogénio Como foi feito anteirormente: 100 ------> 50 ??? -------> 3 3*100/50 = 6 de energia. Temos então EnergiaProduzida/EnergiaNecessária -> 6/50 -> 0,12 (<1 logo não chega) Isto fica em ciclo pois se baixar a energia do hidrogénio a produção do mesmo baixa. Se a produção do mesmo baixa então a central também já não terá os 3! Caso +- complicado (com 3 edificios): Mina de Metal está a produzir 10 e a consumir 100 de energia Extractor de Hidrogénio está a produzir 3 e a consumir 50 de energia A central nuclear está a produzir a 100 de energia e a consumir 5 de hidrogénio Temos que começar pelo caso da central nuclear: 100 ------> 5 ??? -------> 3 ??? = 60 de Energia. Temos então EnergiaProduzida/EnergiaNecessária -> 60/(50+100) -> 0,4 (<1 logo não chega) Uma vez que não temos energia e que se desçermos o hidrogénio só temos a perder, então vamos apenas desçer o que não afecta a energia (a mina de metal). Assim sendo as contas mudam um pouco: Energia necessária para o hidrogénio -> 50, logo 60-50=10. Temos 10 que dão para o metal, assim sendo: 10 ------> 100 ?? ------> 10 ?? = 1 O metal produzirá 1 por hora. Penúltimo caso: Mina de Metal está a produzir 10 e a consumir 125 de energia Extractor de Hidrogénio está a produzir 10 e a consumir 100 de energia A central nuclear está a produzir a 100 de energia e a consumir 5 de hidrogénio Uma vez que temos hidrogénio que chegue então podemos produzir a energia a 100%. Temos então EnergiaProduzida/EnergiaNecessária -> 100/(100+125) = 0,44 (<1 logo não chega) Vamos então ter que desçer a produção de hidrogénio e de metal MAS só devemos desçer o hidrogénio até ficar no minimo necessário para a central nuclear. Assim sendo fazemos as contas para o hidrogénio: 10 ----> 100 05 ----> ??? ??? = 50 Assim sendo sabemos que o hidrogénio desçe 50% e então quanto desçerá o metal? A cental nuclear produz 100 e precisamos de 50 para o hidrogénio então sobram os outros 50... Se o metal consome 125 então: 10 ---> 125 ?? ----> 50 ?? = 4 Problema mais complexo ainda (com 7 edificios): Mina de Metal está a produzir 10 e a consumir 500 de energia Extractor de Hidrogénio está a produzir 40 e a consumir 300 de energia A fábrica de Computadores (zion) está a produzir 180 e a consumir 300 de energia Extractor de Plutonite está a produzir 40 e a consumir 300 de energia A fábrica de Nanites está a produzir 10 mas consome 200 de zion, 50 de plutonite e 1000 de energia Paineis Solares está a produzir 500 de energia A central nuclear está a produzir a 1000 de energia e a consumir 50 de hidrogénio Este não o irei resolver mas deixo aqui alguns dos passos (n estão por ordem): A central nuclear terá que desçer a produção pois só temos 40 de hidrogénio por hora! Verificar a fábrica de Nanites uma vez que ela precisa de 200 de zion e 50 de plutonite e não os tem (logo irá produzir e consumir menos) Será necessario verificar quanto é necessário desçer as produções/consumos tendo em conta a energia que é produzida (recordar que o hidrogénio n deverá desçer uma vez que é consumido na totalidade). Há que ter em conta o ciclo que isto provoca na Fábrica de Nanites, pois a cada desçida dos seus requesitos esta também desçerá. Em suma o meu objectivo no fim é ter um vector em que cada casa tem as percentagens que devo multiplicar pela produção/consumo de cada edificios (são 8 edificios, logo terá 8 casas). Ligeiro resumo Há que ter em conta as dependencias da central nuclear que consome hidrogenio (este n deve desçer a mesma % que os outros a não ser que o decresçimo não influencie a central). Há que ter em conta que a fábrica de nanites consome zion, plutonite e energia e é necessario que ela desça a sua produção/consumo consuante a disponibilidade de recursos! Ora, com isto e com os exemplos acho que especifiquei o problema e aguardo questões/duvidas ou alguem que tente elaborar o algoritmo! 😄 Um obrigado a quem tentar 😉 (espero que não me tenha enganado em nada)
Bruno Posted April 24, 2006 at 07:35 PM Author Report #24067 Posted April 24, 2006 at 07:35 PM Ah, esqueçi-me de dizer que tenho alguma pressa! O ideial era implementá-lo na 6ªf, mas no maximo Sabado até à hora de almoço!Pois caso não haja nenhuma solução apresentada até lá, irei dedicar-me a isto no Sabado (e Domingo caso seja preciso) Obrigado! 🙂
Gurzi Posted April 27, 2006 at 08:46 AM Report #24583 Posted April 27, 2006 at 08:46 AM Bem , tentei ler tudo , é parecido com o nivél de produção do Ogame, é capaz de fazer perder umas boas horas a pensar. Se Encontrares solução, posta que gostava de ler 😛
Bruno Posted April 29, 2006 at 03:49 PM Author Report #24822 Posted April 29, 2006 at 03:49 PM Tenho pena que quase ninguem se interessou 😛 Obrigado aos que tentaram! Gurzi depois digo-te como fiz pelo MSN 😛
NuGuN Posted May 31, 2006 at 09:42 PM Report #30468 Posted May 31, 2006 at 09:42 PM bem... tens ai umas belas dores de cabeça, gostava de te ajudar mas issu vai um bocado grande alem dos meus conhecimentos (não sou grande coisa nessas coisas de contas :S) Restame entao desejar boa sorte 😞
Triton Posted March 26, 2007 at 03:35 AM Report #90102 Posted March 26, 2007 at 03:35 AM Hoje enquanto passeava pelo Cyberium, tive curiosidade em perceber como funcionava o sistema de produções e lembrei-me deste tópico. Eu sei que estou a desenterrar este tópico... Bruno, se puderes deixa aqui como fizeste. 😉 <3 life
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now