Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

please create structured flow chart for this pragram import java.util.Random; pu

ID: 3536082 • Letter: P

Question

please create structured flow chart for this pragram


import java.util.Random;

public class Game

{

public static void main(String args[])

{

//declare variables Pile marbles = new Pile();

Random random = new Random();

Player player1;

Player player2;

int marblesToRemove = 0;

//determine who goes first

if(random.nextInt(2) == 0)

{

System.out.println("User goes first ");

player1 = new

Player(2); player2 = new

Player(); }

else { System.out.println("Computer goes first ");

player1 = new Player();

player2 = new Player(2);

}

//keep going until all the marbles are gone

while(marbles.getMarbles() > 0)

{

//check if player two wins

if(marbles.getMarbles() == 1)

{

System.out.println("Player 2 Wins!!!"); break;

}

//prompt/calculate number of marbles to remove

System.out.println("Number of marbles left: " + marbles.getMarbles());

System.out.println("Player 1's turn:");

marblesToRemove = player1.chooseNextMove(marbles.getMarbles());

System.out.println("Player 1 removed " + marblesToRemove);

System.out.println();

//remove the marbles marbles.removeMarbles(marblesToRemove);

//check if player one wins if(marbles.getMarbles() == 1)

{

System.out.println("Player 1 Wins!!!"); break;

}

//prompt/calculate number of marbles to remove

//System.out.println("Number of marbles left: " + marbles.getMarbles());

System.out.println("Player 2's turn:");

marblesToRemove = player2.chooseNextMove(marbles.getMarbles());

System.out.println("Player 2 removed " + marblesToRemove);

System.out.println();

//remove marbles marbles.removeMarbles(marblesToRemove);

}

}

}

import java.util.Random;

public class Pile

{

//fields int numMarbles = 0;

//generate the number of marbles public Pile()

{ Random random = new Random();

numMarbles = random.nextInt(89) + 11; }

//get method public int getMarbles()

{

return numMarbles;

}

//remove method

public void removeMarbles(int marblesToRemove)

{

numMarbles -= marblesToRemove;

}

}

import java.util.Random;

import java.util.Scanner;

public class Player

{

int playerType = 0;

// 0 dumb, 1 smart, 2 player Random random = new Random();

Scanner input;

//constructor where player type is specified

public Player(int type)

{

if (type < 0 || type > 2) playerType = 2;

else playerType = type; input = new Scanner(System.in);

}

//constructor where player type is specified

public Player()

{

playerType = random.nextInt(2);

input = new Scanner(System.in);

}

//pick next move public int chooseNextMove(int marblesLeft)

{

//setup variables int marblesToRemove = 0;

//remove the second to last marble

if(marblesLeft == 3) return 1;

//if dumb, pick random number

if(playerType == 0)

{

marblesToRemove = random.nextInt((marblesLeft/2) - 1) + 1;

}

//if smart get to specific numbers else

if (playerType == 1)

{

if(marblesLeft > 63) marblesToRemove = marblesLeft - 63;

else if(marblesLeft > 31) marblesToRemove = marblesLeft - 31;

else if(marblesLeft > 15) marblesToRemove = marblesLeft - 15; else if(marblesLeft > 7) marblesToRemove = marblesLeft - 7;

else if(marblesLeft > 3) marblesToRemove = marblesLeft - 3;

else if(marblesLeft == 2) marblesToRemove = 1;

//pick random number

else marblesToRemove = random.nextInt((marblesLeft/2) - 1 ) + 1; }

else

{

//prompt user

System.out.println("Please enter a number of marbles to remove between 1 and " + (marblesLeft / 2)); marblesToRemove = input.nextInt();

//error check

while(marblesToRemove > marblesLeft / 2 || marblesToRemove < 0)

{

System.out.println("That is not a valid entry, please try again (1 - " + (marblesLeft / 2) + ")"); marblesToRemove = input.nextInt();

}

}

//return values return marblesToRemove;

}

}

Explanation / Answer

this is my code, you are using. nd you didnt rate me yet.