私はこのマトリックスを持っています:
A B C
D E F
G H I
たとえば、長さが3の隣接セルと対角セルのすべての可能な組み合わせを取得したい:
A から:
- *ABC* right right
- *ABE* right down
- *ABF* right diagonal-right
- *ABD* right diagonal-left
- ecc ecc
文字をキーとして、右、左、下、上へのポインターを示すメンバーを使用して、「lettera」という新しいクラスを作成しようとしました。また、「sequenza」と呼ばれるメンバーと、接触するすべての文字を連結する文字列があります。
たとえば、キーとして「B」がある場合、B->down == *E、B->left == *A、B->right == *C など...そして機能します。次に、各文字にカウンターを置きます。3 に到達すると、組み合わせの決定を停止する必要があります。
次に、問題の核心:各文字がたどるパス...再帰関数を作成しようとしましたが、機能しません。
これを見るか、別の方法を提案してください。
どうもありがとう。
コード:
void decisione(lettera *c) {
if (c == nullptr) return ;
c->count++;
c->sequenza = c->sequenza + c->key;
if (c->count == 2)
cout << "\n" << c->sequenza;
//the sequence of letters accumulated in every call
decisione(c->Up);
decisione(c->Down);
}
たとえば、AAAとBBBが表示され、クラッシュします=(