我正在使用Java在不带界面的情况下制作pacman模拟器,仅使用控制台打印,而在打印时遇到问题。 因此,我有一个对象pacman,其坐标为x和y,我有一个带有墙和fruti的网格,它是矩阵tile [] []。 当我只打印吃豆人和网格时,一切正常。 这是我使用的toString():
public String toString() {
String s = "";
for(int i=0;i<WIDTH;i++) {
for(int j=0;j<HEIGHT;j++) {
if(pacman.getX() == i && pacman.getY() == j) {
s = s + pacman;
}
else {
s = s+tile[i][j];
}
}
s=s+"\n";
}
return s;
}
这是输出:
####################
#<~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
####################
现在,我创建了一个重影数组列表,当我要打印重影,pacman和网格时遇到一些问题。 我希望代表鬼魂的角色在网格角色上方,就像我对吃豆人所做的那样。 我只是想不出在砖块上方打印鬼影的最佳方法。 我正在像这样使用foreach循环:
for(Ghost g : ghosts) {
if(g.getX() == i && g.getY() == j) {
s = s + g;
}
}
通常,我会在控制台中这样打印:
####################
#<~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~3~~~~~2~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~1~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
#~~~~~~~~~~~~~~~~~~#
####################
我该如何解决?
答案 0 :(得分:1)
您需要以某种方式消除“〜”。您可以通过使用2d char数组而不是字符串来做到这一点,例如:
char[][] map = new char[width][height];
然后您可以像这样编辑每个“像素”:
map[y][x] = g;
编辑:然后,您将通过遍历所有字符,将它们写入字符串并在每行之后放置\ n来绘制屏幕。
答案 1 :(得分:0)
事实证明,这比我想象的要棘手,但是我认为您可以有条件地gulp.task('nodemon', ['sass'], function(cb) {
var started = false;
consoleLog('nodemon started');
return nodemon({
//HERE REMOVE THE COMMENT AT THE BEGINING OF THE LINE YOU NEED
//exec: 'node --inspect --debug-brk node_modules/gulp/bin/gulp.js',
exec: 'node --inspect --debug-brk',
//exec: 'node --inspect',
script: path.server,
ignore: ['*/gulpfile.js', 'node_modules/*'],
verbose: true
}).on('start', function() {
if (!started) {
cb();
started = true;
}
}).on('restart', function() {
consoleLog('nodemon restarted the server');
});});
行处理(内部continue
循环)来解决问题。不过,您必须将鬼魂放入j
块中。未经测试:
else