Мне нужно добавить массивы в мой код и звук может ли кто нибудь помочь
Я создал змеиную игру и теперь мне нужно включить ее в игру:
2 мерные массивы
многомерные массивы
сортировка массивов
звук или любая другая специальная функция
пожалуйста помогите с кодом так как у меня завтра 3 экзамена и это должно быть сделано
Что я уже пробовал:
import javafx.util.Pair; import java.awt.*; import java.awt.event.*; import java.util.Hashtable; import javax.swing.*; import javax.swing.event.*; import java.util.ArrayList; public class Snake extends JFrame implements ActionListener,KeyListener{ ArrayList<Pair<Integer,Integer>> list=new ArrayList<Pair<Integer,Integer>>(); static int rows=50,cols=50,blSize=20; static int r=rows/2,c=cols/2,dr=0,dc=1,ar,ac; static Timer t; static boolean alive=true; static JButton startBut=new JButton("Start"); static JButton resetBut=new JButton("Reset"); static JButton hScore=new JButton("High Score"); int score=0; public void reset(){ alive=true; t.stop(); r=rows/2; c=cols/2; getApple(); list.clear(); list.add(new Pair(r,c)); dr=0;dc=1; } Snake(){ super(); t=new Timer(30,new Iterate()); startBut.addActionListener(this);//define actions resetBut.addActionListener(this); hScore.addActionListener(this); addKeyListener(this);//defines key detection setFocusable(true);//selectable JPanel content=new JPanel(); content.setLayout(new BoxLayout(content,BoxLayout.Y_AXIS));//layout JPanel one=new JPanel(); DrawArea board=new DrawArea(cols*blSize,rows*blSize); reset(); one.add(startBut);//formatting the objects one.add(resetBut); one.add(hScore); content.add(one); content.add(board); setContentPane (content); pack ();//fit the contents on panel setTitle ("Snake"); setResizable(false); setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);//close when x is pressed setLocationRelativeTo (null);//center of screen } public void death(){//end the program when snake dies alive=false;//set flags t.stop();//stop running the loop } public int rand(int a,int b){ return (int)(Math.random()*(b-a+1))+a; } public void getApple(){//creates a new apple at a random location ar=rand(0,rows-1);//random coordinates ac=rand(0,cols-1); while(list.contains(new Pair(ar,ac))){//ensure the apple isn't inside the snake ar=rand(0,rows-1); ac=rand(0,cols-1); } } public class Iterate implements ActionListener{//one iteration of the game public void actionPerformed(ActionEvent e){ requestFocus();//makes arrow keys do things r+=dr;c+=dc;//move forward if(r<0||r>=rows||c<0||c>=cols)death();//check bounds else if(r==ar&&c==ac){//checks eating an apple list.add(new Pair(r,c));//add head getApple();//new apple } else if(list.contains(new Pair(r,c)))death();//self collision else{ list.add(new Pair(r,c));//add head list.remove(0);//remove tail } repaint(); } } public class DrawArea extends JPanel{// game screen DrawArea(int width,int height){this.setPreferredSize(new Dimension(width,height));}//initializes size public void paintComponent(Graphics g){ g.setColor(Color.black); g.fillRect(0,0,cols*blSize,rows*blSize);//coordinates for grid g.setColor(Color.green); for(int i=0;i<list.size();i++){//for each snake block draw a square at determined location Pair<Integer,Integer> p=list.get(i); g.fillRect(p.getValue()*blSize,p.getKey()*blSize,blSize,blSize); score=i; } g.setColor(Color.red); g.fillRect(ac*blSize,ar*blSize,blSize,blSize);//draw the apple g.setFont(g.getFont().deriveFont(30f)); g.drawString("Score: "+score, 880, 25); g.setColor(Color.blue); if(alive=true) { g.setFont(g.getFont().deriveFont(40f)); g.drawString("Game Over",420,450); } } } public void keyTyped(KeyEvent e){ } public void keyPressed(KeyEvent e){//gets the new direction to travel in if(e.getKeyCode()==KeyEvent.VK_LEFT){ if(dc==1)return; dr=0; dc=-1; } else if(e.getKeyCode()==KeyEvent.VK_RIGHT){ if(dc==-1)return; dr=0; dc=1; } else if(e.getKeyCode()==KeyEvent.VK_UP){ if(dr==1)return; dr=-1; dc=0; } else if(e.getKeyCode()==KeyEvent.VK_DOWN){ if(dr==-1)return; dr=1; dc=0; } } public void keyReleased(KeyEvent e){ } public void actionPerformed(ActionEvent e){ if(e.getActionCommand().equals("Start")){ if(alive)t.start();//start the game if snake is alive } else if(e.getActionCommand().equals("Reset")) { //reset the game reset(); repaint(); } else if(e.getActionCommand().equals("High Score")) { } } public static void main(String[] args){ Snake window=new Snake(); window.setFocusable(true); window.setVisible(true); window.requestFocus(); } }