head first java第24页的泳池迷宫,我做出来的和答案不一样

head first java第24页的泳池迷宫,我做出来的和答案不一样,第1张

想了一个晚上才想出来,来简单答一下。

while(x<4)

空格不填

if(x<1)

填“a”," ",

x=x-1

if(x<1)

填"noise"

if(x==1)

填"annoys"

if(x>1)

填"an"," oyster"(这个词前面自带空格)

x=x+2

然后你们在补充一下格式就行啦!

这个没啥含义啊,一个对象类

private int x;

private int y;

两个属性,从字面意义上说x是横坐标,y是纵坐标。

public Move(){

}无参数的构造方法

public Move(int x, int y){

thisx = x;

thisy = y;

}有参数的构造方法

下面那些get方法时用来访问对象属性的,set方法是给对象属性赋值的。

给你举个例子你就知道了

Move m1=new Move();这里声明了一个Move类的对象,调用的是无参数的构造方法,也就是说m1的x和y都是没有赋值的。但是呢,int类型默认值是0;

然后你可以通过set方法去给属性赋值m1setX(2),然后通过get方法取值m1getX()这个时候就能取到2了。

而有参数的构造方法就是在声明对象的时候直接赋值给元素

Move m2=new Move(1,2);这个时候你再用get方法去取,就会有x=1,y=2了,就是省掉了用set方法赋值的一步。

你还是先看看什么是对象,什么是构造函数,还有get,set方法的作用吧

适合用JButton来实现,实例如下:

import javaawtColor;

import javaawtGridLayout;

import javaxswingJButton;

import javaxswingJFrame;

public class MiGong extends JFrame

{

private static final long serialVersionUID = 1L;

private static final int ROW = 8;

private static final int COL = 9;

int[][] map = {

{2,0,1,0,0,0,1,0},

{0,0,1,0,0,0,1,0},

{0,0,1,0,1,1,0,0},

{0,1,1,1,0,0,0,0},

{0,0,0,1,0,0,0,0},

{0,1,0,0,0,1,0,1},

{0,1,1,1,1,0,0,1},

{1,1,0,0,0,1,0,1},

{1,1,0,0,0,0,0,3}

};

public static void main ( String args[] )

{

new MiGong ();

}

public MiGong ()

{

setTitle ("迷宫");

setLayout (new GridLayout (ROW, COL, 0, 0));

for ( int h = 0; h < COL; h++ )

{

for ( int g = 0; g < ROW; g++ )

{

switch (map[h][g])

{

case 0:

JButton p = new JButton ();

psetBackground (Colorred);

add (p);

break;

case 1:

JButton q = new JButton ();

qsetBackground (Colorblue);

add (q);

break;

case 2:

JButton m = new JButton ("入口");

msetBackground (Colorgreen);

add (m);

break;

case 3:

JButton n = new JButton ("出口");

nsetBackground (Colorgreen);

add (n);

break;

}

}

}

pack ();

setLocationRelativeTo (null);

setDefaultCloseOperation (EXIT_ON_CLOSE);

setVisible (true);

}

}

非常难。思路:

1、设老鼠的行进路线都是优先选择下->右->上->左。

2、设老鼠很聪明,走过的路线走撒泡尿,表示鼠大爷到此一游,我们可以把数组的值改为3,表示走过,但走不通。

3、这是一个int[8][8]的二位数组,那么开始位置下标是1,1,结束位置是6,6。行和列分别用、j表示。

4、实际路线我们可以设置2表示,我们可以使用递归,让老鼠不断测试路线。

5、最后打印数组,看老鼠的实际路线。

int[][] data是你的迷宫数组,返回值是路径总条数,不需要递归

