以下の論文(パズル認証)のアプリを実装しようと考えているのですけど、

以下の論文(パズル認証)のアプリを実装しようと考えているのですけど、 指定したパネルでOKを押すと認証が成功するプログラムがわからないので教えてほしいです。 実装したい論文URL http://okalab-kait.jp/pdf/achievement02.pdf 今書いているソースコード https://github.com/Collegestudent-IPU/drug_drop10161/blob/main/code 助けてください

画像

Android開発 | Java21閲覧

ベストアンサー

1

例えば、上段に1,2,3,4と数値を並べてOKを押せば認証成功する というような感じでしょうか? ソースを確認しました 画像の位置が、以下2種類の操作で別々の移動方法となり、管理ができない状況です。 ・ドラッグによるImageViewそのものを移動 ・シャッフルによるリソース情報のみの移動 最終的にR.id.panel1、R.id.panel2、R.id.panel3、R.id.panel4のIDをもつViewが上段に順に並べばOKとすればよいので シャッフルでのリソース入れ替えを辞めた方が良いです。 シャッフルで入れ替えるのはViewにしましょう。 フィッシャー–イェーツのシャッフルアルゴリズムとか使えば、 すでに実装されているswapメソッドとの組み合わせて実現できると思います。 あとは、位置情報ですね GridLayoutは各Viewの現在位置を覚えていません。 Viewのタグ機能を使って、位置情報を記録しておきましょう swap時に、位置情報も入れ替えればよいです。 例えば、位置情報を座標とした場合 認証評価する際に IDが「panel1」のViewのタグ情報が「(0, 0)」 IDが「panel2」のViewのタグ情報が「(0, 1)」 IDが「panel3」のViewのタグ情報が「(0, 2)」 IDが「panel4」のViewのタグ情報が「(0, 3)」 となっていれば、認証OKとする。 という風にできますね

1人がナイス!しています

ThanksImg質問者からのお礼コメント

いつも質問に答えてくれてありがとうございます。 大変参考になります。

お礼日時:10/23 13:58