自己写的一个小的java作业,第一次上传CSDN,原创的,最近在玩帝国3,然后根据石头剪刀布,炮车骑兵长枪兵的克制规则写了一下,花了一个上午的时间。
import java.util.Random;
interface war {
void xuanze();//显示派兵选项,要重写
void fight(int f);//1到4局显示敌方派兵,要重写
void kill(int they,int we,int fen);//派兵对阵,以及该局分数,要重写
void deFen();//显示当前得分,要重写
void juezhan();//显示决战信息,要重写
void warEnd();//战争结局,要重写
void seeFen(int juezhanFen);//显示决战分数,以及1求和谈判2继续选项,要重写
void talks(int they,int we);//谈判,要重写
}
import java.util.Random;
abstract class enemy implements war{
private static int theyFen=0;//私有属性只能get和set获取和修改
private static int weFen=0;
private final int huoshengFen=100;
private final int juezhanFen=(new Random().nextInt(3))*100+300;//随机300、400、500
public int getHuoshengFen() {
return huoshengFen;
}
public int getJuezhanFen() {
return juezhanFen;
}
public static int getTheyFen() {
return theyFen;
}
public static void setTheyFen(int theyFen) {
enemy.theyFen = theyFen;
}
public static int getWeFen() {
return weFen;
}
public static void setWeFen(int weFen) {
enemy.weFen = weFen;
}
public void fight(int f){//在子类重写
System.out.println("第???局:敌方派出了???,请指挥作战!(1、派出???2、派出???3、派出???)");
}
public void xuanze(){
System.out.println("战争开始了,长枪兵克制骑兵,骑兵克制炮车,炮车克制长枪兵:");
System.out.println("1、派出长枪兵");
System.out.println("2、派出骑兵");
System.out.println("3、派出炮车");
System.out.println("共5局:第1局到第4局每局100分,第五局为决战局,决战局获胜分为300到500分,战争结束时计分多者获胜!");
}
public void deFen(){;
System.out.println("当前得分:");
System.out.println("我方:"+this.weFen+",敌方:"+this.theyFen);
}
public void warEnd(){
deFen();
if((this.weFen-this.theyFen)>=300)
{
System.out.println("这场战役对面弱不禁风,你赢得毫无悬念!");
}
else if(this.weFen>this.theyFen) {
System.out.println("你赢得了这场战役。");
}else if(this.weFen<this.theyFen){
System.out.println("你输了这场战役。");
}else if(this.weFen==this.theyFen){
System.out.println("这场战役没有胜负,你们结成了同盟!");
}
}
public void kill(int they,int we,int fen){//fen有huoshengFen和juezhanFen
if(they==1) {
if(we==1) {
System.out.println("你的长枪兵和敌方长枪兵,旗鼓相当,没有分出胜负");
}else if(we==2) {
System.out.println("你的骑兵被敌方长枪兵干翻了");
theyFen+=fen;
}else if(we==3) {
System.out.println("你的炮车干翻了敌方长枪兵");
weFen+=fen;
}else {
System.out.println("指挥错误,你没有派兵!");
theyFen+=fen;
}
}else if(they==2) {
if(we==1) {
System.out.println("你的长枪兵干翻了敌方骑兵");
weFen+=fen;
}else if(we==2) {
System.out.println("你的骑兵和敌方骑兵,旗鼓相当,没有分出胜负");
}else if(we==3) {
System.out.println("你的炮车被敌方骑兵干翻了");
theyFen+=fen;
}else {
System.out.println("指挥错误,你没有派兵!");
theyFen+=fen;
}
}else if(they==3) {
if(we==1) {
System.out.println("你的长枪兵被敌方炮车干翻了");
theyFen+=fen;
}else if(we==2) {
System.out.println("你的骑兵干翻了敌方炮车");
weFen+=fen;
}else if(we==3) {
System.out.println("你的炮车和敌方炮车同归于尽了");
}else {
System.out.println("指挥错误,你没有派兵!");
theyFen+=fen;
}
}
}
public void juezhan(){
System.out.println("决战局到了,本局你不知道敌方出兵信息:");
System.out.println("1、派出长枪兵");
System.out.println("2、派出骑兵");
System.out.println("3、派出炮车");
}
public void seeFen(int juezhanFen){
System.out.println("\n决战分:"+juezhanFen);
System.out.println("0、求和与谈判");
System.out.println("1、继续");
}
public void talks(int they,int we){
if(they>we){
System.out.print("你付出了一点代价,");
}if(they<we){
System.out.print("对方付出了一点代价,");
}
}
}
public class pikeman extends enemy{
String opponent="长枪兵";
@Override
public void fight(int f){
System.out.println("第"+f+"局:敌方派出了"+this.opponent+",请指挥作战!(1、派出长枪兵2、派出骑兵3、派出炮车)");
}
}
public class cavalryman extends enemy{
String opponent="骑兵";
@Override
public void fight(int f){
System.out.println("第"+f+"局:敌方派出了"+this.opponent+",请指挥作战!(1、派出长枪兵2、派出骑兵3、派出炮车)");
}
}
public class gunCarrier extends enemy{
String opponent="炮车";
@Override
public void fight(int f){
System.out.println("第"+f+"局:敌方派出了"+this.opponent+",请指挥作战!(1、派出长枪兵2、派出骑兵3、派出炮车)");
}
}
import java.util.Random;
import java.util.Scanner;
public class warStart {
public static void main(String[] args) {
pikeman p=new pikeman();
cavalryman c=new cavalryman();
gunCarrier g=new gunCarrier();
p.xuanze();
Scanner sc = new Scanner(System.in);
int a;
int randomNumber;
for(int i = 1; i<=4;i++){
randomNumber=new Random().nextInt(3)+1; //随机1-3
if(randomNumber==1) {
p.fight(i);
}else if(randomNumber==2) {
c.fight(i);
}else if(randomNumber==3) {
g.fight(i);
}
a = sc.nextInt();
p.kill(randomNumber,a,p.getHuoshengFen());//一般场分数
p.deFen();
}
p.seeFen(p.getJuezhanFen());//get查看决战分,同时显示选项1、求和谈判还是2、继续
a = sc.nextInt();
if(a==0){
p.talks(p.getTheyFen(),p.getWeFen());
p.setTheyFen(0);//求和谈判后双方分数为0
p.setWeFen(0);//求和谈判后双方分数为0
p.warEnd();
}else{
p.juezhan();
randomNumber=new Random().nextInt(3)+1;
a = sc.nextInt();
p.kill(randomNumber,a,p.getJuezhanFen());//决战场分数
p.warEnd();
}
}
}
public class 说明 {
//碾压,兵种克制,长枪兵克制骑兵,骑兵克制炮车,炮车克制长枪兵
//赢了战斗获得分数
//规则类似石头剪刀布
//谢裴赐原创,使用setter/getter, static, final, abstract,@Override等语法要素。
//war接口,enemy抽象使用war接口重写方法,cavalryman(骑兵)、gunCarrier(炮车)、pikeman(长枪兵)是enemy子类
//warStart就是测试类
}