public int findWayCount(int[][] data) {

int[][] way = new int[datalength][];

for (int m = 0; m < datalength; m++) {

way[m] = new int[data[m]length];

for (int n = 0; n < data[m]length; n++) {

if (data[m][n] == 0) {

way[m][n] = 0;

} else if (m == 0 && n == 0) {

way[m][n] = data[0][0];

} else if (m == 0) {

way[m][n] = way[m][n - 1];

} else if (n == 0) {

way[m][n] = way[m - 1][n];

} else {

way[m][n] = way[m][n - 1] + way[m - 1][n];

}

}

}

java语言if语句三种形式分别在什么时候使用

java中if三种形式分别为if(){}、if(){}else{}、if(){}else if(){}else if(){}else{}

第一种:if(){}

当符合某种条件时需要额外的执行步骤时,使用if(){}而不需要用else{},如jdbc中关闭连接时:

if(con !=null){即当con对象不为空时,需要执行 conclose();

conclose();

}

第二种:if(){}else{}

int i=9;

if(i<9){

Systemoutprintln("i小于9");

}else{

Systemoutprintln("i不小于9");

}

这种情况可以使用三目运算符:

String s=i<9 "i小于9" : "i不小于9";

Systemoutprintln(s);

第三种:if(){}else if(){}else{}

int i=9;

String s=null;

if(i==1){

s="i等于1";

}else if(i==2){

s="i等于2";

}else if(i==3){

s="i等于3";

}else{

s="i不等于1、2、3,那究竟等于几呢?";

}

Systemoutprintln(s);

这种情况可以用

switch(i){

case 1:

s="i等于1";

break;

case 2:

s="i等于2";

break;

case 3:

s="i等于3";

break;

default :

s="i不等于1、2、3,那究竟等于几呢?";

break;这个break语句可以省略

}

C语言中的“void ”和“int”分别在什么时候使用?

当一个函数只需要别人调用,调用该函数的函数不需要得到返回值时用void,当需要从被调函数中返回一个int型数时就用int。

比如比较大小的函数,

int max(int a,int b){

return a>ba:b;

}

调用该函数的函数需要知道哪个数大,就得返回一个int型的数;

又如交换两个变量的函数,

void swap(int a,int b){

int c=a;

a=b;

b=c;

}

调用该函数的函数知道它的功能就是让这俩变量的值交换,然后不用别的返回值了,所以就用void了

English与British分别在什么语句下使用?

其实,英国人更希望说自己是british,English有时专指英格兰,也可以表示英语。

"#import ,#pragma ment ,LoadLibrary"三种引入dll的方式都分别在什么时候使用?

LoadLibrary 一般是动态加载DLL时(你并不需要对应的头文件,和LIB)

#pragma ment 一般是静态加载DLL时(对应的头文件、DLL,和LIB缺一不可,并且生产的EXE没有找到DLL文件就会导致“应用程序初始化失败”)

#import指令用于从一个类型库中结合信息。该类型库的内容被转换为C++类,主要用于描述COM界面。

java语言 使用传参形式构成sql语句与使用拼写构成的sql语句的区别,

两者功能绝对不一样。

传参是最有效的防止SQL注入的手段之一,也是最后一道防止SQL注入的墙。

日常开发中,如果质量控制做得好,拼写是不会过quality control这一关的。

最简单的拼接注入

where name = 'xxx OR 1=1' + and +

拼接1=1可以直接导致注入

assert什么时候使用?在java语言中

assertion(断言)在软件开发中使用中常见的调试方式,很多编程语言中都支持这种机制,在实现中,assertion就是在程序中的一条语句,他对一个boolean表达式进行检查,一个正确的程序必须保证这个boolean表达式的值是true。如果该值为false,说迷宫程序已经处于不正确的状态了,系统将给出警告或者退出。一般来说assertion用来保证程序最基本、关键的正确性,assertion检查通常在开发和测试时启动,为了提高效率,在软件发布后,assertion检查通常是关闭的。

希望能帮到你,谢谢!

在WIN-TC程序语言中,float(),scanf(),int(),分别在什么时候用

您好。你说的float(),int()是在定义函数的时候使用的。也就是说是最开始的时候使用。一般我们进行一个程序的设计的时候都是先定义的。而您说的scanf()是扫描外部设备输入数据时使用的。比如你处理的数据需要接受从键盘输入的数据。这时候就需要用到scanf()了。

德语 否定词 nicht 和kein 分别在什么时候使用啊

Nicht 用来修饰动词,形容词

kein用来修饰名词

英语an的2种读音分别在什么时候用

名词之前使用a或者an

粗略的判断是名词首字母是否是元音a e i o u比如an apple ,a banana

当然这只是适用大部分。但这并不是最正确的方法。

正确的判断应该是音标的开头发音是元音的情况。而不是单纯看首字母。

剧烈说出C语言中if语句的三种形式到底是怎样的?

简化形式

if(表达式) 语句块 一般形式 嵌套形式

含义:一条if语句重又包含另一个if语句称为if语句的嵌套 if……形式

一般格式:if(表达式) 语句;

语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。语句可以是单条语句,也可以是用花括号{}包括起来的复合语句。 if……else形式

一般格式:if(表达式)

语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。语句1和语句2可以是复合语句。

以上就是关于head first java第24页的泳池迷宫,我做出来的和答案不一样全部的内容,包括:head first java第24页的泳池迷宫,我做出来的和答案不一样、java迷宫move类意思、用Java实现别踩白块游戏,白块、黑块适合用哪个组建来实现等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9410095.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存