Member 14045850 Ответов: 2

Мне нужно добавить массивы в мой код и звук может ли кто нибудь помочь


Я создал змеиную игру и теперь мне нужно включить ее в игру:
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();
    }
}

2 Ответов

Рейтинг:
0

Maciej Los

Начать здесь: Гугл[^] Там очень много учебников!


CPallini

5.

Maciej Los

Спасибо, Карло.

Member 14045850

Спасибо, что дали мне ссылку, но я вполне уверен, что мог бы найти ее сам, если бы вы могли сделать код, который был бы огромным одолжением

Maciej Los

Массивы Java[^] - с примерами!
Java Array - Javatpoint[^] - с примерами!

CPallini

Я вполне уверен, что вы можете закодировать его сами.

Dave Kreskowiak

Нет, это не будет большим одолжением.

Это было бы то, что вы просите кого-то другого сделать вашу работу за вас и сдаете задание, где вы не выполняете работу, но получаете оценку за нее.

Здесь такого просто не будет.

Рейтинг:
0

Patrice T

Цитата:
Я создал змеиную игру и теперь мне нужно включить ее в игру:
2 мерные массивы
многомерные массивы
сортировка массивов
звук или любая другая специальная функция

Запрос просто не имеет смысла, он просто не работает так.
Никто просто не добавляет массивы в код.
Использование массивов или нет тесно связано с вашим алгоритмом.
Если ваш код работает без массива, то он не нуждается в массиве, и добавление массива бесполезно.