実現したいこと
Apexでオセロアプリのコードを書いています。
現在の実装状況として、初期配置された8x8のボードを表示させることができました。しかし、次にコマの置き方とひっくり返しのルールを実装する途中でエラーが発生し、その解消方法が分からず困っています。エラーの解消方法をご教示いただけないでしょうか。
発生している問題・分からないこと
Visualforceファイルを表示させると以下のエラーメッセージが表示されます
- 「不明なメソッド「TestController.makeMove()」」
このエラーはTestControllerクラスのmakeMove()メソッドが見つからないことが原因と考えました。しかし、コードにはmakeMove()メソッドが含まれています。
この場合のエラー原因と解消方法をご教示お願いできますでしょうか。
該当のソースコード
TestController.cls
1public class TestController { 2 public List<List<Integer>> board { get; set; } 3 private ReversiBoard reversiBoard; 4 5 public TestController() { 6 reversiBoard = new ReversiBoard(); 7 loadBoard(); 8 } 9 10 private void loadBoard() { 11 board = new List<List<Integer>>(); 12 for (List<CellWrapper> row : reversiBoard.board) { 13 List<Integer> intRow = new List<Integer>(); 14 for (CellWrapper cell : row) { 15 intRow.add(cell.value); 16 } 17 board.add(intRow); 18 } 19 } 20 21 public void makeMove(Integer x, Integer y) { 22 reversiBoard.setCell(x, y, 1); 23 loadBoard(); 24 } 25 26 public List<List<Integer>> getBoardState() { 27 return board; 28 } 29}
Revers.vfp
1<apex:page controller="TestController" lightningStylesheets="true"> 2 <apex:form > 3 <apex:pageBlock title="オセロ"> 4 <apex:outputPanel id="gameBoard"> 5 <apex:repeat value="{!board}" var="row" indexVar="i"> 6 <apex:repeat value="{!row}" var="cell" indexVar="j"> 7 <apex:commandButton value="{!cell}" action="{!makeMove}" rerender="gameBoard"> 8 <apex:param name="x" value="{!i}" assignTo="{!x}"/> 9 <apex:param name="y" value="{!j}" assignTo="{!y}"/> 10 </apex:commandButton> 11 </apex:repeat> 12 <br/> 13 </apex:repeat> 14 </apex:outputPanel> 15 <apex:commandButton value="Start Game" action="{!startGame}" rerender="gameBoard"/> 16 </apex:pageBlock> 17 </apex:form> 18</apex:page>
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
TestControllerクラスのmakeMove()メソッドにデバッグを仕込みましたが、デバックログに表示されませんでした。
補足
特になし
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。