導航:首頁 > 編程語言 > java拼圖演算法

java拼圖演算法

發布時間:2021-10-26 02:33:22

① 如何用java編寫一個圖片的拼圖游戲

說說思路:
1 本身他不是一個完整的圖片,應該被切分成數組,該數組為拼圖成功的標准
2 將該數組復制,然後打散元素的順序
3 初始化一個二維數組方格矩陣
4 允許用戶通過滑鼠事件將 備選圖案中的某個元素放置到二維數組方格矩陣中,並記載其順序
5 直到所有的方格被填滿,與答案數組的元素順序比較,給出結果
以上是實現拼圖的關鍵思路,其他情況還要考慮,如允許從方格中撤出圖像或者與其他圖像調整位置,僅代表個人不成熟的想法,希望對你能有所幫助,祝你好運!

② 怎麼用Java實現拼圖游戲,求思維和代碼

用ImageIO可以嘗試哈。

③ 請問java怎樣實現拼圖游戲圖片的載入,就是圖片怎麼分割成一小張一小張的,請詳講。謝謝,最好有代碼

public static void cut(String srcImageFile, String descDir, int destWidth,
int destHeight) {
try {
Image img;
ImageFilter cropFilter;
// 讀取源圖像
BufferedImage bi = ImageIO.read(new File(srcImageFile));
int srcWidth = bi.getHeight(); // 源圖寬度
int srcHeight = bi.getWidth(); // 源圖高度
if (srcWidth > destWidth && srcHeight > destHeight) {
Image image = bi.getScaledInstance(srcWidth, srcHeight,
Image.SCALE_DEFAULT);
destWidth = 200; // 切片寬度
destHeight = 150; // 切片高度
int cols = 0; // 切片橫向數量
int rows = 0; // 切片縱向數量
// 計算切片的橫向和縱向數量
if (srcWidth % destWidth == 0) {
cols = srcWidth / destWidth;
} else {
cols = (int) Math.floor(srcWidth / destWidth) + 1;
}
if (srcHeight % destHeight == 0) {
rows = srcHeight / destHeight;
} else {
rows = (int) Math.floor(srcHeight / destHeight) + 1;
}
// 循環建立切片
// 改進的想法:是否可用多線程加快切割速度
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
// 四個參數分別為圖像起點坐標和寬高
// 即: CropImageFilter(int x,int y,int width,int height)
cropFilter = new CropImageFilter(j * 200, i * 150,
destWidth, destHeight);
img = Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(image.getSource(),
cropFilter));
BufferedImage tag = new BufferedImage(destWidth,
destHeight, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(img, 0, 0, null); // 繪制縮小後的圖
g.dispose();
// 輸出為文件
ImageIO.write(tag, "JPEG", new File(descDir
+ "pre_map_" + i + "_" + j + ".jpg"));
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}

④ 我要完成一個java拼圖游戲3*3

不一定崔在只是給每個人的想法不一樣的只要你相信那就是有聯系不相信就額是沒聯系一切都由你自己決定只有自己知道才是真的

⑤ JAVA 編程,演算法,詳細在圖里, 求代碼、詳細解答

(a)It is insert sort algorithm of the above code segment.上面的代碼是插入排序演算法

(b)

EXAMPLE

AEXMPLE

AEMXPLE

AEMPXLE

AELMPXE

AEELMPX

(c)

Require 6 sorting steps.

補充完整的插入排序演算法的Java程序如下

public class A{

public static void main(String[] args){

char[] a={'E','X','A','M','P','L','E'};

char v;

int i,j,n=a.length,count=0;

for (i =1; i < n; i++){

v = a[i];

j = i;

while(j > 0 && a[j-1] > v) {

a[j] = a[j-1];

j--;

}

a[j] = v;

count++;

System.out.println(new String(a));

}

System.out.println("Require "+count+" sorting steps.");

}

}

⑥ java 數字拼圖 演算法

要想得到最優的就需要使用廣度優先搜索,九宮的所有排列有9!種,也就是362880種排法,數據量是非常大的,使用廣度搜索,需要記住每一個結點的排列形式,要是用數組記錄的話會佔用很多的內存,可以把數據進行適當的壓縮。使用dword形式保存,壓縮形式是每個數字用3位表示,這樣就是3×9=27個位元組,由於8的二進製表示形式1000,不能用3位表示,使用了一個小技巧就是將8表示為000,然後用多出來的5個字表示8所在的位置,就可以用dword表示了。用移位和或操作將數據逐個移入,比乘法速度要快點。定義了幾個結果來存儲遍歷到了結果和搜索完成後保存最優路徑。

⑦ 1200分跪求JAVA數字拼圖游戲源代碼!

我有兩個拼圖游戲,代碼太多了,貼不上來。
可以在網路在線問我拿,如果看了代友有什麼地方不懂也可以問我。

⑧ Java的圖像演算法

//沒聽懂你的需求,能更清楚一些嗎?

我以前的一個程序使用BufferedImage讀取圖像像素點的RGB值,例子在下面。

你從例子中了解一下用一個整數表示RGB顏色的方法。然後用setRGB方法滿足你的要求。

方法:
java.awt.image.BufferedImage

public int getRGB(int x,int y)
返回默認 RGB 顏色模型 (TYPE_INT_ARGB) 和默認 sRGB 顏色空間中的整數像素。如果此默認模型與該圖像的 ColorModel 不匹配,則發生顏色轉換。在使用此方法所返回的數據中,每個顏色分量只有 8 位精度。

public void setRGB(int x, int y,int rgb)
將此 BufferedImage 中的像素設置為指定的 RGB 值。假定該像素使用默認 RGB 顏色模型、TYPE_INT_ARGB 和默認 sRGB 顏色空間。對於具有 IndexColorModel 的圖像,則選擇最接近的顏色的索引。
參數:
x - 要設置的像素的 X 坐標
y - 要設置的像素的 Y 坐標
rgb - RGB 值

例子:(獲取RGB值)---了解一下用一個整數表示RGB顏色的方法
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;

public class Test{
public static void main(String args[]) {
int[] rgb = new int[3];

File file = new File("a.bmp");
BufferedImage bi=null;
try{
bi = ImageIO.read(file);
}catch(Exception e){
e.printStackTrace();
}

int width=bi.getWidth();
int height=bi.getHeight();
int minx=bi.getMinX();
int miny=bi.getMinY();
System.out.println("width="+width+",height="+height+".");
System.out.println("minx="+minx+",miniy="+miny+".");

for(int i=minx;i<width;i++){
for(int j=miny;j<height;j++){
//System.out.print(bi.getRGB(jw, ih));
int pixel=bi.getRGB(i, j);
rgb[0] = (pixel & 0xff0000 ) >> 16 ;
rgb[1] = (pixel & 0xff00 ) >> 8 ;
rgb[2] = (pixel & 0xff );
System.out.println("i="+i+",j="+j+":("+rgb[0]+","+rgb[1]+","+rgb[2]+")");

}
}

}

}

⑨ 這是java拼圖游戲代碼中的一部分,誰能幫我解讀一下啊 我根本看不明白啊

生成不重復的亂序標識,切割圖片,用亂序的標識生成隨機的圖片

閱讀全文

與java拼圖演算法相關的資料

熱點內容
有什麼app可以督促睡覺 瀏覽:835
考研背單詞什麼app好用 瀏覽:850
usb數據線電源怎麼加 瀏覽:933
主角老婆多的都市小說 瀏覽:920
漲奶後吸奶的小說 瀏覽:677
做數據軟體有哪些 瀏覽:213
48天58天68天 瀏覽:599
午馬電影推薦1001午馬電影推薦 瀏覽:265
數模混合模擬工具 瀏覽:160
在線把pdf文件變小 瀏覽:994
都市言情txt超肉 瀏覽:177
泰國帶女兒打泰電影大全 瀏覽:31
歐美做鴨電影 瀏覽:504
遍歷本地文件內容 瀏覽:610
大數據互聯網測試 瀏覽:233
首營供應商提供哪些資料文件 瀏覽:386
經典風月影視 瀏覽:666
生孩子電影 瀏覽:667
iphone中音樂怎麼刪除 瀏覽:542
關於愛情韓劇電影免費觀看 瀏覽:941

友情鏈接