Vi er på studiet gået igang med at udvikle vores første computerspil i Java. Vi har valgt, at man skal styre en Pyroman, der skal løbe rundt i nogle byer og sætte ild til bygninger. Hvorvidt vores pyroman har held til at sætte ild til en bygning skal bestemmes af en række sammenspillende faktorer. Faktorerne er som følger:
Firepower: hvor meget kraft der er i det våben han bruger. Jo mere Fp jo større sandsynlighed for, at der går ild i bygningen
Pyro-Level: Level'en på pyromanen. Dvs jo højere level, jo højere "chance" for at der bliver sat ild til det.
Distance: Distance beskriver hvor langt brandmanden er væk fra ilden. Jo tættere han er på, jo større chance er der for, at han får slukket branden.
Hårdhedsgrad: Hårdheden af materialet af den bygning man sætter ild til. Jo hårdere, jo sværere at sætte ild til.
Slutteligt skal der være en math-random funktion der gør, at man aldrig 100% kan regne ud hvad udfaldet af branden bliver.
Værdierne kan være fra 1-100 i dem alle 4.(og hvis det passer dårligt, kan vi sagtens lave disse tal om).
Er det muligt for nogen af jer, at finde på en ligning, der kan simulere denne ildpåsættelse? Eller i hvert fald bare hjælpe mig lidt på vej. Jeg har prøvet med lidt forskellige ligninger, men kan ikke finde en der giver gennemgående mening.
Til jer der skulle være interesserede er vi indtil videre end op med at bruge understående model. Den er meget simpel, "but it gets the job done" ;P
Sig endelig til, hvis I kan se nogle fejl ved den måde vi udregner det på.
public class Fire {
double PyroLevel = 1; // 1-100 double Distance = 80; // 3 distances: 20 / 50 / 80 double Firepower = 10;// 3 tal: Tændstik: 10 FlameThrower: 60 Bombe: 100 double Ildkraft = PyroLevel + Distance + Firepower; double Hardness = 30;// 30 er minimum og 279 er max for hardness. Hardness tilpasser vi // således at resten af ligningen giver et tal vi kan arbejde med. int Gold = 20; // Lav reference, således at Gold kommer fra Building-klassen
public Fire() { }
public void makeFire() {
double SuccesKriterie = Ildkraft / (Hardness); // gang med math random eks.[0.7 - 1.3] System.out.println(SuccesKriterie);
if (Ildkraft > Hardness) { GiveXp(); // Vi kører giveXp metoden. // Vi giver ham en level, for afbrændt bygning System.out.println("Du har sat ild til bygningen, og du har stjålet " + Gold + " Guld."); System.out.println("Du er nu Lvl " + (int)getPyroLevel() + " Pyroman");
} else if (Ildkraft <= Hardness) { System.out.println("Det lykkedes ikke"); // Skal man evt miste guld/xp? Evt en takeXp funktion!