初级或中级。
在Java领域中,能独立完成拼图小游戏的代码,可以算作初级或中级水平。这需要开发者具备Java基础语法和面向对象编程的基本知识,以及对Java图形界面设计和事件处理的一定了解。
Java是一种广泛使用的计算机编程语言,具有简单、面向对象、跨平台等特点,Java编程语言由Sun Microsystems于1995年推出,现在是Oracle公司的产品。
public static void cut(String srcImageFile, String descDir, int destWidth,
int destHeight) {
try {
Image img;
ImageFilter cropFilter;
// 读取源图像
BufferedImage bi = ImageIOread(new File(srcImageFile));
int srcWidth = bigetHeight(); // 源图宽度
int srcHeight = bigetWidth(); // 源图高度
if (srcWidth > destWidth && srcHeight > destHeight) {
Image image = bigetScaledInstance(srcWidth, srcHeight,
ImageSCALE_DEFAULT);
destWidth = 200; // 切片宽度
destHeight = 150; // 切片高度
int cols = 0; // 切片横向数量
int rows = 0; // 切片纵向数量
// 计算切片的横向和纵向数量
if (srcWidth % destWidth == 0) {
cols = srcWidth / destWidth;
} else {
cols = (int) Mathfloor(srcWidth / destWidth) + 1;
}
if (srcHeight % destHeight == 0) {
rows = srcHeight / destHeight;
} else {
rows = (int) Mathfloor(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 = ToolkitgetDefaultToolkit()createImage(
new FilteredImageSource(imagegetSource(),
cropFilter));
BufferedImage tag = new BufferedImage(destWidth,
destHeight, BufferedImageTYPE_INT_RGB);
Graphics g = taggetGraphics();
gdrawImage(img, 0, 0, null); // 绘制缩小后的图
gdispose();
// 输出为文件
ImageIOwrite(tag, "JPEG", new File(descDir
+ "pre_map_" + i + "_" + j + "jpg"));
}
}
}
} catch (Exception e) {
eprintStackTrace();
}
}
最近木有时间上网,偶然看到该题,没有现成的程序,给您个思路吧,在程序中本身是存的是一个二进制矩阵,如要拼接只需将两张转换成两个矩阵然后合并成一个大矩阵即可,从哪个像素开始都可以从矩阵中得到数据,切割亦是如此,计算一下便可。不知对您是否有帮助
你有几张,然后将名按顺序排好,如1jpg 2jpg 3jpg
然后取一个随机数再与总数去取余
或者直接取与总数相同的随机数
如果不好更名的话 将名放入一个数据组 再取随机数 作为数组的下标
典型的基本功不过关啊。。
建议回家好好看看基本语法部分。
关于你问的那几点,
第一处:javautil是jdk自带的类库中的一个包,包含了各种数据结构的实现方法,以及其他诸如日期类、观察者类、迭代器类、字符扫描器、正则表达式等种种的实用工具类。。
第二处:implements Comparable是指该类实现了Comparable接口。
implements是java中实现接口用的关键字。
Comparable是一个接口,可让实现它的对象之间通过compareTo()方法比较大小。
第三处:this,表示在当前对象中引用当前对象自身的关键字。
要想得到最优的就需要使用广度优先搜索,九宫的所有排列有9!种,也就是362880种排法,数据量是非常大的,使用广度搜索,需要记住每一个结点的排列形式,要是用数组记录的话会占用很多的内存,可以把数据进行适当的压缩。使用DWORD形式保存,压缩形式是每个数字用3位表示,这样就是3×9=27个字节,由于8的二进制表示形式1000,不能用3位表示,使用了一个小技巧就是将8表示为000,然后用多出来的5个字表示8所在的位置,就可以用DWORD表示了。用移位和或 *** 作将数据逐个移入,比乘法速度要快点。定义了几个结果来存储遍历到了结果和搜索完成后保存最优路径。
以上就是关于java中能独立完成拼图小游戏的代码算什么水平全部的内容,包括:java中能独立完成拼图小游戏的代码算什么水平、请问java怎样实现拼图游戏图片的载入,就是图片怎么分割成一小张一小张的,请详讲。谢谢,最好有代码、求一个用java编写的图片拼接程序(全景图拼接问题)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)