2019.11.02どうもこんにちは夫です。今回はRustで数当てゲームのプログラムを作って行きます。参考サイトまずはプロジェクトの作成クレートを使おう入力するプログラムを作ろう入力した数字を判定しよう入力結果の判定をしよう最後にYouTube数当てゲーム完成形まずどの様なものかイメージしてもらう為にソースコードだけ先に貼って実行します。main.rsに以下を記述します。“0.3.14”」を追加。runしてみてください。だいたいこんな感じです。これだけではわかりづらいのでじっくりと解説をして行きます。参考サイトその前に参考サイトですがこちらです。数当てゲームdoc.rust-jp.rsRustのチュートリアルの和訳ですがどうも初心者にはわかりづらい様でしたので分かり易くするのを心がけて解説します!このプログラムを理解すればmatch文や外部クレートについて理解が進むと思います。number_gameではmain.rsをいじって行きます!ここでちょっと話から外れますが「main.rsって何?」ってなった方はこちらの記事を見てください。ゲームの始まり!という表示をします。main関数のブロックの中に下のコードを写経しましょう。rand::thread_rng().gen_range(1,10);ここではprintlnマクロで始まるメッセージを表示してからsecret_numberという変数に1から10までの数字を代入してます。2行目にランダムな数字を生成してますが、ここでややこしいのが現状ではRustの標準ライブラリには数字をランダムに数字を作るライブラリがありません。そこでクレートってやつが登場です。クレートを使おうクレートはざっくりいうと外部ライブラリみたいなものです。pythonで言うとpipインストールしたものをimportする様なものです。それを使う為に「Cargo.toml」というファイルに記述します。このファイルはプロジェクト生成時に作られています。このファイルを開いてこの様に記述するだけこの1行を追加するとcrates.ioというとこで超親切なcargoさんがダウンロードとコンパイルを後でしてくれます。ここでビルドしてみましょう。buildこれで出来ます。randに依存しているlibcもダウンロードしてくれてます。ここでCargo.lockを見てみると...パッケージとしてズラーっと取り込んだものが並んでいます。この様になってたらOKです。rand::Rng;」を追加して完了です。rand::thread_rng().gen_range(1,10);これでこの行が実行可能となります。入力する関数を使用してエラーがあれば”読み込み失敗”のメッセージまずはio::stdin()やstdout()などを使用する為にコードの行頭に上の画像の様に入力しましょう。あとは「.except()」で何か問題があればメッセージを表示する様にしないとRustから注意喚起されます。これで入力する準備は完了です。入力した数字を判定しようお次のコードはこれです。数字以外が入力されたらコンテニュー};guessという変数を新たに文字列じゃなく整数型で変数を用意してます。matchで判定式を作ります。その前に入力された数字は受け取った際には本当に数字だけでしょうか?実際には入力した後にEnterキーを押しますよね。これのおかげで「/n」というデータまで受け取るのでtrim()で数字だけ抽出してparse()で整数型にしています。判定式の方に戻ります.入力されたものが数値ならnumという変数を返すだけですが、もし文字など想定外のものが入力されればloop文の最初から戻ります。入力した数字とmatchで比較}}ここでもmatch文を使って判定しています。std::cmp::Ordering;」を追加してください。guessとsecret_numberの参照(変数の頭に&を付ける)を比較してその結果を数字の大小と等しいかで判定しています。ゲームですので等しいってことは正解です。正解すればゲームの終了なのでmatch文で定義したEqualの後にプログラムを抜け出す為にbreakします。最後にお疲れ様でした。途中で僕の文を解読するのに疲れたかと思います笑できれば写経してもらえると理解が深まるので是非やってみてください。途中で解説しきれないことがありすぎたのでわからないことがあればTwitterでもお問い合わせフォームからでも全然良いので気軽に聞いてください。Air安く買うなら【漫画】はじめました。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。でこでこふうふ.タイトルとURLをコピーしました。