[java]代码库
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package tank;
import java.util.Vector;
class Tank {
int x = 0, y = 0;
int fangxiang;
int sudu = 9;
boolean shengming = true;
public int getSudu() {
return sudu;
}
public void setSudu(int sudu) {
this.sudu = sudu;
}
public int getFangxiang() {
return fangxiang;
}
public void setFangxiang(int fangxiang) {
this.fangxiang = fangxiang;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public Tank(int x, int y) {
this.x = x;
this.y = y;
}
}
class DiTank extends Tank implements Runnable {
int sudu = 2;
Vector<zidan> dzd = new Vector<>();
Vector<DiTank> dtk = new Vector<>();
public DiTank(int x, int y) {
super(x, y);
}
public boolean huxiangpengzhuang() {
boolean b = false;
switch (this.fangxiang) {
case 0:
for (int i = 0; i < dtk.size(); i++) {
DiTank dt = dtk.get(i);
if (dt != this) {
if (dt.fangxiang == 0 || dt.fangxiang == 2) {
if (this.x > dt.x && this.x < dt.x + 20 && this.y >= dt.y && this.y <= dt.y + 30) {
return true;
}
if (this.x + 20 >= dt.x && this.x + 20 <= dt.x + 20 && this.y >= dt.y && this.y <= dt.y + 30) {
return true;
}
}
if (dt.fangxiang == 3 || dt.fangxiang == 1) {
if (this.x >= dt.x && this.x <= dt.x + 30 && this.y >= dt.y && this.y <= dt.y + 20) {
return true;
}
if (this.x + 20 >= dt.x && this.x + 20 <= dt.x + 30 && this.y >= dt.y && this.y <= dt.y + 20) {
return true;
}
}
}
}
case 1:
for (int i = 0; i < dtk.size(); i++) {
DiTank dt = dtk.get(i);
if (dt != this) {
if (dt.fangxiang == 0 || dt.fangxiang == 2) {
if (this.x > dt.x && this.x < dt.x + 20 && this.y >= dt.y && this.y <= dt.y + 30) {
return true;
}
if (this.x >= dt.x && this.x <= dt.x + 20 && this.y + 20 >= dt.y && this.y + 20 <= dt.y + 30) {
return true;
}
}
if (dt.fangxiang == 3 || dt.fangxiang == 1) {
if (this.x >= dt.x && this.x <= dt.x + 30 && this.y >= dt.y && this.y <= dt.y + 20) {
return true;
}
if (this.x >= dt.x && this.x <= dt.x + 30 && this.y + 20 >= dt.y && this.y + 20 <= dt.y + 20) {
return true;
}
}
}
}
case 2:
for (int i = 0; i < dtk.size(); i++) {
DiTank dt = dtk.get(i);
if (dt != this) {
if (dt.fangxiang == 0 || dt.fangxiang == 2) {
if (this.x > dt.x && this.x < dt.x + 20 && this.y + 30 >= dt.y && this.y + 30 <= dt.y + 30) {
return true;
}
if (this.x + 20 >= dt.x && this.x + 20 <= dt.x + 20 && this.y + 30 >= dt.y && this.y <= dt.y + 30) {
return true;
}
}
if (dt.fangxiang == 3 || dt.fangxiang == 1) {
if (this.x >= dt.x && this.x <= dt.x + 30 && this.y + 30 >= dt.y && this.y <= dt.y + 20) {
return true;
}
if (this.x + 20 >= dt.x && this.x + 20 <= dt.x + 30 && this.y + 30 >= dt.y && this.y <= dt.y + 20) {
return true;
}
}
}
}
case 3:
for (int i = 0; i < dtk.size(); i++) {
DiTank dt = dtk.get(i);
if (dt != this) {
if (dt.fangxiang == 0 || dt.fangxiang == 2) {
if (this.x + 30 > dt.x && this.x + 30 < dt.x + 20 && this.y >= dt.y && this.y <= dt.y + 30) {
return true;
}
if (this.x + 30 >= dt.x && this.x + 30 <= dt.x + 20 && this.y + 20 >= dt.y && this.y + 20 <= dt.y + 30) {
return true;
}
}
if (dt.fangxiang == 3 || dt.fangxiang == 1) {
if (this.x + 30 >= dt.x && this.x + 30 <= dt.x + 30 && this.y >= dt.y && this.y <= dt.y + 20) {
return true;
}
if (this.x + 30 >= dt.x && this.x + 30 <= dt.x + 30 && this.y + 20 >= dt.y && this.y + 20 <= dt.y + 20) {
return true;
}
}
}
}
break ;
}
return false;
}
@Override
public void run() {
while (true) {
switch (this.fangxiang) {
case 0:
for (int i = 0; i < 30; i++) {
if (y > 0 && !huxiangpengzhuang()) {
y -= sudu;
}
try {
Thread.sleep(50);
} catch (Exception e) {
}
}
break;
case 1: {
for (int i = 0; i < 30; i++) {
if (x > 0&& !huxiangpengzhuang()) {
x -= sudu;
}
try {
Thread.sleep(50);
} catch (Exception e) {
}
}
break;
}
case 2: {
for (int i = 0; i < 30; i++) {
if (y < 250 && !huxiangpengzhuang()) {
y += sudu;
}
try {
Thread.sleep(50);
} catch (Exception e) {
}
}
break;
}
case 3: {
for (int i = 0; i < 30; i++) {
if (x < 360 && !huxiangpengzhuang() ) {
x += sudu;
}
try {
Thread.sleep(50);
} catch (Exception e) {
}
}
break;
}
}
this.fangxiang = (int) (Math.random() * 4);
if (this.shengming == false) {
break;
}
if (shengming) {
if (dzd.size() < 100) {
zidan zd = null;
switch (fangxiang) {
case 0:
zd = new zidan(x + 10, y, 0);
dzd.add(zd);
break;
case 1:
zd = new zidan(x, y + 10, 1);
dzd.add(zd);
break;
case 2:
zd = new zidan(x + 10, y + 30, 2);
dzd.add(zd);
break;
case 3:
zd = new zidan(x + 30, y + 10, 3);
dzd.add(zd);
break;
}
Thread t4 = new Thread(zd);
t4.start();
}
}
}
}
}
class MyTank extends Tank {
Vector<zidan> aa = new Vector<zidan>();
zidan zd = null;
public MyTank(int x, int y) {
super(x, y);
}
public void xiangshang() {
y -= sudu;
}
public void xiangzuo() {
x -= sudu;
}
public void xiangxia() {
y += sudu;
}
public void xiangyou() {
x += sudu;
}
public void fszd() {
switch (this.fangxiang) {
case 0:
zd = new zidan(x + 10, y, 0);
aa.add(zd);
break;
case 1:
zd = new zidan(x, y + 10, 1);
aa.add(zd);
break;
case 2:
zd = new zidan(x + 10, y + 30, 2);
aa.add(zd);
break;
case 3:
zd = new zidan(x + 30, y + 10, 3);
aa.add(zd);
break;
}
Thread t = new Thread(zd);
t.start();
}
}
class zidan implements Runnable {
int x, y;
int fangxiang;
int sudu = 10;
boolean shengming = true;
public zidan(int x, int y, int fangxiang) {
this.x = x;
this.y = y;
this.fangxiang = fangxiang;
}
@Override
public void run() {
while (true) {
try {
Thread.sleep(100);
// System.out.println("!!!");
} catch (InterruptedException e) {
System.out.println("ERROR:" + e);
}
switch (this.fangxiang) {
case 0:
y -= sudu;
break;
case 1:
x -= sudu;
break;
case 2:
y += sudu;
break;
case 3:
x += sudu;
break;
}
if (x < 0 || x > 500 || y < 0 || y > 400) {
this.shengming = false;
break;
}
}
}
}
class BaoZha {
int x, y;
int shengcunqi = 9;
boolean shengming = true;
public BaoZha(int x, int y) {
this.x = x;
this.y = y;
}
public void suqsd() {
if (shengcunqi > 0) {
shengcunqi--;
} else {
this.shengming = false;
}
}
}
初级程序员
by: 等神 发表于:2015-12-21 15:34:49 顶(0) | 踩(0) 回复
是在一个Class 中吗?
回复评论