2016-11-18 9 views
0

このコードはアルゴリズムの検索であり、目標はテーブルが1から16の順であるときです(ゲームテーブルの最初は順序付けされていません)。 UIテーブル(UIのゲームの結果を表示するテーブル)を塗りつぶすのが遅れたいのです。アルゴリズムでゲームを解決するプロセスをプレイヤーに示したいからです。 //Make Delayに遅延(1秒または2秒)がありますか?Cで時間遅れがある

public bool BFS_TreeSearch(int[,] table, Queue<int[,]> fringe) 
    { 
     MakeNode(table, fringe); 

     do 
     { 
      if (fringe.Count == 0) 
       return false; 
      int[,] node = fringe.Dequeue(); 

      //Make Delay 


      FillTableUI(node); 

      if (isGoal(node)) 
       return true; 
      MakeNode(node, fringe); 
     } while (true); 

    } 

答えて

1

あなたは、あなたの要件に基づいてThread.SleepまたはTask.Delayを使用して同期または非同期睡眠を使用することができます。あなたはUIでいくつかのことを見せたいので、私はこのように後者を使うべきだと思います。これにより、メソッドasyncが作成されますので、別の方法で呼び出す必要があります。

public async Task<bool> BFS_TreeSearch(int[,] table, Queue<int[,]> fringe) 
{ 
    MakeNode(table, fringe); 

    do 
    { 
     if (fringe.Count == 0) 
      return false; 
     int[,] node = fringe.Dequeue(); 

     await Task.Delay(2000) // continue from here after 2 seconds 


     FillTableUI(node); 

     if (isGoal(node)) 
      return true; 
     MakeNode(node, fringe); 
    } while (true); 

} 

このトピックでもthis postを参照してください。

関連する問題