字符数组未正确更新 java
Array of Characters not updated properly java
我正在尝试在 java 的 windows 上的终端中打乒乓球。
我有一个字符数组(称为板),桨位置由以下代码更新
public void movePaddles()
{
int inp = 0;
try
{
inp = System.in.read();
}
catch(Exception e)
{
return;
}
int olr = rtop;
int oll = ltop;
switch(inp)
{
case 'w':
ltop -=1;
break;
case 's':
ltop += 1;
break;
case 'i':
rtop -= 1;
break;
case 'k':
rtop += 1;
break;
}
updatePaddle('L',oll);
updatePaddle('R',olr);
}
public void updatePaddle(char side,int oldtop)
{
int edge = 0;
int top = 0;
// Leave 1 char of space
if (side == 'L')
{
edge = 1;
top = ltop;
}
else if (side == 'R')
{
edge = y-2;
top = rtop;
}
for (int i = oldtop;i < paddleSize+1;i++)
{
board[i][edge] = ' ';
}
for (int i = top;i < paddleSize+2;i++)
{
board[i][edge] = paddleChar;
}
}
最终发生的事情是向下移动时球拍消失,导致游戏无法玩。我做错了什么?
(github 上 https://github.com/Tookmund/Text-Pong 的完整代码)
在发布我的问题之前,我确实尝试过调试我的程序,但它没有正确显示。
基本上我需要添加当前位置的值 (top/oldtop) 以便循环不会过早退出,因为我最初比 paddleSize 大。
我正在尝试在 java 的 windows 上的终端中打乒乓球。 我有一个字符数组(称为板),桨位置由以下代码更新
public void movePaddles()
{
int inp = 0;
try
{
inp = System.in.read();
}
catch(Exception e)
{
return;
}
int olr = rtop;
int oll = ltop;
switch(inp)
{
case 'w':
ltop -=1;
break;
case 's':
ltop += 1;
break;
case 'i':
rtop -= 1;
break;
case 'k':
rtop += 1;
break;
}
updatePaddle('L',oll);
updatePaddle('R',olr);
}
public void updatePaddle(char side,int oldtop)
{
int edge = 0;
int top = 0;
// Leave 1 char of space
if (side == 'L')
{
edge = 1;
top = ltop;
}
else if (side == 'R')
{
edge = y-2;
top = rtop;
}
for (int i = oldtop;i < paddleSize+1;i++)
{
board[i][edge] = ' ';
}
for (int i = top;i < paddleSize+2;i++)
{
board[i][edge] = paddleChar;
}
}
最终发生的事情是向下移动时球拍消失,导致游戏无法玩。我做错了什么?
(github 上 https://github.com/Tookmund/Text-Pong 的完整代码)
在发布我的问题之前,我确实尝试过调试我的程序,但它没有正确显示。
基本上我需要添加当前位置的值 (top/oldtop) 以便循环不会过早退出,因为我最初比 paddleSize 大。