ケイバハック

競馬ソフトは自分で作ろう!

レース結果を適当に予想するアプリ

次のレースに来る馬番を適当に予想するコンソールアプリ

次のレースに来る馬番を適当に予想するコンソールアプリ

今回は、競馬ソフトを開発してみたいプログラミング未経験者のうち、.NET Core環境での開発手順の基本が分かっている人に向けての情報です。

「.NET Core環境での開発手順って何?」という方は、まずは、次の記事から読み進め、.NET Core環境での開発手順の基本を学んでください。

.NET Core環境でのコンソールアプリを作るときの基本手順

さて、前回の.NET Core環境でのコンソールアプリを作るときの基本手順では、コンソールに、「キングカメハメハ」と表示する簡単なコンソールアプリを作る方法をご紹介しました。

この方法を試したことで、.NET Core環境での開発手順の基本は習得できましたよね?

簡単に復習しておきますと。コンソールから、デスクトップにフォルダを作って、そこを作業フォルダにして、「dotnet new」コマンドで初期化、「dotnet run」コマンドで実行する、という流れです。

また、そのプログラミングのソースコードは、コンソールで、「code .」とコマンドを実行することで、Visual Studio Codeを起動し、そこからProgram.csのファイルを見ることで確認できました。

今回開発するアプリ

では、今回は、習得した基本手順を使って新たなコンソールアプリを作ります。作るアプリは、「次のレースに来る馬番を適当に予想する」というアプリです。

例えば、16頭立てのレースだった場合、1〜16までの数値を適当に選んでくれるアプリというわけです。イメージとしては、全く詳しくないレースを「神頼み」で予想する感じですね。実際には、神頼みではなく、コンピュータ頼みとなりますが。

では、プログラミングを始めて行きましょう。まず、.NET Core環境の基本でご紹介した手順を参考に、新規にProgram.csのソースコードを生成してください。

Program.csのソースコードを生成したら、Visual Studio Codeで、そのソースコードを開いてください。そしてソースコードを、次のように修正してください。

Program.csのソースコード

using System;

namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            //16頭立て
            int toudate = 16;

            //1〜16のうちランダムな数字をkekkaに設定する
            var random = new Random();
            int kekka = random.Next(1, toudate+1);

            //kekkaをコンソールに出力する   
            Console.WriteLine($"次のレースは、{kekka}番の馬が来るよ");            
        }
    }
}

ソースコードを修正したら、保存します。保存後、コンソールから「dotnet run」コマンドを利用すると、コンソールに次のような実行結果が得られます。

この画像は、macOSのターミナルで実行したものですが、WindowsのPowerShellから行っても同じ結果を得られます。

で、上の画像において、赤枠で囲われた「次のレースは、14番の馬が来るよ」という部分が、このプログラムを実行した出力結果です。コンピューターに、1〜16までの数字を適当に選ばせて、その結果14が選ばれたというわけですね。

ちなみに、コンソールから「dotnet run」を何度も繰り返すと、この予想される馬番は、毎回変わります。

人間に、「1〜16までの数字のうち、1つを適当に選んで言ってみて」ということ何度も繰り返すと、偏りが出てしまうものですが、コンピューターは、何の苦もなくそれをしてくれるわけですね。

「変数」という概念を理解する

さて、上でご紹介したProgram.csのソースコードについて、1行1行詳しく解説しても良いのですが、あえてしません。というのも、あまりに一度に多くのことをお伝えすると、理解するのが大変だからです。

そこで、ポイントを絞りますと、今回は、このソースコードから、「変数」という概念を理解してください。

「変数」は、このソースコードで言うところの次の行で利用しています。

int toudate = 16;

ここでは、レースの頭立てが何頭かを示す数として、toudateという変数を利用しています。ちなみに、その前のintは、変数の型を表しており、この場合は、整数を意味しています。英語の整数を意味するintegerを略して、intというわけですね。

で、実際の競馬のレースは、常に16頭立てのレースとは限りませんよね。なので、いつも、1〜16の数値から馬番を選ばれても困ってしまいます。

なので、このプログラムでは、頭立ての数を変えられる数、つまり、変数として定義しています。

では、例えば、12頭立てのレース結果を予想したければ、どのようにプログラムを変更したら良いかというと、次の通りです。

int toudate = 12;

このようにソースコードを修正後、コンソールから「dotnet run」を実行すると、今度は、1〜12の範囲の馬番しか予想されなくなります。

次に読むべき記事:そのレースが何頭立てかを後から変えられるようにしたコンソールアプリ

Return Top