ここで問題があります。スライドパズルゲームを作っています。プレイヤーは、パズルが解けるまでどのピースを動かしたいか尋ねられます。プレーヤーが前に終了したい場合は、入力Q
またはq
を押して終了enter
します。プログラムは問題なく動作します。しかし、私には1つの問題があります。挿入するCTRL+Z
と、プログラムがloop
予期せず...
これは重要なコードです。
// analyzes user input
if (piece_to_move_string == "q" ||
piece_to_move_string == "Q")
{
cout << endl << "You chose to quit." << endl;
pressanykey();
break;
}
else
{
piece_to_move = atoi(piece_to_move_string.c_str());
if (1 <= piece_to_move && piece_to_move <= pow(puzzle_size,puzzle_size))
{
game_board = move_piece (game_board, piece_to_move);
}
else
{
cout << "Not possible.";
}
}
編集:しかし、それでも機能しません。
// analyzes user input
if (piece_to_move_string == "q" ||
piece_to_move_string == "Q")
{
cout << endl << "You chose to quit." << endl;
pressanykey();
break;
}
else if (cin.eof())
{
//do nothing
}
else
{
piece_to_move = atoi(piece_to_move_string.c_str());
if (1 <= piece_to_move && piece_to_move <= pow(puzzle_size,puzzle_size))
{
game_board = move_piece (game_board, piece_to_move);
}
else
{
cout << "Not possible.";
}
}