Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- object NuclearProgram extends App {
- //Add different pop deaths for more densely pact countries.
- //Add dicerolls for how much the enemy responds to your attack.
- //Add army possibly.
- //Add more countries.
- //Add scripted events occurring on certain days.
- //Possibly list nuclear armed nations at start so people have an easier time picking.
- var nukes = 0
- var army = 0
- var e_army = 0
- var enemy = ""
- var ply = ""
- var plyrus = false
- var plyusa = false
- var plyfra = false
- var plyuk = false
- var plychi = false
- var n = 0
- var nuke_state = Array("Russia","Soviet Union","United States","US","USA","France","United Kingdom","UK","Britain","China")
- var e_nukes = 0
- var rus_nukes = 39197
- var us_nukes = 23368
- var uk_nukes = 422
- var fra_nukes = 360
- var chi_nukes = 243
- var ruspop = BigInt("277700000")
- var uspop = BigInt("237000000")
- var frapop = BigInt("56830000")
- var ukpop = BigInt("56550000")
- var chipop = BigInt("1051000000")
- var plypop = BigInt("0")
- var nukepop = ruspop + uspop + frapop + ukpop + chipop + plypop
- var vaguepop = BigInt("4840000000")
- var vaguepopend = BigInt("4840000000") - ruspop - uspop - frapop - ukpop - chipop - plypop //3160920000
- var total_deaths = BigInt("0")
- var ply_deaths = BigInt("0")
- var tooMany = false
- var badName = false
- var cont = false
- var self_nuke = false
- var month = 1
- var year = 1985
- var noNuke = false
- var nukesFired = 0
- var game = true
- def reset = {
- nukes = 0
- army = 0
- e_army = 0
- enemy = ""
- ply = ""
- plyrus = false
- plyusa = false
- plyfra = false
- plyuk = false
- plychi = false
- n = 0
- nuke_state = Array("Russia","Soviet Union","United States","US","USA","France","United Kingdom","UK","Britain","China")
- e_nukes = 0
- rus_nukes = 39197
- us_nukes = 23368
- uk_nukes = 422
- fra_nukes = 360
- chi_nukes = 243
- ruspop = 277700000
- uspop = 237000000
- frapop = 56830000
- ukpop = 56550000
- chipop = 1051000000
- plypop = 0
- nukepop = ruspop + uspop + frapop + ukpop + chipop + plypop
- vaguepop = BigInt("4840000000")
- vaguepopend = BigInt("4840000000") - ruspop - uspop - frapop - ukpop - chipop - plypop //3160920000
- total_deaths = BigInt("0")
- ply_deaths = BigInt("0")
- tooMany = false
- badName = false
- cont = false
- self_nuke = false
- month = 1
- year = 1985
- noNuke = false
- nukesFired = 0
- game = true
- }
- def nations = {
- do {
- ply = readLine();
- if (ply.equalsIgnoreCase("Russia") || ply.equalsIgnoreCase("Soviet Union")) {
- badName = false
- nukes = 39197
- plypop = 277700000
- ruspop = 0
- plyrus = true
- ply = "The Soviet Union"
- }
- else if (ply.equalsIgnoreCase("United States" ) || ply.equalsIgnoreCase("US") || ply.equalsIgnoreCase("USA")) {
- badName = false
- nukes = 23368
- plypop = 237000000
- uspop = 0
- plyusa = true
- ply = "The United States of America"
- }
- else if (ply.equalsIgnoreCase("France")) {
- badName = false
- nukes = 360
- plypop = 56830000
- frapop = 0
- plyfra = true
- ply = "France"
- }
- else if (ply.equalsIgnoreCase("UK") || ply.equalsIgnoreCase("United Kingdom") || ply.equalsIgnoreCase("Britain")) {
- badName = false
- nukes = 422
- plypop = 56550000
- ukpop = 0
- plyuk = true
- ply = "The United Kingdom"
- }
- else if (ply.equalsIgnoreCase("China")) {
- badName = false
- nukes = 243
- plypop = 1051000000
- chipop = 0
- plychi = true
- ply = "China"
- }
- else {
- badName = true
- println(ply + " is not a nuclear state. Try again.")
- }
- } while (badName == true)
- }
- //This is where the army section would go if I decided to implement it.
- def who_to_nuke = {
- do {
- println("Who do you want to nuke?")
- enemy = readLine();
- if (enemy.equalsIgnoreCase(ply)) {
- println("You cannot nuke yourself. Try again.")
- self_nuke = true
- }
- else {self_nuke = false}
- } while (self_nuke == true)
- if (enemy.equalsIgnoreCase("nobody") || enemy.equalsIgnoreCase("wait")) {
- noNuke = true
- tooMany = false
- }
- else {
- tooMany = true
- }
- while (tooMany == true) {
- println("You have " +nukes+ " nuclear weapons.")
- println("How many nukes do you wish to launch?")
- n = readInt();
- enough_nukes;
- }
- if (noNuke == false) {
- nukes = nukes - n
- nukesFired += n
- println(ply + " attacked " + enemy+ " with " + n + " nuclear weapons.")
- }
- }
- def enough_nukes = {
- if (n > nukes) {
- println("You don't have that many nukes! Try again.")
- tooMany = true
- }
- else {
- tooMany = false
- }
- }
- var r_e = false
- var u_e = false
- var f_e = false
- var b_e = false
- var c_e = false
- def nuked = {
- if (enemy.equalsIgnoreCase(nuke_state(0)) || enemy.equalsIgnoreCase(nuke_state(1))) { //rus
- e_nukes = rus_nukes
- r_e = true;u_e = false;f_e = false;b_e = false;c_e = false;noNuke = false
- }
- else if (enemy.equalsIgnoreCase(nuke_state(2)) || enemy.equalsIgnoreCase(nuke_state(3)) || enemy.equalsIgnoreCase(nuke_state(4))) { //usa
- e_nukes = us_nukes
- r_e = false;u_e = true;f_e = false;b_e = false;c_e = false;noNuke = false
- }
- else if (enemy.equalsIgnoreCase(nuke_state(5))) { //fra
- e_nukes = fra_nukes
- r_e = false;u_e = false;f_e = true;b_e = false;c_e = false;noNuke = false
- }
- else if (enemy.equalsIgnoreCase(nuke_state(6)) || enemy.equalsIgnoreCase(nuke_state(7)) || enemy.equalsIgnoreCase(nuke_state(8))) { //uk
- e_nukes = uk_nukes
- r_e = false;u_e = false;f_e = false;b_e = true;c_e = false;noNuke = false
- }
- else if (enemy.equalsIgnoreCase(nuke_state(9))) { //chi
- e_nukes = chi_nukes
- r_e = false;u_e = false;f_e = false;b_e = false;c_e = true;noNuke = false
- }
- else {
- r_e = false;u_e = false;f_e = false;b_e = false;c_e = false;noNuke = false
- }
- }
- def response = {
- if (r_e == true || u_e == true || f_e == true || b_e == true || c_e == true) {
- if (e_nukes == 0) {
- println(enemy.capitalize + " has depleted their nuclear stockpile and cannot retaliate.")
- ply_deaths = 0
- }
- else if (n >= e_nukes) {
- println(enemy.capitalize + " has responded with " + e_nukes + " nuclear attacks.")
- nukesFired += e_nukes
- println()
- ply_deaths = Math.abs(e_nukes * 150000)
- plypop -= ply_deaths
- total_deaths = Math.abs(nukes * 150000)
- if (r_e == true) {rus_nukes = 0}
- else if (u_e == true) {us_nukes = 0}
- else if (f_e == true) {fra_nukes = 0}
- else if (b_e == true) {uk_nukes = 0}
- else if (c_e == true) {chi_nukes = 0}
- }
- else {
- println(enemy.capitalize + " has responded with " + n + " nuclear attacks.")
- nukesFired += n
- println()
- e_nukes -= n
- total_deaths = Math.abs(n * 150000) //15880
- ply_deaths = total_deaths
- plypop -= ply_deaths
- if (r_e == true) {rus_nukes = e_nukes}
- else if (u_e == true) {us_nukes = e_nukes}
- else if (f_e == true) {fra_nukes = e_nukes}
- else if (b_e == true) {uk_nukes = e_nukes}
- else if (c_e == true) {chi_nukes = e_nukes}
- }
- }
- else {
- println(enemy.capitalize + " has no nuclear weapons and thus cannot retaliate!")
- println()
- ply_deaths = 0
- total_deaths = n * 150000
- vaguepopend -= total_deaths
- }
- }
- def deaths = {
- if (r_e == true) { //rus
- ruspop -= total_deaths
- if (ruspop < 0) {total_deaths = 277700000; ruspop = 0}
- else if (n > 28633) {total_deaths = 277700000; ruspop = 0}
- println("Soviet population: " + ruspop + " Enemy casualties: " + total_deaths)
- }
- else if (u_e == true) { //usa
- uspop -= total_deaths
- if (uspop < 0) {total_deaths = 237000000; uspop = 0}
- else if (n > 28633) {total_deaths = 237000000; uspop = 0}
- println("American population: " + uspop + " Enemy casualties: " + total_deaths)
- }
- else if (f_e == true) { //fra
- frapop -= total_deaths
- if (frapop < 0) {total_deaths = 56830000; frapop = 0}
- else if (n > 28633) {total_deaths = 56830000; frapop = 0}
- println("French population: " + frapop + " Enemy casualties: " + total_deaths)
- }
- else if (b_e == true) { //uk
- ukpop -= total_deaths
- if (ukpop < 0) {total_deaths = 56550000; ukpop = 0}
- else if (n > 28633) {total_deaths = 56550000; ukpop = 0}
- println("United Kingdom population: " + ukpop + " Enemy casualties: " + total_deaths)
- }
- else if (c_e == true) { //chi
- chipop -= total_deaths
- if (chipop < 0) {total_deaths = 1051000000; chipop = 0}
- else if (n > 28633) {total_deaths = 1051000000; chipop = 0}
- println("Chinese population: " + chipop + " Enemy casualties: " + total_deaths)
- }
- else {
- println("Enemy population and casualties could not be determined.")
- println("Theoretical casualties are up to " + total_deaths)
- }
- if (plypop < 0 && plyrus == true) {ply_deaths = 277700000; plypop = 0}
- else if (plypop < 0 && plyusa == true) {ply_deaths = 237000000; plypop = 0}
- else if (plypop < 0 && plyfra == true) {ply_deaths = 56830000; plypop = 0}
- else if (plypop < 0 && plyuk == true) {ply_deaths = 56550000; plypop = 0}
- else if (plypop < 0 && plychi == true) {ply_deaths = 1051000000; plypop = 0}
- println("Your population: " + plypop + " Your casualties: " + ply_deaths)
- }
- def cont_nuke = {
- if (nukes == 0) {
- println("No more nuclear weapons in stockpile. Operations discontinued. Press enter to continue.")
- cont = false
- game = false
- readLine();
- }
- else if (plypop == 0) {
- println("Everybody in your country is dead! There is no way to launch any more nuclear weapons.")
- cont = false
- game = false
- }
- else {
- println("Continue nuclear operations? Y/N.")
- var response = readLine();
- if (response.equalsIgnoreCase("Y")) {cont = true;month += 1;monthcheck;}
- else {cont = false;game = false}
- }
- }
- def monthcheck = {
- if (month > 12) {
- month = 1
- year += 1
- }
- else {}
- }
- //start
- def play {
- var i = 0
- println("The date is 1/"+month+"/"+year+ ". The world is in the middle of a nuclear war.")
- println("Enter a nuclear armed nation's name to play as.")
- nations;
- do {
- if (i > 0) {
- println("The date is 1/"+month+"/"+year+".")
- }
- i += 1
- who_to_nuke;
- if (noNuke == false) {
- nuked;
- response;
- deaths;
- }
- else {
- println("No nuclear weapons exchanged.")
- }
- cont_nuke;
- } while (cont == true)
- }
- play;
- var nukepopend = ruspop + uspop + frapop + ukpop + chipop + plypop
- vaguepopend = vaguepopend + (ruspop + uspop + frapop + ukpop + chipop + plypop)
- var world_deaths = vaguepop - vaguepopend
- println("Type in a command to view statistics and other information. (Type 'help' to see a list of commands)")
- var repeat = true
- do {
- var stats = readLine();
- if (stats.equalsIgnoreCase("help")) {
- println("'help': Displays this menu.")
- println("'population': Displays statistics on the world populations.")
- println("'nukes': Displays statistics on nukes fired and casualties.")
- println("'replay': Re-sets all game statistics, restarts the game, and allows you to pick a new country.")
- println("'terminate': Terminates the program.")
- }
- else if (stats.equalsIgnoreCase("population")) {
- println(" Population Statistics ")
- println("Original population of all nuclear powers: " +nukepop)
- println("Current population of all nuclear powers: " +nukepopend)
- println("Original population of the world: " +vaguepop)
- println("Current population of the world: " +vaguepopend)
- }
- else if (stats.equalsIgnoreCase("nukes")) {
- println((" Nuclear Statistics "))
- println("There have been "+nukesFired+" nuclear weapons fired.")
- println("They have resulted in "+world_deaths+" deaths.")
- }
- else if (stats.equalsIgnoreCase("replay")) {
- repeat = true
- reset;
- game = true
- do {play;} while (game == true)
- println("Type in a command to view statistics and other information. (Type 'help' to see a list of commands)")
- }
- else if (stats.equalsIgnoreCase("terminate")) {
- repeat = false;
- println("Program termianted.")
- }
- else {
- println("Invalid command.")
- }
- } while (repeat == true)
- //4.84 Billion = TOTAL WORLD POP EVERY COUNTRY
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement