導航:首頁 > 編程語言 > java迷宮

java迷宮

發布時間:2022-01-23 15:14:59

❶ 如何使用java開發一個迷宮小游戲

你得知道游戲的機制
迷宮需要些什麼
畫圖如何畫
怎麼判定是否走出迷宮
是否遇到牆,此路不通
搞懂了這些流程,做起來就快了

❷ java迷宮程序代碼

qq你了

❸ 急求一個用java寫的迷宮代碼

敢問LZ哪個學校的?LZ的題目和圖跟我准備做的題目一摸一樣啊,是不是JAVA書後面的?課程設計做 圖形用戶界面與演算法設計的?

❹ 求Java關於迷宮的演算法(用棧實現)

packagecom.Albert.LabyringhStack;

publicclassPoint{
intx;
inty;
intdirection;//direction指向此點附近的一個點應該有四個編號為1234
publicintgetX(){
returnx;
}
publicvoidsetX(intx){
this.x=x;
}
publicintgetY(){
returny;
}
publicvoidsetY(inty){
this.y=y;
}

publicintgetDirection(){
returndirection;
}
publicvoidsetDirection(intdirection){
this.direction=direction;
}
publicvoidaddDirection(){
this.direction++;

}
publicPoint(){
}
publicPoint(intx,inty){
super();
this.x=x;
this.y=y;
this.direction=1;
}
publicPoint(intx,inty,intdirection){
super();
this.x=x;
this.y=y;
this.direction=direction;
}

}
packagecom.Albert.LabyringhStack;

importjava.util.*;

publicclassLabyringhStack{

publicPointS;
publicPointF;
char[][]mazemap;
Stack<Point>path;

publicLabyringhStack(){
}
publicLabyringhStack(char[][]ma){//初始化存入數組
this.mazemap=newchar[ma.length][ma[0].length];
for(inti=0;i<ma.length;i++){
for(intj=0;j<ma[0].length;j++){//mazemap[0]必須有元素不可為空
this.mazemap[i][j]=ma[i][j];
}
}
S=returnPlace('S');
F=returnPlace('F');
}
publicPointreturnPlace(chars){//返回數組中字元的位置
Pointpoint=newPoint();
for(inti=0;i<this.mazemap.length;i++){
for(intj=0;j<this.mazemap[0].length;j++){//mazemap[0]必須有元素不可為空
if(this.mazemap[i][j]==s)
{point.setX(i);
point.setY(j);
point.setDirection(1);
}
}
}
returnpoint;
}
publiccharreturnChar(Pointpoint){
if(point.getX()>=0&&point.getY()>=0)
returnthis.mazemap[point.getX()][point.getY()];
else
return'#';
}
publicvoidreplacePlace(Pointpoint,chars){//更改特定位置處的字元
mazemap[point.getX()][point.getY()]=s;
}
publicvoidprintPath(){
Stack<Point>tempPath=newStack<Point>();
while(!path.empty()){//對棧進行反序
tempPath.push(path.pop());
}
while(!tempPath.empty()){
System.out.print("("+tempPath.peek().getX()+","+tempPath.pop().getY()+")");
}
}
publicbooleangetPath(){//取得路徑的演算法如果有路徑就返回真
path=newStack<Point>();
S.setDirection(1);
path.push(S);
replacePlace(S,'X');
while(!path.empty()){
PointnowPoint=path.peek();//取得當前位置
if(nowPoint.getX()==F.getX()&&nowPoint.getY()==F.getY()){
//printPath();
returntrue;
}
Pointtemp=newPoint();//存放下一個可走的位置
intfind=0;//標志是否可向下走
while(nowPoint.getDirection()<5&&find==0){
switch(nowPoint.getDirection()){
case1:temp=newPoint(nowPoint.getX(),nowPoint.getY()-1,1);break;//取得當前位置左邊的位置
case2:temp=newPoint(nowPoint.getX()+1,nowPoint.getY(),1);break;//取得當前位置下邊的位置
case3:temp=newPoint(nowPoint.getX(),nowPoint.getY()+1,1);break;//取得當前位置右邊的位置
case4:temp=newPoint(nowPoint.getX()-1,nowPoint.getY(),1);break;//取得當前位置上邊的位置
}
nowPoint.addDirection();//指向下一個需要驗證的點
if(returnChar(temp)=='O'||returnChar(temp)=='F')find=1;//如果能向下走則置為1
}
if(find==1){//如果可走就進棧
replacePlace(temp,'X');//設置成X防止回走
// printArr();
path.push(temp);
}else{//如果不可走就退棧
replacePlace(nowPoint,'O');
path.pop();
}
}
returnfalse;
}
publicvoidprintArr(){
for(inti=0;i<mazemap.length;i++){
for(intj=0;j<mazemap[0].length;j++){//mazemap[0]必須有元素不可為空
System.out.print(mazemap[i][j]);
}
System.out.println();
}
System.out.println();
}

}
packagecom.Albert.LabyringhStack;

publicclassMain{

/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
char[][]mazemap={
{'M','M','M','M','M','M','M','M'},
{'M','S','O','O','M','M','M','M'},
{'M','M','M','O','M','M','M','M'},
{'M','M','O','O','O','O','M','M'},
{'M','M','M','M','M','F','M','M'},
{'M','M','M','M','M','M','M','M'},
{'M','M','M','M','M','M','M','M'}
};
LabyringhStacksolution=newLabyringhStack(mazemap);
if(solution.getPath()){
System.out.print("迷宮路徑如下:");
solution.printPath();
}
else{
System.out.println("沒有可走的路");
}
}
}

❺ java棧實現走迷宮

首先,你要知道走迷宮的思路:就是遇到岔路都往一個方向,比如往右,遇到死路就回頭,回頭遇到岔路繼續往右。

❻ Java迷宮的游戲

這個太簡單了。。我用類C的代碼寫給你看看。。。直接手寫的,不調試了
,誰讓你就給這點分呢。。。。其實分啥都不是。。。

其實就是搜索,為了簡單我就用深度優先了

int dir[4][2]={
{1,0},
{-1,0},
{0,1},
{0,-1}
};//用來控制方向的數組
int flag = 0;
int map[][];//這個就是你的迷宮

void dfs( int x, int y ){
if( flag ){
return;
}
map[x][y] = 0;
for(int i = 0; i < 4; i++ ){
int dx = x + dir[i][0];
int dy = y + dir[i][1];
if( 0 <= dx && dx < 行數 && 0 <= dy && dy < 列數 && map[dx][dy] == 1 ){
dfs(dx,dy);
}
}
map[x][y] = 1;
}

這個就是回溯函數了。。。。

❼ java怎麼生成迷宮地圖

//作者:zhongZw

❽ Java解決迷宮問題

以一個M×N的長方陣表示迷宮,0和1分別表示迷宮中的通路和障礙。設計一個程序,對任意設定的迷宮,求出一條從入口到出口的通路,或得出沒有通路的結論。
(1) 根據二維數組,輸出迷宮的圖形。
(2) 探索迷宮的四個方向:RIGHT為向右,DOWN向下,LEFT向左,UP向上,輸出從入口到出口的行走路徑。

❾ java迷宮圖形界面

這是我之前課程設計做的一個迷宮,Swing做的,發在javaeye的博客上了,有打包成jar的,安裝了jdk可以直接雙擊運行,有源碼,還有我寫的一個說明文檔,網址如下:
http://zpsailor.javaeye.com/admin/blogs/651141
自己下載下吧,我就不給你發到郵箱了。

閱讀全文

與java迷宮相關的資料

熱點內容
動態庫在程序編譯時會被連接到 瀏覽:759
python超簡單編程 瀏覽:258
獲取命令方 瀏覽:976
怎樣製作文件夾和圖片 瀏覽:58
調研編譯寫信息 瀏覽:861
python馮諾依曼 瀏覽:418
同時安裝多個app有什麼影響 瀏覽:254
奧術殺戮命令宏 瀏覽:183
用sdes加密明文字母e 瀏覽:360
單片機原理及應用試題 瀏覽:424
易語言開啟指定文件夾 瀏覽:40
馬思純參加密室大逃脫 瀏覽:322
文件夾冬季澆築溫度 瀏覽:712
京東有返點的aPp叫什麼 瀏覽:603
如何查看u點家庭伺服器是幾兆 瀏覽:262
python應用介面怎麼接 瀏覽:67
腐蝕怎麼進不去伺服器啊 瀏覽:359
linuxcpiogz 瀏覽:631
安卓中的布局是什麼文件 瀏覽:397
dex反編譯部分代碼無法查看 瀏覽:464