思路?
创新互联公司是一家专业提供沐川企业网站建设,专注与成都做网站、网站设计、H5场景定制、小程序制作等业务。10年已为沐川众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
可以把船写成一个类,储存坐标、方向和长度,坐标不是在屏幕上显示的位置,而是根据你的面板网格划分的位置,不过习惯上最好还是从左上角作为原点来数(毕竟java里所有的窗口面板和图形都是这样的)。
布局面板两个,一个你的一个别人的,在布局面板里添加摆放船的方法(比方说一个按钮,按下之后就在面板里添加一个小船,如果你的小船已经是从JComponent类里继承过来的,可以直接添加MouseMotionListener,拖动鼠标改变位置),摆放好了之后确认一下把船占据的所有格子的坐标都记录下来。
显示面板一个,最好自己新建一个类继承JPanel类,方便绘图,只要画网格就行了,其他什么都不用画出来,反正谁都看不见,自己布的局自己记住就好啦!在这里只需要记录目标坐标(就是对方的船在的位置)就行了,然后添加MouseListener判断点击位置,绘制不同的图像来表示是否击中。最后别忘了每一次点击后都要换一个判断对象(玩家)就行了
import java.util.ArrayList;
import java.util.List;
public class KillThree {
public static void main(String[] args) {
int m = (args==null || args.length 1)?5:Integer.parseInt(args[0]);
int n = (args==null || args.length 2)?100:Integer.parseInt(args[1]);
ListInteger peoples = new ArrayList();
for (int i = 0; i n; i++) {
peoples.add(i+1);
}
int mod = 1;
while (peoples.size() m){
int latestMod = peoples.size()%3;
for (int i = 0; i peoples.size() peoples.size() m; i++) {
if((i+mod)%3==0){
peoples.remove(i);
}
}
mod = 1 + latestMod;
}
for (int i = 0; i peoples.size(); i++) {
System.out.print(peoples.get(i) + ",");
}
}
}
private static final String NEWLINE = System.getProperty("line.separator");
String dots =
" "+".::::. " + NEWLINE +
" " +" " +" .:::::" +":::. " +
NEWLINE + " ::::::::::: " + NEWLINE +
" " + " ':::::::::::.. "
+ NEWLINE +" ::::" +":::::::::::' " + NEWLINE +" ':::::::::::. " + NEWLINE +
" .::::::::" +"::::::' " + NEWLINE +" " +".:::::::::::... " + NEWLINE +
" ::::::::::::::''" +
" " + NEWLINE +" .:::. '::::::::'':::: " + NEWLINE +
" .::::::::. " +
" ':::::' ':::: " + NEWLINE +" "
+".::::':::::::. " +" ::::: '::::. " + NEWLINE +" .:::::' '::::"
+":::::. ::::: ':::. " + NEWLINE +" .:::::' ':::::::::.::::: " +" '::. " +
NEWLINE +" .::::'' ':::::::::::::: '::. " + NEWLINE +" .::'' ':::::"
+"::::::: :::... " + NEWLINE +" ..:::: ':::::::::' " +
" .:' '''' " + NEWLINE +" ..''''':' ':::::.' " + NEWLINE;
System.out.println(dots);
给个靓女你。