|
[{"action": "SET_PROPERTY","component": "ChessBoard","property": "Width","value": 465}, {"action": "SET_PROPERTY","component": "ChessBoard","property": "Height","value": 465}, {"action": "ADD_BLOCK_INTENT","intent":[ {"var": "board","init":{"list":[]}}, {"var": "currentPlayer","init": 1}, {"var": "gameOver","init":false}, {"procedure": "重置游戏","params":[],"do":[ {"set_var": "global board","value":{"list":[]}}, {"for_range":{"var": "r","from": 1,"to": 15,"step": 1,"do":[ {"local_var": "rowList","value":{"list":[]},"do":[ {"for_range":{"var": "c","from": 1,"to": 15,"step": 1,"do":[ {"list_add":{"list":{"get_var": "rowList"},"item": 0}} ]}}, {"list_add":{"list":{"get_var": "global board"},"item":{"get_var": "rowList"}}} ]} ]}}, {"call_proc": "绘制棋盘","args":{}}, {"set_var": "global currentPlayer","value": 1}, {"set_var": "global gameOver","value":false}, {"set_prop": "StatusLabel.Text","value": "你的回合"} ]}, {"procedure": "绘制棋盘","params":[],"do":[ {"call": "ChessBoard.Clear","args":{}}, {"set_prop": "ChessBoard.PaintColor","value": "&HFF000000"}, {"for_range":{"var": "i","from": 1,"to": 15,"step": 1,"do":[ {"local_var": "y","value":{"add":[15,{"multiply":[{"subtract":[{"get_var": "i"},1]},30]}]},"do":[ {"call": "ChessBoard.DrawLine","args":{"x1": 15,"y1":{"get_var": "y"},"x2": 435,"y2":{"get_var": "y"}}} ]}, {"local_var": "x","value":{"add":[15,{"multiply":[{"subtract":[{"get_var": "i"},1]},30]}]},"do":[ {"call": "ChessBoard.DrawLine","args":{"x1":{"get_var": "x"},"y1": 15,"x2":{"get_var": "x"},"y2": 435}} ]} ]}} ]}, {"procedure": "绘制棋子","params":["row","col","player"],"do":[ {"set_prop": "ChessBoard.PaintColor","value":{"choose":{"test":{"eq":[{"get_var": "player"},1]},"then": "&HFF000000","else": "&HFFFFFFFF"}}}, {"call": "ChessBoard.DrawCircle","args":{ "centerX":{"add":[15,{"multiply":[{"subtract":[{"get_var": "col"},1]},30]}]}, "centerY":{"add":[15,{"multiply":[{"subtract":[{"get_var": "row"},1]},30]}]}, "radius": 12, "fill":true }} ]}, {"procedure": "设置棋盘位","params":["row","col","value"],"do":[ {"local_var": "oldBoard","value":{"get_var": "global board"},"do":[ {"local_var": "newBoard","value":{"list":[]},"do":[ {"for_range":{"var": "r","from": 1,"to": 15,"step": 1,"do":[ {"if":{"eq":[{"get_var": "r"},{"get_var": "row"}]},"then":[ {"local_var": "oldRow","value":{"select_item":{"list":{"get_var": "oldBoard"},"index":{"get_var": "r"}}},"do":[ {"local_var": "newRow","value":{"list":[]},"do":[ {"for_range":{"var": "c","from": 1,"to": 15,"step": 1,"do":[ {"if":{"eq":[{"get_var": "c"},{"get_var": "col"}]},"then":[ {"list_add":{"list":{"get_var": "newRow"},"item":{"get_var": "value"}}} ],"else_do":[ {"list_add":{"list":{"get_var": "newRow"},"item":{"select_item":{"list":{"get_var": "oldRow"},"index":{"get_var": "c"}}}}} ]} ]}}, {"list_add":{"list":{"get_var": "newBoard"},"item":{"get_var": "newRow"}}} ]} ]} ],"else_do":[ {"list_add":{"list":{"get_var": "newBoard"},"item":{"select_item":{"list":{"get_var": "oldBoard"},"index":{"get_var": "r"}}}}} ]} ]}}, {"set_var": "global board","value":{"get_var": "newBoard"}} ]} ]} ]}, {"function": "计数方向","params":["row","col","dr","dc","player"],"return":{ "do_return":{"do":[ {"local_var": "count","value": 0,"do":[ {"local_var": "r","value":{"add":[{"get_var": "row"},{"get_var": "dr"}]},"do":[ {"local_var": "c","value":{"add":[{"get_var": "col"},{"get_var": "dc"}]},"do":[ {"while":{"and":[ {"and":[{"gte":[{"get_var": "r"},1]},{"lte":[{"get_var": "r"},15]}]}, {"and":[{"gte":[{"get_var": "c"},1]},{"lte":[{"get_var": "c"},15]}]}, {"eq":[ {"select_item":{"list":{"select_item":{"list":{"get_var": "global board"},"index":{"get_var": "r"}}},"index":{"get_var": "c"}}}, {"get_var": "player"} ]} ]},"do":[ {"set_var": "count","value":{"add":[{"get_var": "count"},1]}}, {"set_var": "r","value":{"add":[{"get_var": "r"},{"get_var": "dr"}]}}, {"set_var": "c","value":{"add":[{"get_var": "c"},{"get_var": "dc"}]}} ]} ]} ]} ]} ],"value":{"get_var": "count"}} }}, {"function": "评估长度","params":["row","col","player"],"return":{ "do_return":{"do":[ {"local_var": "directions","value":{"list":[ {"list":[0,1]},{"list":[1,0]},{"list":[1,1]},{"list":[1,-1]} ]},"do":[ {"local_var": "maxLen","value": 0,"do":[ {"foreach":{"var": "dir","in":{"get_var": "directions"},"do":[ {"local_var": "count1","value":{"call_proc": "计数方向","args":{ "row":{"get_var": "row"},"col":{"get_var": "col"}, "dr":{"select_item":{"list":{"get_var": "dir"},"index": 1}}, "dc":{"select_item":{"list":{"get_var": "dir"},"index": 2}}, "player":{"get_var": "player"} }},"do":[ {"local_var": "count2","value":{"call_proc": "计数方向","args":{ "row":{"get_var": "row"},"col":{"get_var": "col"}, "dr":{"multiply":[{"select_item":{"list":{"get_var": "dir"},"index": 1}},-1]}, "dc":{"multiply":[{"select_item":{"list":{"get_var": "dir"},"index": 2}},-1]}, "player":{"get_var": "player"} }},"do":[ {"local_var": "len","value":{"add":[1,{"add":[{"get_var": "count1"},{"get_var": "count2"}]}]},"do":[ {"if":{"gt":[{"get_var": "len"},{"get_var": "maxLen"}]},"then":[{"set_var": "maxLen","value":{"get_var": "len"}}]}} ]} ]} ]} ]}} ]} ]} ],"value":{"get_var": "maxLen"}} }}, {"function": "分数映射","params":["len"],"return":{ "choose":{"test":{"gte":[{"get_var": "len"},5]},"then": 100000,"else":{ "choose":{"test":{"eq":[{"get_var": "len"},4]},"then": 10000,"else":{ "choose":{"test":{"eq":[{"get_var": "len"},3]},"then": 1000,"else":{ "choose":{"test":{"eq":[{"get_var": "len"},2]},"then": 100,"else": 10 }} }} }} }}, {"procedure": "检查胜负","params":["row","col","player"],"do":[ {"local_var": "len","value":{"call_proc": "评估长度","args":{"row":{"get_var": "row"},"col":{"get_var": "col"},"player":{"get_var": "player"}}},"do":[ {"if":{"gte":[{"get_var": "len"},5]},"then":[ {"set_var": "global gameOver","value":true}, {"set_prop": "StatusLabel.Text","value":{"choose":{"test":{"eq":[{"get_var": "player"},1]},"then": "黑棋胜!","else": "白棋胜!"}}} ]} ]} ]}, {"procedure": "AI决策","params":[],"do":[ {"local_var": "bestScore","value": -1,"do":[ {"local_var": "bestR","value": 0,"do":[ {"local_var": "bestC","value": 0,"do":[ {"for_range":{"var": "row","from": 1,"to": 15,"step": 1,"do":[ {"for_range":{"var": "col","from": 1,"to": 15,"step": 1,"do":[ {"if":{"eq":[ {"select_item":{"list":{"select_item":{"list":{"get_var": "global board"},"index":{"get_var": "row"}}},"index":{"get_var": "col"}}}, 0 ]},"then":[ {"local_var": "lenAI","value":{"call_proc": "评估长度","args":{"row":{"get_var": "row"},"col":{"get_var": "col"},"player": 2}},"do":[ {"local_var": "lenHuman","value":{"call_proc": "评估长度","args":{"row":{"get_var": "row"},"col":{"get_var": "col"},"player": 1}},"do":[ {"local_var": "score","value":{"add":[ {"call_proc": "分数映射","args":{"len":{"get_var": "lenAI"}}}, {"multiply":[{"call_proc": "分数映射","args":{"len":{"get_var": "lenHuman"}}},0.9]} ]},"do":[ {"if":{"gt":[{"get_var": "score"},{"get_var": "bestScore"}]},"then":[ {"set_var": "bestScore","value":{"get_var": "score"}}, {"set_var": "bestR","value":{"get_var": "row"}}, {"set_var": "bestC","value":{"get_var": "col"}} ]} ]} ]} ]} ]} ]}} ]}}, {"call_proc": "落子","args":{"row":{"get_var": "bestR"},"col":{"get_var": "bestC"},"player": 2}}, {"set_var": "global currentPlayer","value": 1} ]} ]} ]} ]}, {"procedure": "落子","params":["row","col","player"],"do":[ {"call_proc": "设置棋盘位","args":{"row":{"get_var": "row"},"col":{"get_var": "col"},"value":{"get_var": "player"}}}, {"call_proc": "绘制棋子","args":{"row":{"get_var": "row"},"col":{"get_var": "col"},"player":{"get_var": "player"}}}, {"call_proc": "检查胜负","args":{"row":{"get_var": "row"},"col":{"get_var": "col"},"player":{"get_var": "player"}}} ]}, {"event": "Screen6.Initialize","do":[ {"call_proc": "重置游戏","args":{}} ]}, {"event": "ChessBoard.TouchDown","do":[ {"if":{"and":[{"not":{"get_var": "global gameOver"}},{"eq":[{"get_var": "global currentPlayer"},1]}]},"then":[ {"local_var": "row","value":{"add":[1,{"floor":{"divide":[{"subtract":[{"get_var": "y"},15]},30]}}]},"do":[ {"local_var": "col","value":{"add":[1,{"floor":{"divide":[{"subtract":[{"get_var": "x"},15]},30]}}]},"do":[ {"if":{"and":[ {"and":[{"gte":[{"get_var": "row"},1]},{"lte":[{"get_var": "row"},15]}]}, {"and":[{"gte":[{"get_var": "col"},1]},{"lte":[{"get_var": "col"},15]}]}, {"eq":[ {"select_item":{"list":{"select_item":{"list":{"get_var": "global board"},"index":{"get_var": "row"}}},"index":{"get_var": "col"}}}, 0 ]} ]},"then":[ {"call_proc": "落子","args":{"row":{"get_var": "row"},"col":{"get_var": "col"},"player": 1}}, {"if":{"not":{"get_var": "global gameOver"}},"then":[ {"call_proc": "AI决策","args":{}} ]} ]} ]} ]} ]} ]}, {"event": "RestartButton.Click","do":[ {"call_proc": "重置游戏","args":{}} ]} ]}, {"action": "CLEANUP_BLOCKS"}] 代码块添加失败,工作区已恢复: 块 procedures_defnoreturn: Connection checks failed. | 未知的操作: |
GMT+8, 2026-08-17 10:59 , Processed in 0.018645 second(s), 35 queries .