private void Create() { var set = new SettingsStore(); var screen = ImageAnalysis.CaptureScreen(set); var titles = ImageAnalysis.SliceTitles(screen); var side = ImageAnalysis.DetectSide(titles); if (side == Side.White) { Data.Add(ImageAnalysis.GetImageHash(titles[0], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[1], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[2], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[3], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[4], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[8], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[63], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[62], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[61], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[60], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[59], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[55], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); Data.Add(ImageAnalysis.GetImageHash(titles[40], set.Hash, set.Window, set.WhiteBright, set.BlackBright)); } WriteData(); }
public void Run(CancellationTokenSource ct, Form1 form) { if (!CustomGame) { MySide = ImageAnalysis.DetectSide(ImageAnalysis.SliceTitles(ImageAnalysis.CaptureScreen(Settings))); } else { MySide = Board.SideToMove; } Log.Report(MySide); form.Log("" + MySide); var side = new Side(MySide.ToString()); var re = new ManualResetEvent(false); Task.Run(() => { while (!ct.Token.IsCancellationRequested) { DetectedTurn = DetectTurn(ct); re.Set(); Log.Report(DetectedTurn + ""); } re.Set(); }); while (!ct.Token.IsCancellationRequested) { if (side == Side.White) { Task.Run(() => { var turn = MakeTurn(ct, form.Suggest); if (form.Suggest) { form.Log(turn.ToString()); } }); } side.Switch(); re.WaitOne(); re.Reset(); Board.TurnIn(DetectedTurn); form.Log(DetectedTurn + ""); } form.Log(GameDone); Log.Report(GameDone); }
public List <List <string> > DetectPos() { var set = new SettingsStore(); var pos = new List <List <string> >(); var screen = ImageAnalysis.CaptureScreen(set); var cells = ImageAnalysis.SliceTitles(screen); for (var i = 0; i < SettingsStore.BoardLenght; i++) { var row = new List <string>(); for (var j = 0; j < SettingsStore.BoardLenght; j++) { row.Add(DetectFigure(ImageAnalysis.GetImageHash(cells[i * SettingsStore.BoardLenght + j], set.Hash, set.Window, set.WhiteBright, set.BlackBright))); } pos.Add(row); } return(pos); }