这是我的井字游戏程序的接受函数,因此s
只会以字符串格式存储数据,介于 0,0 或 2,2 之间。
我现在正在使用该getNumericValue
函数将数字分别存储在p
和q
中,但是在运行时,StringIndexOutOfBounds
尝试将值存储在p
.
仅当在 accept() 之前调用用于决定 x 或 O 的 choice() 函数时才会出现问题,否则它运行良好。选择()函数有什么问题?
void accept()throws IOException
{
System.out.println("Your move:");
String s=xy.readLine();
int p = (Character.getNumericValue(s.charAt(0)))-1;
int q = Character.getNumericValue(s.charAt(2))-1;
if(ar[p][q]==0)
ar[p][q]=1;
else
{
System.out.println("You can't capture a location that has already been captured!");
accept();
}
}
void choice() throws IOException
{
System.out.println("Welcome to tictactoe");
System.out.print("Enter your weapon X or O : ");
chp = Character.toUpperCase((char)xy.read());
if (chp=='X')
chc='O';
else
chc = 'X';
System.out.println("kkbot chose: "+ chc);
}