Skip to content

Instantly share code, notes, and snippets.

@Yur-ok
Created December 16, 2015 12:56
Show Gist options
  • Save Yur-ok/944671d7c364f9234a2a to your computer and use it in GitHub Desktop.
Save Yur-ok/944671d7c364f9234a2a to your computer and use it in GitHub Desktop.
/*
* Copyright (c) 2014 kademika.com
*/
package Lesson2.KeyPoint4;
import javax.swing.*;
import java.awt.*;
public class BattleFieldTemplate_MoveToQuadrant extends JPanel {
boolean COLORDED_MODE = true;
int tankX = 0;
int tankY = 0;
long speed = 225;
/**
* Write your code here.
*/
void runTheGame() throws Exception {
moveToQuadrant("a", "9");
moveToQuadrant("c", "2");
moveToQuadrant("e", "15");
}
void move(int direction) throws Exception {
if (direction >= 1 && direction <= 4) {
if (direction == 1 && tankY != 0) {
tankY -= 64;
System.out.println("Move TANK by one step to the UP");
repaint();
Thread.sleep(speed);
} else if (direction == 2 && tankY < 512) {
tankY += 64;
System.out.println("Move TANK by one step to the DOWN");
repaint();
Thread.sleep(speed);
} else if (direction == 3 && tankX != 0) {
tankX -= 64;
System.out.println("Move TANK by one step to the LEFT");
repaint();
Thread.sleep(speed);
} else if (direction == 4 && tankX < 512) {
tankX += 64;
System.out.println("Move TANK by one step to the RIGHT");
repaint();
Thread.sleep(speed);
}
} else {
System.out.println("Correct data please input!!!");
}
}
void start(int number) {
if (number > 0) {
while (number > 0) {
System.out.println(number--);
if (number == 0) {
System.out.println(number);
System.out.println("Go!");
}
}
} else if (number == 0) {
System.out.println("Go!");
} else {
System.out.println("Start failed");
}
}
void moveRandom() throws Exception {
long a = System.currentTimeMillis();
String s = String.valueOf(a);
String lastChar = s.substring(s.length() - 2, s.length() - 1);
int lastDigit = Integer.parseInt(lastChar);
if (lastDigit > 0 && lastDigit < 5) {
move(lastDigit);
}
}
static String getQuadrant(String v, String h) {
int hor = Integer.valueOf(h);
if (hor > 9) {
hor = 9;
}
int vert = 1;
if (v.equals("b")) {
vert = 2;
} else if (v.equals("c")) {
vert = 3;
} else if (v.equals("d")) {
vert = 4;
} else if (v.equals("e")) {
vert = 5;
} else if (v.equals("f")) {
vert = 6;
} else if (v.equals("g")) {
vert = 7;
} else if (v.equals("h")) {
vert = 8;
} else if (v.equals("i")) {
vert = 9;
}
return (vert - 1) * 64 + "_" + (hor - 1) * 64;
}
void moveToQuadrant(String v, String h) throws Exception {
int up = 1;
int down = 2;
int left = 3;
int right = 4;
String destination = getQuadrant(v, h); //y_x
int destX = Integer.valueOf(destination.substring(destination.indexOf("_") + 1));
int destY = Integer.valueOf(destination.substring(0, destination.indexOf("_")));
if (tankX < destX) {
int i = (destX - tankX) / 64;
while (i > 0) {
move(right);
i--;
}
} else {
int i = (tankX - destX) / 64;
while (i > 0) {
move(left);
i--;
}
}
if (tankY < destY) {
int i = (destY - tankY) / 64;
while (i > 0) {
move(down);
i--;
}
} else {
int i = (tankY - destY) / 64;
while (i > 0) {
move(up);
i--;
}
}
}
// Magic bellow. Do not worry about this now, you will understand everything in this course.
// Please concentrate on your tasks only.
final int BF_WIDTH = 576;
final int BF_HEIGHT = 576;
public static void main(String[] args) throws Exception {
BattleFieldTemplate_MoveToQuadrant bf = new BattleFieldTemplate_MoveToQuadrant();
bf.runTheGame();
}
public BattleFieldTemplate_MoveToQuadrant() throws Exception {
JFrame frame = new JFrame("BATTLE FIELD, DAY 2");
frame.setLocation(500, 150);
frame.setMinimumSize(new Dimension(BF_WIDTH, BF_HEIGHT + 22));
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.getContentPane().add(this);
frame.pack();
frame.setVisible(true);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
int i = 0;
Color cc;
for (int v = 0; v < 9; v++) {
for (int h = 0; h < 9; h++) {
if (COLORDED_MODE) {
if (i % 2 == 0) {
cc = new Color(252, 241, 177);
} else {
cc = new Color(233, 243, 255);
}
} else {
cc = new Color(180, 180, 180);
}
i++;
g.setColor(cc);
g.fillRect(h * 64, v * 64, 64, 64);
}
}
g.setColor(new Color(255, 0, 0));
g.fillRect(tankX, tankY, 64, 64);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment