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

This is Java, I am currently stumped on how to add a scoreboard for my game that

ID: 3796114 • Letter: T

Question

This is Java,

I am currently stumped on how to add a scoreboard for my game that I am making. I have inclued my code and classes so far. Any help with a working scoreboard would be greatly apperiacted.

Game.java

import javax.swing.JFrame;

public class Game {
  
   public static void main(String[] args)
   {
      
       // create the frame
       JFrame myFrame = new JFrame("Platformer");
      
       // set up the close operation
       myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       // create panel
       Mainpanel myPanel = new Mainpanel();
       // add panel
       myFrame.getContentPane().add(myPanel);
       // pack
       myFrame.pack();
       // set visibility to true
       myFrame.setVisible(true);
   }
}

Mainpanel.java

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.ArrayList;
import java.util.Random;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;

public class Mainpanel extends JPanel implements KeyListener, ActionListener{

   private final int boardWidth =1000;
   private final int boardHeight =1000;

   int x = 0;
   int y = 0;
   int i= 0;
   int goldCount=11;
   int score = 0;
  
   ImageIcon myIcon = new ImageIcon("./src/TreasureChest.png");
  
   Timer mainTimer;
   player player1;
   player player2;
   static ArrayList treasure = new ArrayList();
   Random rand = new Random();
  
   public String ScoreCount = "Score: " + score;
  
   public Mainpanel()
   {
       setPreferredSize(new Dimension(boardWidth,boardHeight));
       addKeyListener(this);
       setFocusable(true);
      
       player1= new player (100,100);
       player2= new player (200,200);
      
      
       addKeyListener(new move(player1));
       addKeyListener(new move(player2));
          
       mainTimer = new Timer(10,this);
       mainTimer.start();
      
       startGame();
  
   }

   JLabel scoreLabel = new JLabel("Score: 0");
  
  
   public void paintComponent(Graphics page)
   {
       super.paintComponent(page);
       Graphics2D g2d =(Graphics2D) page;
                      
       player1.draw(g2d);
       player2.draw(g2d);
  
       g2d.
       g2d.setColor(new Color(128, 128, 128));
       g2d.fillRect(0, 0, 50, 1000);         

       g2d.setColor(new Color(128, 128, 128));
       g2d.fillRect(950, 0, 50, 1000);
      
       g2d.setColor(new Color(128, 128, 128));
       g2d.fillRect(50, 0, 900, 50);
         
       g2d.setColor(new Color(128, 128, 128));;
       g2d.fillRect(50, 950, 900, 50);

         
       for (int i=0 ; i < treasure.size(); i++){
           Gold tempGold = treasure.get(i);
           tempGold.draw(g2d);
                  
       }
   }

   public void actionPerformed (ActionEvent arg0){
       player1.update();
       repaint();
   }

   @Override
   public void keyPressed(KeyEvent arg0) {
       // TODO Auto-generated method stub
      
   }

   @Override
   public void keyReleased(KeyEvent arg0) {
       // TODO Auto-generated method stub
      
   }

   @Override
   public void keyTyped(KeyEvent arg0) {
       // TODO Auto-generated method stub
      
   }
  
   public void addGold(Gold g){
       treasure.add(g);
   }
  
   public static void removeGold (Gold g) {
       treasure.remove(g);
   }
  
   public static ArrayList getGoldList() {
       return treasure;
   }
  
   public void startGame() {
       for (int i=0; i < goldCount; i++){
           addGold(new Gold(rand.nextInt(boardWidth), rand.nextInt(boardHeight)));
       }
      
   }
  
   public void someoneScored()
   {
   score++;
   scoreLabel.setBounds(200, 200, 100, 100);
   scoreLabel.setText("Score: " + score);
   }

  
}

Player.java

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.KeyEvent;
import java.util.ArrayList;

import javax.swing.ImageIcon;

public class player extends Entity{
  
   int velX=0;
   int vely=0;
  
   public player(int x, int y){
       super(x, y);
   }

   public void update(){
       y+= vely;
       x+= velX;
       checkCollisons();
       checkOOB();
   }
  
   public void draw(Graphics2D g2d) {
       g2d.drawImage(getPlayerImg(), x, y, null);
       //g2d.draw(getBounds());
   }
  
   public Image getPlayerImg(){
       ImageIcon ic = new ImageIcon("./src/TreasureChest.png");
       return ic.getImage();
   }
  
   public void keyPressed(KeyEvent arg0){
       int keyCode = arg0.getKeyCode();
      
       if (keyCode == KeyEvent.VK_LEFT)
       {

           velX=-10;
       }
       else if (keyCode == KeyEvent.VK_RIGHT)
       {

           velX=10;
       }
       else if (keyCode == KeyEvent.VK_UP)
       {

           vely=-10;
       }
       else if (keyCode == KeyEvent.VK_DOWN)
       {

           vely=10;
       }
      
   }
  
