イントロダクション
「フォーク」というのは、Githubのプロジェクト(リポジトリ)からソースを取得します。そして、変更した内容をGithubのリポジトリの所有者に対して変更を依頼する「プルリクエスト」を送信することができます。
「クローン」という操作も「フォーク」と同様に、編集したり自由に扱うことができます。「フォーク」との違いは、「元の上流リポジトリに影響を与えることなしに、プロジェクトに対して自由に変更を加えることができます。」というところです。※引用です。
ちょいと縁があり、北海道は旭川のプログラミングコンテストのプログラムに触れる機会があったのでメモがてらに記載いたします。
インデックス
- Gitでフォークする方法
- 実際に対象のリポジトリからフォークした時の手順
- Mac環境でのC++をコンパイル〜実行
U16-旭川プログラミングコンテストで使用する、GitリポジトリにあるCHaserServerをフォークしてMac用にコンパイル、実行してみようと思います。参照するリポジトリはこちらです。
Forkする
あまりにも簡単だったので記載することがほとんどないのですが、以下に示します。(ちなみに下の画像はフォーク後です)
<手順>
- 一度、自分のGithubにログインしておく
- フォークしたいリポジトリへ移動
- 下の様な「Fork」と書いてあるボタンを押下する
※フォークした後なので非活性状態になっています。
これだけでフォークされました。
余談
U16-プログラミングコンテストは旭川で行われているという記載がありますが、昨年などは札幌の方で予選を行い、決勝戦を旭川で。。。という様な流れで行われました。
実際に中学生〜高校1年生かな?(16歳以下)が参加して行います。札幌大会の優勝者はハイスペックなパソコンをもらっていました。ちなみに自分はデモンストレーションで、高専の先生とバトルしました。
そして、プログラミングコンテストで使用する。競技用プログラムは「CHaserServer」というサーバーにアクセスしてプログラムでCool,「C」とHot「H」を操作して勝敗をつけます。ちょっとみづらいですが下に「C」と「H」がいます。
サーバーの起動ファイル(Windowsならexeファイル)を実行すると下の様な画面が出てきます。ここの「TCPユーザー」が実際にプレイヤーにあたります。
これを選択した状態で右にある「待機開始」ボタンを押下すると待機が始まります。つまり、クライアントアプリでのアクセスを待ちます。
クライアントアプリを作る
プログラミングコンテストの競技部門では、上記のサーバーを使用して(多分。。。)クライアントアプリでルールに則り勝敗を決します。
まぁダイヤモンドをとったり、相手を壁に挟んだり。。。ってな感じです。
実際のクライアント「H」のプログラムがこちらのZIPファイルです。
こいつをカスタムして、ゲームをやるもよし、競技に出場するのもよし!
そして、サーバーには、データを送信すれば良いので、クライアントアプリはC言語でも、Pythonでもなんでも良いです。自分はJavaで実装しました。
でわでわ。。。