‘壹’ java题目:骑士周游
==========================================================
如果单纯只要解法,貌似用递归更好一点。。。
==========================================================
public class KnightTraval{
public static void main(String[] args){
long startTime=System.currentTimeMillis();
Knight me=new Knight(new Grid(0,0));
Grid[] result=me.getPath();
for(Grid g:result){
System.out.format("%1$c%2$d-->",g.column()+'A',g.row()+1);
}
System.out.println("结束");
System.out.format("耗时%1$d毫秒\n",System.currentTimeMillis()-startTime);
}
}
class Knight{
private Grid start;
private boolean[][] arrived;
public Knight(Grid start){
this.start=start;
arrived=new boolean[8][8];
}
public Grid[] getPath(){
Grid[] result=new Grid[64];
for(int i=0;i<64;i++){
arrived[i/8][i%8]=false;
}
arrived[start.row()][start.column()]=true;
result[0]=start;
if(next(result,1)){
return result;
}
else{
return null;
}
}
private boolean next(Grid[] path,int step){
Grid[] next=path[step-1].optimizeNext();
int x,y;
for(int i=0;i<next.length;i++){
x=next[i].column();
y=next[i].row();
if(!arrived[y][x]){
arrived[y][x]=true;
path[step]=next[i];
if(step==63){
return true;
}
else{
if(next(path,step+1)){
return true;
}
}
arrived[y][x]=false;
}
}
return false;
}
}
class Grid{
private int x,y;
private static int[][] priority={
{2,3,4,4,4,4,3,2},
{3,4,6,6,6,6,4,3},
{4,6,8,8,8,8,6,4},
{4,6,8,8,8,8,6,4},
{4,6,8,8,8,8,6,4},
{4,6,8,8,8,8,6,4},
{3,4,6,6,6,6,4,3},
{2,3,4,4,4,4,3,2}
};
private static int[] deltaX=new int[]{1,1,-1,-1,2,2,-2,-2},deltaY=new int[]{2,-2,2,-2,1,-1,1,-1};
public Grid(int row,int column){
this.x=row;
this.y=column;
}
public Grid[] optimizeNext(){
Grid[] grids=next();
Grid temp;
for(int i=0;i<grids.length-1;i++){
for(int j=grids.length-1;j>i;j--){
if(priority[grids[j].y][grids[j].x]>priority[grids[j-1].y][grids[j-1].x]){
temp=grids[j];
grids[j]=grids[j-1];
grids[j-1]=temp;
}
}
}
return grids;
}
public Grid[] next(){
Grid[] grids=new Grid[priority[y][x]];
int index=0,i,newX,newY;
for(i=0;i<8;i++){
newX=x+deltaX[i];
newY=y+deltaY[i];
if(newX>=0&&newX<8&&newY>=0&&newY<8){
grids[index++]=new Grid(newX,newY);
}
}
return grids;
}
public int column(){
return x;
}
public int row(){
return y;
}
}
好慢啊。。。。。。
A1-->B3-->C5-->D3-->E5-->F3-->D4-->E6-->F4-->D5-->E3-->F5-->D6-->E4-->F6-->G4-->
H2-->F1-->G3-->H5-->G7-->E8-->C7-->A8-->B6-->D7-->F8-->H7-->G5-->H3-->G1-->E2-->
C1-->A2-->B4-->A6-->B8-->C6-->D8-->B7-->A5-->C4-->D2-->B1-->A3-->C2-->E1-->G2-->
H4-->G6-->H8-->F7-->H6-->G8-->E7-->C8-->A7-->B5-->C3-->A4-->B2-->D1-->F2-->H1-->
结束
耗时506658毫秒
这是优先选择可能性大的格。
把Knight类的next方法中的for循环方向改为反向就是先走可能性小的格子。运行了3次,每次都在1秒内完成。。。差这老多。。。
‘贰’ 以前玩过一款国外java游戏,忘记名字了,属于战棋策略回合制,英文版的,背景是中世纪欧洲,载入地图后,地图...
听你的描述很像英雄无敌系列,但是基础资料有所不同,你可以看看英雄无敌3、4,现在这个系列已经出到6了,很经典的一款游戏
‘叁’ 求一款java手机游戏,里面有骑士,有农民,农民会挖矿,有金矿,可以建兵营,可以建攻城车,可以建
好像还有采石厂,没有的话村民会放到主城里,主城可以让村民升级有黑暗时代,封建时代,城堡时代等,还有哨塔,建筑都可以升级,可以增加人的数量,开始都是黑的,村民或其他兵种走过后才亮!以前一直玩,就是忘了名字!可能是帝国时代的手机版吧!那时还是按键手机
‘肆’ 我的世界假面骑士在哪里能看
链接:https://pan..com/s/1GvZvll1JGPjs3GZVMENviw
《假面骑士Build》(原文:仮面ライダービルド/KamenRiderBuild)是“平成假面骑士”系列的第19部作品,于2017年播出。是该系列史上初次以“物理科学”作为设计原型之一。
本作标题以及主角骑士的名字“Build”,正是“创造、形成”的意义,这也符合主角的身份——青年天才物理学家,同时是拥有平成骑士史上最高IQ的主角。主角的变身道具是科研人员常用的“实验试剂瓶”,战斗就如同在科学实验一般。而且从主角口头禅“那么,开始实验吧”与“胜利的法则已然决定!”,可见物理实验与法则是本作中的一大线索。另一方面,导演也宣称本作世界观的规模是史上最大——涉及了整个日本列岛。
‘伍’ 找一款java游戏,在以前直板手机玩过
剑齿虎和铁傀儡都是宠物王国的精灵,但是华娱无线的宠物王国1-6开始都没有这个剧情,1和2没有剑齿虎和铁傀儡,3剑齿虎是二星的前期也没有,4开头是香吻草打幽暗精灵,5是骑士和螳螂,6是猫…
‘陆’ 求一款以前按键手机java玩过 建造房子 建造农民建造骑兵骑兵可以升级成龙骑士
以前按键手机玩过,造房子建造农民骑兵,这是一个很好的游戏
‘柒’ 以前java上的一款回合制游戏,主角是一个骑士,打怪会掉落一个怪物的魂魄
王者世界,3d回合制+格棋布阵,比一般都回合制多了一个格棋布局,玩家一个主公带8个佣兵,3X3棋局,也分远程近战,法师,分肉盾输出控制,佣兵都有转职,也要弄装备和武器,相当复杂的游戏,理解能力差,没意识的玩不起!
‘捌’ 一款比较老的JAVA游戏,回合制的,有很多职业,例如:贤者,神偷,御风使者,死亡骑士,剑士之类的
我有这个游戏,死亡骑士