Java课程设计之动物换位

发布时间:2026/11/6 3:08:52
Java课程设计之动物换位 7.2 Animal.javaimport java.awt.Graphics;import java.awt.Image;import java.io.File;public abstract class Animal { String name ; Point [] allCanAtPoint; //全部点位置 Point point; //动物当前所在的点位置 ViewForAnimal animalView; //动物的外观视图 public void setAtPoint(Point p) { if(p!=null){ point = p; point.setIsHaveAnimal(true); point.setAtPointAnimal(this); } } public Point getAtPoint() { return point; } public void setAllCanAtPoint(Point [] point){ allCanAtPoint = point; } public void setAnimalView(ViewForAnimal animalView) { this.animalView = animalView; animalView.setAnimal(this); } public ViewForAnimal getAnimalView() { return animalView; } public void setName(String s) { name = s; } public String getName() { return name; } public abstract boolean move();}7.3 LeftAnimal.javapublicclassLeftAnimalextendsAnimal{ publicbooleanmove(){ intk = -1; booleansuccessMove =false; Point p = getAtPoint(); for(inti=0;iallCanAtPoint.length;i++){ if(allCanAtPoint[i].equals(p)){ k = i; //找到动物当前所处的位置:allCanAtPoint[k] break; } } if(k==allCanAtPoint.length-1){//已经在最右面的点位置 returnfalse; } if(allCanAtPoint[k+1].isHaveAnimal()==false) { //前面位置上没有动物 this.setAtPoint(allCanAtPoint[k+1]); successMove =true; p.setAtPointAnimal(null); returnsuccessMove ; } if((k+1)==allCanAtPoint.length-1){ //前面位置上是已经到达终点的动物 returnfalse; } if(allCanAtPoint[k+2].isHaveAnimal()==false) {//前方隔位上没有动物 this.setAtPoint(allCanAtPoint[k+2]); successMove =true; p.setAtPointAnimal(null); returnsuccessMove ; } returnsuccessMove ; } }7.3 Point.javapublicclassPoint{intx,y;booleanhaveAnimal; Animal animal=null; //在该点位置上的动物publicvoidsetX(intx){this.x=x; }publicvoidsetY(inty){this.y=y; }publicbooleanisHaveAnimal(){returnhaveAnimal; }publicvoidsetIsHaveAnimal(booleanboo){ haveAnimal=boo; }publicintgetX(){returnx; }publicintgetY(){returny; }publicvoidsetAtPointAnimal(Animal animal){this.animal=animal;if(animal!=null) { haveAnimal =true; }else{ haveAnimal =false; } }publicAnimal getAtPointAnimal(){returnanimal; }}7.4 RightAnimal.javaimport java.awt.Graphics;import java.awt.Toolkit;import java.io.File;public class RightAnimal extends Animal{ boolean isLeft; File leftImage, rightImage; Toolkit tool; public boolean move(){ int k = -1; boolean successMove = false; Point p = getAtPoint(); for(int i=0;iallCanAtPoint.length;i++){ if(allCanAtPoint[i].equals(p)){ k = i; break; } } if(k==0){ //已经在最左面的点位置 return false; } if(allCanAtPoint[k-1].isHaveAnimal()==false) {//前面位置上没有动物 this.setAtPoint(allCanAtPoint[k-1]);//动物到达allCanAtPoint[k-1]点 successMove = true; p.setAtPointAnimal(null); //p点设置为无动物 return successMove ; } if((k-1)==0){ //前面位置上是已经到达终点的动物 return false; } if(allCanAtPoint[k-2].isHaveAnimal()==false) {//前方隔位上没有动物 this.setAtPoint(allCanAtPoint[k-2]); //动物到达allCanAtPoint[k-2]点 successMove = true; p.setAtPointAnimal(null); //p点设置为无动物 return successMove ;/

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询