見出し画像

「初心者」ビンゴゲームを作りながらC++を学ぼう

こんにちは!ゆーです!

今回は、プログラミング言語C++を学習したい初心者の方に向けて、ビンゴゲームを作りながらC++の基本的な使い方を紹介できればいいな!っと思います。

単純にC++の文法を解説している本や、サイトは沢山あるのですが正直つまらないですよね!

実際に手を動かして作品を作りながらC++を学習した方が圧倒的に早く文法を理解できると思うので、今回はビンゴゲームを題材にしながらC++の基本的な使い方を見せていけたらな!と思います。

細かい文法で困ってしまった方は、その部分だけ本で調べるなどしてみると最高だと思います。


環境:mac(Mojave),  xcode

C++が使える環境なら何でも良いのですが、今回僕が使うIDE(統合開発環境)はxcodeです。windowsを使っている方は、visual studioを使うと簡単かな?と思います。今回visual studioの使い方については触れないですが、少しgoogle先生に質問すれば分かるかと思います!!

ですが、今回C++の基礎を抑えていくのに開発環境はあまり関係がないので自分の好きなものを用いて大丈夫です〜!!

xcodeでは、shifft + command + nを押して(新規プロジェクト作成)

スクリーンショット 2019-11-15 12.08.54

command line toolを選択してプロジェクトを作成してください。

main.cppが作れたと思います。C++言語は基本的には、main関数の中にコードを書いきます。

main関数とは、

int main(){

}

上のコードの事です。この{  }の中にコードを書いていきます。


文字の表示

では!!初心者が初めてやる事。Hello Worldをして行きましょう。

#include <iostream>

int main(){
    std::cout << "Hello, World!" << std::endl;
}

描き終わったら、『コンパイル&ビルド』します。macの方はcommand+Rを、windowsの方はF5を押して貰うとできると思います。

いきなりstd::coutとか意味わかんないの出てきたよ!って思った方大丈夫です。難しい事は考えず、感覚で理解していきましょう。とりあえず、文字を画面に表示するためには、こんな書き方をするのだな〜!って思っておいてください。(#include <iostream>はおまじないだと思ってmain関数の上に書いておいてください。std::何とか〜 って言う関数が使えなくなってしまします。)

試しに、

#include <iostream>

int main(){
    std::cout << "Hello, World!" << std::endl;
    std::cout << "こんにちは! 世界";
    std::cout << "やあ! 世界くん" << std::endl;
}

と書いてみてください。std::endlが改行を意味している事や、表示される文字がどこの部分かわかったと思います。こんな感じに、自分で少し変えてみて、プログラムの動きを実際にみてみる事が上達への近道だと思うので、ぜひ試してみてください。

C++はパソコン自体を壊す事が可能ですが、今回紹介する内容でパソコンが壊れる事はないのでガンガン試してください!!初心者の方が知っている知識で壊れる事はまずありません!


文字が表示できる様になったので、ビンゴカードを作っていきましょう。ここでは、for文という繰り返し文を用いていきます。for文?って心配する必要はありません。実際に書いて見れば簡単に動きを理解できます。

#include <iostream>

int main() {
   // insert code here...
   for (int lin =0; lin <5; lin++) {
       std::cout << lin << std::endl;
   }
   return 0;
}

実際にcomando+R(windowsはF5)を押して実行すると、

0
1
2
3
4

と表示されると思います。先ほど、std::cout << なんか表示するもの << std::endl;で画面に文字を表示できる事を学びました。なので、今回画面に表示されている内容は、変数linの中身ですな!

今回、for文は{}の中でlinと言う変数(:=int型)をくるくる回す処理をしています。そして、一回回るごとに1を足していきます。

lin++という表記があると思いますが、そこで一回、回るごとにlinに1をたす!と決めています。(x++は、x += 1と x = x+1と同じ意味です。)色々いじってfor文の書き方を体感してみてください。


ビンゴカードを作り始めよう

for文の使い方が分かりましたか?今回はビンゴゲームにしたいので、マス目の様に表示しなくてはなりません。なので、こんな風に手を加えてみます。

#include <iostream>

int main() {
   // insert code here...
   for (int lin =0; lin <5; lin++) {
       std::cout << lin << " ";
   }
   
   return 0;
}

ビルド comando+R(win -> F5)

0 1 2 3 4

これで、数字が並んだと思います。ビンゴカードは5×5なので、この行を5個表示できれば良いので、このfor文ごと5回繰り返します!

#include <iostream>

int main() {
   // insert code here...
   for (int col =0; col <5; col++) {
      
       //1行表示するfor文(前の)
       for (int lin =0; lin <5; lin++) {
           std::cout << lin << " ";
       }
      
       std::cout << std::endl;//改行する
   }
   return 0;
}

実行結果:

0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4
0 1 2 3 4

5x5の表を表示する事ができました!ビンゴカードは数字がバラバラなので、ランダムに数字を入れていきます。

#include <iostream>

int main() {
   // insert code here...
   int num[5][5];//追加
   for (int col =0; col <5; col++) {
       for (int lin =0; lin <5; lin++) {
           num[col][lin] = rand() % 99 +1;//追加
           std::cout << num[col][lin] << " ";//変更
       }
       std::cout << std::endl;
   }
   return 0;
}

実行結果

77 35 78 84 86
81 25 45 54 38
73 18 88 72 64
30 35 17 98 38
7 74 46 57 5

今回は、ランダムに数字を入れていく箱(配列)numを追加しました。5x5個の変数が無いと、ランダムな数字を格納できないからです。

また、今回は1~99の中でランダムな数字を選びたかったので、rand() % 99 +1と描きました。rand()関数の使い方がきになる方はgoogle先生に聞いてください。今回は、へー!この書き方で1~99の乱数が作れるのか!って思っていただければ大丈夫です!


ここまでで、ビンゴカードの表示までできる様になりました!!お疲れ様です〜!


ビンゴカードの穴の実装

ここから先は

8,290字

¥ 500

皆んなのサポートのおかげで, 僕は元気に投稿できます. ありがとう