   public void keyReleased(KeyEvent arg0){
   int keyCode = arg0.getKeyCode();
      
       if (keyCode == KeyEvent.VK_LEFT)
       {

           velX=0;
       }
       else if (keyCode == KeyEvent.VK_RIGHT)
       {

           velX=0;
       }
       else if (keyCode == KeyEvent.VK_UP)
       {

           vely=0;
       }
       else if (keyCode == KeyEvent.VK_DOWN)
       {

           vely=0;
       }
   }
      
   public void checkCollisons(){
       ArrayList treasure = Mainpanel.getGoldList();
      
       for (int i=0; i < treasure.size(); i++){
           Gold tempGold= treasure.get(i);
           if (getBounds().intersects(tempGold.getBounds())) {
               Mainpanel.removeGold(tempGold);
           }
       }  
   }
  
   public Rectangle getBounds(){
   return new Rectangle(x,y, getPlayerImg().getWidth(null), getPlayerImg().getHeight(null));
   }
  
   private void checkOOB() {
       if(x < 50) x = 50;
       if(x > 900) x = 900;
       if(y < 50) y = 50;
       if(y > 915) y = 9;
       }
  
}

Entity.java

import java.awt.Graphics2D;

public class Entity {
  
   int x,y;
  
       public Entity(int x, int y){
           this.x= x;
           this.y=y;
  
   }
      
   public void update(){
   }
   public void draw(Graphics2D g2d){
   }
}

Move.java

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class move extends KeyAdapter {
  
   player p;
  
   public move(player player1){
       p= player1;
      
   }
  
   public void keyPressed(KeyEvent e){
       p.keyPressed(e);
   }
  
   public void keyReleased(KeyEvent e){
       p.keyReleased(e);
   }
  

}

Gold.java

import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;

import javax.swing.ImageIcon;

public class Gold extends Entity {
  
   public Gold(int x, int y){
       super(x, y);
   }

   public void update(){
   }
  
   public void draw(Graphics2D g2d) {
       g2d.drawImage(getGoldImg(), x, y, null);
       //g2d.draw(getBounds());
   }
  
   public Image getGoldImg(){
       ImageIcon ic = new ImageIcon("./src/TreasureChest.png");
       return ic.getImage();
   }
  
   public Rectangle getBounds(){
       return new Rectangle(x,y, getGoldImg().getWidth(null), getGoldImg().getHeight(null));
       }
      
}

Explanation / Answer

import java.util. *;

class Game {

public void start()
{

int randomNumber = (int) (Math.random() * 2000);
int number = -1, index, count;
String decision, guess, playername;
long currentTime = 0, newTime, totalTime;
boolean quitting = false;
count = 0;
System.out.println("Welcome to the xyz Game");
System.out.println("Type "quit" to quit at anytime.");
Scanner scan = new Scanner(System.in);
System.out.println("Try to guess the number. Range is from 1 - 2000: ");
guess = scan.nextLine();
if ("quit".equals(guess))
{
System.out.println("Quitting...");
quitting = true;
} else {
number = Integer.parseInt(guess);
}

while (number != randomNumber && number > -1){
if (number >= 2001 || number <= 1) {
System.out.println("Number is not between 1 - 2000. Enter another number");
}

if (number != randomNumber && number > randomNumber && number <= 2000 && number >= 1) {
System.out.println("Number is very high. Try again!");
}

if (number != randomNumber && number < randomNumber && number < 2000 && number > 1) {
System.out.println("Number is very low. Try again!");
}

if (number != randomNumber)
{
count = count + 1;
}

if (number != randomNumber)
{
Scanner scannew = new Scanner(System.in);
System.out.println("Enter a different number: ");
guess = scannew.nextLine();
if ("quit".equals(guess))
{
System.out.println("Quitting...");
quitting = true;
} else
{
number = Integer.parseInt(guess);
}
}

if (count == 1)
{
long lDateTime = new Date().getTime();
currentTime = lDateTime / 2000;
}

if (quitting) {
break;
}
}

if (!quitting) {
long DateTime = new Date().getTime();
newTime = DateTime / 2000;
totalTime = newTime - currentTime;

System.out.println("You win! total amount of guesses was: " + count + " Total time (seconds): " + (totalTime));

Scanner name = new Scanner(System.in);
System.out.println("Enter your name: ");
playername = scan.nextLine();


//ArrayList<Integer> score = new ArrayList<Integer>();
//score.add(index, count);
//System.out.println(score);
//index++;

Scanner decision1 = new Scanner(System.in);
System.out.println("Do you want to play again? yes/no");
decision = decision1.nextLine();

if ("yes".equals(decision)) {
Game Game();
one.start();
}

if ("no".equals(decision)) {
System.out.println("Quitting...");
}
}
scan.close();
}
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote