final int startLives = 3;
private static int lives;
public Snake(int c, int xPos, int yPos){
colElements = c;
elem = new SnakeElement[colElements];
for (int i = 0; i<colElements; i++) {
elem[i] = new SnakeElement(xPos-i,yPos);
elem[i].setMoveRight();
}
setMoveRight();
public void resetLives(){
lives = startLives;
public void increment(SnakeElement lastElem) {
SnakeElement temp[];
temp = new SnakeElement[colElements];
temp[i] = new SnakeElement(0,0);
temp[i] = elem[i];
colElements++;
for (int i = 0; i<colElements-1; i++) {
elem[i] = new SnakeElement(0,0);
elem[i] = temp[i];
elem[colElements-1] = new SnakeElement(0,0);
elem[colElements-1] = lastElem;
elem[colElements-1].xSpeed = lastElem.xSpeed;
elem[colElements-1].ySpeed = lastElem.ySpeed;
public void move(){
for (int i = colElements-1; i>0; i--){
elem[i].setSpeed(elem[i-1].xSpeed, elem[i-1].ySpeed);
elem[i].move();
elem[0].xSpeed = xNextSpeed;
elem[0].ySpeed = yNextSpeed;
elem[0].move();
public void setMoveUp(){
xNextSpeed = 0; yNextSpeed = -1;
};
public void setMoveDown(){
xNextSpeed = 0; yNextSpeed = 1;
public void setMoveLeft(){
xNextSpeed = -1; yNextSpeed = 0;
public void setMoveRight(){
xNextSpeed = 1; yNextSpeed = 0;
public boolean isMaxLong(){return (colElements == maxLen);}
public boolean isKilled(){return (lives<0);}
public void decrementLive(){lives -=1;}
public int getLives(){ return lives;}
class SnakeElement {
int xSpeed=1;
int ySpeed=1;
int xPos=1;
int yPos=1;
public SnakeElement(int xPos, int yPos){
this.xPos = xPos;
this.yPos = yPos;
xPos += xSpeed;
yPos += ySpeed;
public void setSpeed(int x, int y){
xSpeed = x;
ySpeed = y;
public void setMoveUp() { xSpeed = 0; ySpeed = -1;}
public void setMoveDown() { xSpeed = 0; ySpeed = 1;}
public void setMoveLeft() { xSpeed = -1; ySpeed = 0;}
public void setMoveRight(){ xSpeed = 1; ySpeed = 0;}
public boolean isMovingUp() { return ySpeed == -1;}
public boolean isMovingDown(){ return ySpeed == 1;}
public boolean isMovingLeft(){ return xSpeed == -1;}
public boolean isMovingRight(){ return xSpeed == 1;}
import java.awt.*;
import javax.swing.*;
class GameSquare extends JPanel{
int w, h;
boolean used = false;
boolean isBorder = false;
int n;
public void setSize(int w, int h){
super.setSize(w, h);
this.w = w;
this.h = h;
public void setBorder(boolean b){isBorder = b;}
public void setUsed(boolean b){used = b;}
public void paintComponent(Graphics g){
if (isBorder && !used){
g.setColor(Color.ORANGE); g.fillRect(0,0,w-1,h-1);
g.setColor(Color.RED); g.drawRect(0,0,w-1,h-1);
if (used) {
g.setColor(Color.BLUE); g.fillOval(-1, -1, w+2, h+2);
import java.awt.event.*;
public class MenuString extends JMenuBar {
JMenu Game; JMenuItem mi_NewGame, mi_PauseGame,
mi_StopGame, mi_ExitGame;
JMenu Options, Speed; JMenuItem mi_S1, mi_S2, mi_S3;
JMenu Help; JMenuItem mi_About;
public MenuString(final GameFrame owner) {
super();
Game = new JMenu("Гра");
mi_NewGame = new JMenuItem("Нова гра");
mi_NewGame.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
owner.newGame();
});
mi_PauseGame = new JMenuItem("Пауза");
mi_PauseGame.addActionListener(new ActionListener() {
owner.pauseGame();
mi_StopGame = new JMenuItem("Зупинити гру");
mi_StopGame.addActionListener(new ActionListener() {
owner.stopGame();
mi_ExitGame = new JMenuItem("Вихiд");
mi_ExitGame.addActionListener(new ActionListener() {
//Вихід з гри
System.exit(0);
Game.add(mi_NewGame); Game.add(mi_PauseGame);
Game.add(mi_StopGame); Game.add(mi_ExitGame);
add(Game);
Options = new JMenu("Настроювання");
Speed = new JMenu("Швидкість гри");
Options.add(Speed);
mi_S1 = new JMenuItem("Новичок");
mi_S1.addActionListener(new ActionListener() {
owner.field.setGameSpeed(1);
} });
mi_S2 = new JMenuItem("Середня");
mi_S2.addActionListener(new ActionListener() {
owner.field.setGameSpeed(2);
mi_S3 = new JMenuItem("Професіонал");
mi_S3.addActionListener(new ActionListener() {
owner.field.setGameSpeed(3);
Speed.add(mi_S1); Speed.add(mi_S2); Speed.add(mi_S3);
add(Options);
Help = new JMenu("Допомога");
mi_About = new JMenuItem("Про гру");
mi_About.addActionListener(new ActionListener() {
//Інформаційне вікно
JOptionPane.showMessageDialog(owner,
"Гра Змійка\nАвтор: Гребенюк Віктор\n2005 рік",
"Про гру",
JOptionPane.INFORMATION_MESSAGE);
Help.add(mi_About);
add(Help);
4.1. JAVA - Издательство Питер. Секреты программирования для Internet на Java
4.2. Картузов А.В. Язык JAVA
Страницы: 1, 2, 3, 4