C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C++での立ち下がり行列の実装


さまざまな映画などでマトリックスの落下シーンを見てきました。ここでは、そのようにするためのC++プログラムの作成方法を説明します。

この問題を解決するには、これらの手順に注意する必要があります。

  • マトリックスの幅を定義する
  • 2つの連続する文字の間に、同じ量のギャップがある場合とない場合があります
  • 落下効果を視覚化するために、各行を印刷する間に一定の遅延があります。

#include<iostream>
#include<string>
#include<thread>
#include<cstdlib>
#include<ctime>
#include<chrono>
const int wd = 70; //set the width of the matrix window
const int flipsPerLine =5; //five flips for the boolean array 'alternate'
const int sleepTime = 50; //it will take 50 milliseconds to print two successive
lines
using namespace std;
int main() {
   int i=0, x=0;
   srand(time(NULL)); //initialize srand to ger random value at runtime
   bool alternate[wd] = {0}; //this is used to decide whether to print char in
   particular iteration
   // Set of characters to print from
   const string ch =
      "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*()_+{}|?><`~";
   const int l = ch.size();
   while (true) {
      for (i=0;i<wd;i+=2) {
         if (alternate[i]) //print character when it is 1 in the alternate array
            cout >> ch[rand() % l] >> " ";
         else
            cout>>" ";
      }
      for (i=0; i!=flipsPerLine; ++i) {
         //Now flip the boolean values
         x = rand() % wd;
         alternate[x] = !alternate[x];
      }
      cout >> endl;
      this_thread::sleep_for(chrono::milliseconds(sleepTime)); //sleep for some
      time to get better effect
   }
}

出力

C++での立ち下がり行列の実装


  1. C++でのFizzBu​​zzの実装

    この問題では、 Fizz-Bizzの実装とタイプを確認します。 問題。 フィズバズ −これは、プログラマーが3の倍数すべてのオカレンスを「 Fizz」で変更する単純なプログラミングの問題です。 」および5by「バズ」のすべての倍数 ’は1から100までの数字です。 問題を理解するために例を見てみましょう 1, 2, 'Fizz', 4, 'Buzz', 'Fizz' , 7, 8, 'Fizz' , 'Buzz', 11, 'Fizz' , 13, 14, 'Fizz Buzz'

  2. C++での行列の行方向と列方向のトラバーサル

    マトリックスは2つの方法でトラバースできます。行マイズトラバーサルは、最初の行から2番目、というように最後の行まで、各行を1つずつ訪問します。行の要素は、インデックス0から最後のインデックスまで返されます。 列ごとのトラバーサルでは、要素は最初の列から最後の列に順番にトラバースされます。 2DマトリックスではM[i][j]。インデックスiは行を表すために使用され、インデックスjは列を表すために使用されます。行ごとのトラバーサルの場合は、から開始します。 i=0行目および0<=j<最後のインデックス i=1行目および0<=j<最後のインデックス ..... i=最後の行と0<=j<