我在下面的游戏中测试了2玩家模式,发现了一个问题,我调用的回合功能没有响应。我是JavaScript的初学者,非常感谢任何帮助。谢谢!
var dayOfWeek = Math.floor(Math.random() * 7) + 1,
dateLookup = {
1: "Monday",
2: "Tuesday",
3: "Wednesday",
4: "Thursday",
5: "Friday",
6: "Saturday",
7: "Sunday"
},
da = dateLookup[dayOfWeek],
ga = null;
var play = prompt("Please select either 1 or 2 players! Have at least 5000 credits at the end to win!");
if (play === "1") {
var wel = confirm("On a stormy " + da + " night, lightning lurks the skies. Will you risk your business for a chance to make millions?");
} else if (play === "2") {
confirm("On a stormy " + da + " night, lightning lurks the skies. Two electricity distributors compete head to head for dominance over the electric market. Who will reign supreme?");
var check = alert("Welcome to 2 player mode!");
var n1 = prompt("Input Player 1's username.");
var n2 = prompt("Input Player 2's username.");
moneya = 15000;
moneyb = 1500;
} else {
ga = 1;
}
var ezR1 = Math.floor((Math.random() * 2560) + 500);
var ezR2 = Math.floor((Math.random() * 6650) + 500);
var ezR3 = Math.floor((Math.random() * 6670) + 600);
var ezR4 = Math.floor((Math.random() * 7780) + 600);
var ezR5 = Math.floor((Math.random() * 8120) + 700);
var ezR6 = Math.floor((Math.random() * 9540) + 700);
var ezR7 = Math.floor((Math.random() * 1230) + 800);
var ezR8 = Math.floor((Math.random() * 1134) + 800);
var ezR9 = Math.floor((Math.random() * 1223) + 900);
var ezR10 = Math.floor((Math.random() * 1510) + 1000);
var ezR1a = Math.floor((Math.random() * 2560) + 500);
var ezR2a = Math.floor((Math.random() * 6650) + 500);
var ezR3a = Math.floor((Math.random() * 6670) + 600);
var ezR4a = Math.floor((Math.random() * 7780) + 600);
var ezR5a = Math.floor((Math.random() * 8120) + 700);
var ezR6a = Math.floor((Math.random() * 9540) + 700);
var ezR7a = Math.floor((Math.random() * 1230) + 800);
var ezR8a = Math.floor((Math.random() * 1134) + 800);
var ezR9a = Math.floor((Math.random() * 1223) + 900);
var ezR10a = Math.floor((Math.random() * 1510) + 1000);
var ezR1b = Math.floor((Math.random() * 2560) + 500);
var ezR2b = Math.floor((Math.random() * 6650) + 500);
var ezR3b = Math.floor((Math.random() * 6670) + 600);
var ezR4b = Math.floor((Math.random() * 7780) + 600);
var ezR5b = Math.floor((Math.random() * 8120) + 700);
var ezR6b = Math.floor((Math.random() * 9540) + 700);
var ezR7b = Math.floor((Math.random() * 1230) + 800);
var ezR8b = Math.floor((Math.random() * 1134) + 800);
var ezR9b = Math.floor((Math.random() * 1223) + 900);
var ezR10b = Math.floor((Math.random() * 1510) + 1000);
var choozMany = Math.floor((Math.random() * 4) + 1);
var chooz = Math.random();
var amountOfPower = null;
var money = null;
var moneya = null;
var moneyb = null;
var cabels = 5;
var clients = 2;
var bacout = 1;
var one = 1;
var d = 0;
var da = 0;
var db = 0;
var vas = true;
var vasa = true;
var vasb = true;
var cabelsTake = 500 * cabels;
var bacoutTake = 2000 * bacout;
var valu = "a";
var valua = "a";
var valub = "a";
var gunka = true;
var gunkb = true;
var cabelsa = 5;
var clientsa = 2;
var bacouta = 1;
var cabelsb = 5;
var clientsb = 2;
var bacoutb = 1;
function Round(x) {
alert("Round " + x + " has begun!");
}
function s() {
console.log(" ");
}
function Tell(a, b, c, d, z, e) {
s();
console.log("***********************************");
if (e === n1 || e === n2) {
console.log("ROUND " + z + "(" + e + ")");
} else {
console.log("ROUND " + z);
}
console.log("-----------------------------------");
console.log("Credits: " + a);
console.log("Power Cabels: " + b);
console.log("Back Outputters: " + c);
console.log("Clients: " + d);
console.log("-----------------------------------");
}
function Strike(x) {
console.log("⚡ KABOOM! ⚡");
console.log("Lightning strike power: " + x + " Volts");
}
function blowCable() {
console.log("Oh No! Some of your cables have blown up! You have " + cabels + " left!");
}
function blowBacout() {
console.log("Oh No! Some of your backup outputters have blown up! You have " + bacout + " left!");
}
function nexd(x) {
alert("It is now " + x + "'s turn.");
}
function compare(x, y, z, w) {
var g = Math.max(x, y);
if (g === x) {
name = z;
} else if (g === y) {
name = w;
}
console.log(name + " won with a total of: " + g + " Points!");
console.log("***********************************");
s();
}
// Logic(cabelsTake, bacoutTake, clients, cabels, ezRX,);
function Logic(a, b, c, d, e) {
var total = e - a;
var out = total - b;
var yon = a - e;
var cab = 500 * d;
if (yon > 0) {
var moneyEarned = e / 2 * c + cab;
var result = Math.round(moneyEarned);
money += result;
console.log("-----------------------------------");
console.log("Credits Earned: " + result);
console.log("Cables/Backup Outputters Overridden: None");
console.log("***********************************");
s();
} else {
console.log(" ");
console.log("ALERT! ALERT! Too much power!");
console.log(" ");
console.log("Attempting to send power to Backup Outputter... ");
console.log("⚠️BREACH! BREACH! OUTPUTTER INVALID! ATTEMPTING TO RESEND...⚠️");
console.log("***********************************");
s();
if (out < 0) {
var pen = 3000 + cab;
money += pen;
console.log("***********************************");
console.log("Success! Power diverted.");
console.log("Credits Earned: " + pen);
console.log("***********************************");
s();
} else {
console.log("WARNING! Input to large!");
if (chooz < 0.75 && cabels > 0) {
cabels -= choozMany;
blowCable();
console.log("Cables/Backup Outputters Overridden: " + choozMany);
console.log("***********************************");
} else if (chooz > 0.75 && bacout > 0) {
bacout -= choozMany;
blowBacout();
console.log("Cables/Backup Outputters Overridden: " + choozMany);
console.log("***********************************");
s();
}
}
}
}
//round('round number', 'ezRX' )
function round(x, y) {
if (d < 1 && valu === "a") {} else if (valu === "a" && vas === true) {
alert("Press 'ok' to move on to the next round");
}
if (valu === "a" && money > 3000) {
var shop = prompt("Shop Round " + x + ": 1.Power cable-$3000 2.Backup Outputter-$5000 3. Extra client-$30,000 Credits: " + "$" + money);
if (shop === "1" && money >= 3000) {
//cabels += one; works, money -= 1000; works
cabels += one;
money -= 3000;
cabelsTake = 500 * cabels;
bacoutTake = 2000 * bacout;
//Round x
Round(x);
Tell(money, cabels, bacout, clients, x);
Strike(y);
Logic(cabelsTake, bacoutTake, clients, cabels, y);
d++;
} else if (shop === "2" && money >= 5000) {
money -= 5000;
cabelsTake = 500 * cabels;
bacoutTake = 2000 * bacout;
bacout += one;
//Round x
Round(x);
Tell(money, cabels, bacout, clients, x);
Strike(y);
Logic(cabelsTake, bacoutTake, clients, cabels, y);
d++;
} else if (shop === "3" && money >= 30000) {
money -= 30000;
cabelsTake = 500 * cabels;
bacoutTake = 2000 * bacout;
clients += one;
//Round x
Round(x);
Tell(money, cabels, bacout, clients, x);
Strike(y);
Logic(cabelsTake, bacoutTake, clients, cabels, y);
d++;
} else {
var g = money / 2;
if (money < 3000) {
valu = "b";
} else {
money -= g;
console.log("You lost " + g + " credits for skipping a turn.");
if (money < 3000) {
console.log("------------------");
console.log("GAME OVER! Thanks for playing.");
valu = "b";
vas = false;
}
}
}
if (bacout <= 0 || cabels <= 0) {
valu = "b";
}
}
if (valu === "b" && vas === true) {
console.log("------------------");
console.log("GAME OVER! Thanks for playing.");
valu = "b";
vas = false;
}
if (d === 10) {
if (money > 5000 && valu === "a") {
console.log("Congratulations! You have made it through the storm. Your business continues to make millions!");
} else {
console.log("Oh No! You don't have enough money! Your business crumbles into chaos!");
}
valu = "b";
vas = false;
}
}
// Logic(cabelsTake, bacoutTake, clients, cabels, ezRX, money, bacout);
//-------------------------------------------
function Logica(a, b, c, d, e, f, g) {
var total = e - a;
var out = total - b;
var yon = a - e;
var cab = 500 * d;
if (yon > 0) {
var moneyEarned = e / 2 * c + cab;
var result = Math.round(moneyEarned);
f += result;
console.log("-----------------------------------");
console.log("Credits Earned: " + result);
console.log("Cables/Backup Outputters Overridden: None");
console.log("***********************************");
s();
} else {
console.log(" ");
console.log("ALERT! ALERT! Too much power!");
console.log(" ");
console.log("Attempting to send power to Backup Outputter... ");
console.log("⚠️BREACH! BREACH! OUTPUTTER INVALID! ATTEMPTING TO RESEND...⚠️");
console.log("***********************************");
s();
if (out < 0) {
var pen = 3000 + cab;
f += pen;
console.log("***********************************");
console.log("Success! Power diverted.");
console.log("Credits Earned: " + pen);
console.log("***********************************");
s();
} else {
console.log("WARNING! Input to large!");
if (chooz < 0.75 && cabels > 0) {
d -= choozMany;
blowCable();
console.log("Cables/Backup Outputters Overridden: " + choozMany);
console.log("***********************************");
s();
} else if (chooz > 0.75 && bacout > 0) {
g -= choozMany;
blowBacout();
console.log("Cables/Backup Outputters Overridden: " + choozMany);
console.log("***********************************");
s();
}
}
}
}
//round('round number', 'ezRX' )
function rounda(x, y) {
if (da < 1 && valua === "a") {} else if (valua === "a" && vasa === true && valub === true) {
alert("Press 'ok' to move on to the next round");
}
if (valua === "a" && moneya > 3000 && valub === "a") {
nexd(n1);
var shopa = prompt("Shop Round " + x + ": 1.Power cable-$3000 2.Backup Outputter-$5000 3. Extra client-$30,000 Credits: " + "$" + moneya);
if (shopa === "1" && moneya >= 3000) {
//cabels += one; works, money -= 1000; works
cabelsa += one;
moneya -= 3000;
cabelsTake = 500 * cabelsa;
bacoutTake = 2000 * bacouta;
//Round x
Round(x);
Tell(moneya, cabelsa, bacouta, clientsa, x, n1);
Strike(y);
Logica(cabelsTake, bacoutTake, clientsa, cabelsa, y, moneya, bacouta);
da++;
} else if (shopa === "2" && moneya >= 5000) {
moneya -= 5000;
cabelsTake = 500 * cabelsa;
bacoutTake = 2000 * bacouta;
bacouta += one;
//Round x
Round(x);
Tell(moneya, cabelsa, bacouta, clientsa, x, n1);
Strike(y);
Logica(cabelsTake, bacoutTake, clientsa, cabelsa, y, moneya, bacouta);
da++;
} else if (shopa === "3" && moneya >= 30000) {
moneya -= 30000;
cabelsTake = 500 * cabelsa;
bacoutTake = 2000 * bacouta;
clientsa += one;
//Round x
Round(x);
Tell(moneya, cabelsa, bacouta, clientsa, x, n1);
Strike(y);
Logica(cabelsTake, bacoutTake, clientsa, cabelsa, y, moneya, bacouta);
da++;
} else {
var g = moneya / 2;
if (g < 3000 && gunka === true && gunkb === true) {
console.log(n1 + " Eliminated!");
console.log(n2 + " wins!");
gunka = false;
gunkb = false;
valua = "b";
valub = "b";
} else {
moneya -= g;
console.log("You lost " + g + " credits for skipping a turn!");
}
}
} else {}
//Prototype
var tosta = moneya + cabelsTake + bacoutTake + clientsa * 100;
var tostb = moneyb + cabelsTake + bacoutTake + clientsb * 100;
if (bacouta <= 0 || cabelsa <= 0 && gunka === true) {
console.log("-----------------------------------");
console.log(n1 + " Eliminated!");
console.log(n2 + " wins with a total of " + tostb + " Points!");
gunka = false;
gunkb = false;
valua = "b";
valub = "b";
}
if (bacoutb <= 0 || cabelsb <= 0 && gunkb === true) {
console.log("-----------------------------------");
console.log(n2 + " Eliminated!");
console.log(n1 + " wins with a total of " + tosta + " Points!");
gunka = false;
gunkb = false;
valua = "b";
valub = "b";
}
}
//round('round number', 'ezRX' )
function roundb(x, y) {
if (db < 1 && valub === "a") {} else if (valua === "a" && vasb === true && valub === true) {
alert("Press 'ok' to move on to the next round");
}
if (valua === "a" && moneyb > 3000 && valub === "a") {
nexd(n2);
var shopb = prompt("Shop Round " + x + ": 1.Power cable-$3000 2.Backup Outputter-$5000 3. Extra client-$30,000 Credits: " + "$" + moneya);
if (shopb === "1" && moneyb >= 3000) {
//cabels += one; works, money -= 1000; works
cabelsb += one;
moneyb -= 3000;
cabelsTake = 500 * cabelsb;
bacoutTake = 2000 * bacoutb;
//Round x
Round(x);
Tell(moneyb, cabelb, bacoutb, clientsb, x, n2);
Strike(y);
Logica(cabelsTake, bacoutTake, clientsb, cabelsb, y, moneyb, bacoutb);
db++;
} else if (shopb === "2" && moneyb >= 5000) {
moneyb -= 5000;
cabelsTake = 500 * cabelsb;
bacoutTake = 2000 * bacoutb;
bacoutb += one;
//Round x
Round(x);
Tell(moneyb, cabelb, bacoutb, clientsb, x, n2);
Strike(y);
Logica(cabelsTake, bacoutTake, clientsb, cabelsb, y, moneyb, bacoutb);
db++;
} else if (shopb === "3" && moneyb >= 30000) {
moneyb -= 30000;
cabelsTake = 500 * cabelsb;
bacoutTake = 2000 * bacoutb;
clientsb += one;
//Round x
Round(x);
Tell(moneyb, cabelb, bacoutb, clientsb, x, n2);
Strike(y);
Logica(cabelsTake, bacoutTake, clientsb, cabelsb, y, moneyb, bacoutb);
db++;
} else {
var g = moneyb / 2;
if (g < 3000 && gunka === true && gunkb === true) {
console.log(n2 + " Eliminated!");
console.log(n1 + " wins!");
gunka = false;
gunkb = false;
valua = "b";
valub = "b";
} else {
moneyab -= g;
console.log("You lost " + g + " credits for skipping a turn!");
}
}
} else {}
//Prototype
var tosta = moneya + cabelsTake + bacoutTake + clientsa * 100;
var tostb = moneyb + cabelsTake + bacoutTake + clientsb * 100;
if (bacoutb <= 0 || cabelsb <= 0 && gunkb === true) {
console.log("-----------------------------------");
console.log(n2 + " Eliminated!");
console.log(n1 + " wins with a total of " + tosta + " Points!");
gunka = false;
gunkb = false;
valua = "b";
valub = "b";
}
if (bacouta <= 0 || cabelsa <= 0 && gunka === true) {
console.log("-----------------------------------");
console.log(n1 + " Eliminated!");
console.log(n2 + " wins with a total of " + tostb + " Points!");
gunka = false;
gunkb = false;
valua = "b";
valub = "b";
}
if (db === 10) {
if (valua === "a" && valub === "a") {
compare(tosta, tostb, n1, n2);
} else {return false;}
}
}
if (play === "1") {
//Start rounds
money = 15000;
round(1, ezR1);
round(2, ezR2);
round(3, ezR3);
round(4, ezR4);
round(5, ezR5);
round(6, ezR6);
round(7, ezR7);
round(8, ezR8);
round(9, ezR9);
round(10, ezR10);
} else if (play === "2") {
rounda(1, ezR1a);
roundb(1, ezR1b);
rounda(2, ezR2a);
roundb(2, ezR2b);
rounda(3, ezR3a);
roundb(3, ezR3b);
rounda(4, ezR4a);
roundb(4, ezR4b);
rounda(5, ezR5a);
roundb(5, ezR5b);
rounda(6, ezR6a);
roundb(6, ezR6b);
rounda(7, ezR7a);
roundb(7, ezR7b);
rounda(8, ezR8a);
roundb(8, ezR8b);
rounda(9, ezR9a);
roundb(9, ezR9b);
rounda(10, ezR10a);
roundb(10, ezR10b);
} else {
console.log("You didn't select a valid amount of players.");
}