こんにちは、このパズル ソルバーで動作するコードを開発しようとして問題が発生しています。それぞれ 5 要素の 2 つの整数配列があります。
a[] = {1,1,0,2,2};
b[] = {2,2,0,1,1};
私のプログラムは、配列 a を配列 b に段階的に再配置し、それらが一致するかどうかを比較することを想定しています。
解決のルールは次のとおりです。整数 1 は右にのみ移動でき、整数 2 は左にのみ移動できます。
基本的に、紙の上でこのパズルを解く方法は次のとおりです。
a b c d e
1 1 0 2 2 - >starting positiong
1 0 1 2 2 - >b moves to c therfore b is now vacated 0
1 2 1 0 2 - >d can jump over c because they are opposites so b = d
1 2 1 2 0 - > e moves over to the vacated d
1 2 0 2 1 - > c can jump over d to e because e is vacated
0 2 1 2 1
2 0 1 2 1
2 2 1 0 1
2 2 0 1 1 = b[]
配列を宣言するためだけにコードを書きましたが、ヘルプを解決する方法がわかりません。