Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //My verson of snake, has some minor bugs
- import javax.swing.*;
- import java.awt.BorderLayout;
- import java.awt.Graphics;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import java.util.*;
- import java.awt.*;
- import javax.swing.Timer;
- public class EnkelSnake extends JFrame implements KeyListener{
- private SpillPanel panel;
- public EnkelSnake(int x, int y){
- super("Snake V.1");
- panel = new SpillPanel(x, y);
- add(panel, BorderLayout.CENTER);
- setSize(x, y);
- setVisible(true);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- addKeyListener(this);
- panel.go();
- }
- private class SpillPanel extends JPanel{
- private Point sign = new Point();
- private Point size = new Point();
- private Point applePos = new Point(100,100);
- private Random rand = new Random();
- private int counter = 0;
- private int score = 0;
- private int antalldeler = 1;
- private int nedteller = 5;
- private int multiplayer = 1;
- private ArrayList<Point> position = new ArrayList<Point>();
- private boolean EatFirstApple = false;
- Timer t = new Timer(1000, new ActionListener(){
- public void actionPerformed(ActionEvent e) {
- counter++;
- }
- });
- public SpillPanel(int x, int y){
- size.x = x;
- size.y = y;
- for (int i = 0; i < antalldeler; i++) {
- position.add(i, new Point( (x / 2) - 10 * i, (y / 2)));
- }
- setSign(1,0);
- }
- public void setSign(int x, int y){
- this.sign = new Point(x,y);
- }
- public Point getSign(){
- return sign;
- }
- public void paintComponent(Graphics g){
- super.paintComponent(g);
- for (int i = 0; i < antalldeler; i++) {
- g.fillRect(position.get(i).x, position.get(i).y, 9, 9);
- }
- g.drawRect(10, 10, 460, 440);
- g.fillOval(applePos.x, applePos.y, 10, 10);
- g.drawRect(100, 0, 200 , 10);
- g.fillRect(100, 0, ((nedteller - counter)) * 200/nedteller, 10);
- g.drawString(("Score: " + score), 10, 10);
- g.drawString("x"+ multiplayer, 400, 10);
- }
- public void newApple(){
- applePos.x = rand.nextInt(40) * 10 + 10;
- applePos.y = rand.nextInt(40) * 10 + 10;
- t.restart();
- counter = 0;
- }
- public void outOfTime(){
- if(counter > nedteller){
- newApple();
- multiplayer = 1;
- }else{
- t.start();
- }
- }
- public void eatTail(){
- for (int i = 1; i < antalldeler; i++) {
- if((position.get(0).x < position.get(i).x + 5
- && position.get(0).x > position.get(i).x - 5)
- && position.get(0).y < position.get(i).y + 5
- && position.get(0).y > position.get(i).y - 5){
- System.exit(0);
- }
- }
- }
- public void eatApple(){
- if((position.get(0).x <= applePos.x + 5
- && position.get(0).x >= applePos.x - 5)
- && position.get(0).y <= applePos.y + 5
- && position.get(0).y >= applePos.y - 5){
- newApple();
- score += 10 * multiplayer;
- position.add(position.size(), new Point( position.get(position.size() - 1).x +5, position.get(position.size() - 1).y ));
- antalldeler++;
- multiplayer++;
- }
- }
- public void go(){
- while(true){
- repaint();
- outOfTime();
- eatApple();
- eatTail();
- try{
- Thread.sleep(50);
- }catch(InterruptedException ie){}
- for (int i = antalldeler - 1 ; i > 0; i--) {
- position.set(i,new Point(position.get(i - 1).x,
- position.get(i - 1).y));
- }
- position.set(0, new Point(position.get(0).x + 10 * getSign().x,
- position.get(0).y + 10 * getSign().y));
- if(position.get(0).x <= 5 || position.get(0).x >= size.x - 35 || position.get(0).y <= 0 || position.get(0).y >= size.y - 55){
- System.exit(0);
- }
- }
- }
- }
- public static void main(String[] args) {
- new EnkelSnake(500, 500);
- }
- public void keyPressed(KeyEvent e) {
- int tast = e.getKeyCode();
- if(tast == KeyEvent.VK_UP && panel.getSign().y != 1){
- panel.setSign(0, -1);
- }
- else if(tast == KeyEvent.VK_DOWN && panel.getSign().y != -1){
- panel.setSign(0, 1);
- }
- else if(tast == KeyEvent.VK_LEFT && panel.getSign().x != 1){
- panel.setSign(-1,0);
- }
- else if(tast == KeyEvent.VK_RIGHT && panel.getSign().x != -1){
- panel.setSign(1, 0);
- }
- }
- public void keyReleased(KeyEvent e) {}
- public void keyTyped(KeyEvent e) {}
- }
Advertisement
Add Comment
Please, Sign In to add comment