グループで 「じゃんけん大会」 by 前田 稔

最大16名が参加して、一斉に「じゃんけん大会」をします。
このプログラムは、C言語でネットワークゲームを作成するための教材として作成したものです。
ゲームプログラムの作成は 前田稔の超初心者のプログラム入門 から 「C言語 Windows/じゃんけんゲーム」を参照して下さい。

前田稔(Maeda Minoru)の超初心者のプログラム入門

ゲームの実行

  1. このゲームはネットワークで接続された複数のパソコンで実行することが前提です。
    プログラムの実行をテストするだけならば、1台のパソコンで行うこともできます。
  2. 「じゃんけんゲーム」のプログラムは二種類のプログラムで構成されています。
    Jyansvr.exe 「じゃんけんゲーム」のサーバープログラム
    Jyancli.exe 「じゃんけんゲーム」のクライアントプログラム
  3. 最初にサーバープログラムを起動してセッションを開設して下さい。
  4. セッションを開設したサーバーに対して、複数のクライアントからログインします。
  5. ログインにはサーバーのIPアドレスが必要ですが、サーバーで ipconfig コマンドを実行すると表示されます。
    C:\>ipconfig
  6. サーバーとクライアントの画面には、画像でゲームへの参加状況が知らされます。
  7. ゲームの進行は、サーバー側のボタン操作で行います。
    詳細は Server 側のボタン操作を参照して下さい。
  8. WindowsXP では [Windows ファイアウォール] が設定されていてネットワークに接続できないことがあります。
    そのときは [コントロールパネル][ネットワーク接続] を開いて、ローカルエリア接続のプロパティから [詳細設定][詳細] ボタンで [Windows ファイアウォール] を無効にして下さい。

ゲームの進行

ゲームの進行状態を管理するために、次の Stage を設定します。
  1. Login Stage(STG=0)
    Login を待っている状態で、最大16人の Client が Login してゲームに参加できます。
    参加者が揃えば Start ボタンで STG=1 へ移行します。
  2. Start Stage(STG=1, 4, 7, 10, ...)
    STG>=3 から移行してきたときは、ゲームの敗者/勝者を確定します。
    勝ち残っている Client を確定して次のゲームの準備をします。
    準備が終われば自動的に STG=2 に移行します。
    当初はボタン操作を予定していたので Stage を分けています。
  3. Play Stage(STG=2, 5, 8, 11, ...)
    Server は、勝ち残っている Client に対して「グー/チョキ/パー」を要求します。
    全員の手が揃えば Disp ボタンで STG=3 へ移行します。
  4. Display Stage(STG=3, 6, 9, 12, ...)
    参加者全員の手(グー/チョキ/パー)を公開して Client の確認を取ります。
    全員の確認が終われば Start ボタンで STG=4(二回戦) へ移行します。
    三回戦は STG=7, 四回戦は STG=10 ... と進んで行きます。
  5. GameOver Stage(STG=99)
    優勝者が決まってゲームが終了した状態です。
    Reset ボタンで次のゲーム(STG=0) へ移行します。
Server 側のボタン操作です。
  1. START Button
    セッションを開設して Client の参加を待ち、人数が揃ったときにクリックします。
    または、ゲーム参加者の手を公開して、全員の確認が終わったときにクリックします。
    一回戦(STG=1)では参加者全員の flg を ON に、画像を1に設定してゲーム開始です。
    二回戦(STG>=4)以降では、敗者の flg を OFF に、画像を0にします。
    勝者は flg を ON のままで、画像を1に設定します。
  2. DISP Button
    ゲームに参加している Client の手が揃えば Disp ボタンをクリックして全参加者の手を公開します。
    Client は「グー/チョキ/パー」の結果を確認して確認ボタンをクリックします。
  3. RESET Button
    強制的に Login 状態に切り替えます。
  4. END Button
    Srever のプログラムを終了します。
Client 側のボタン操作です。
  1. LOGIN Button
    ID と URL を設定してゲームに Login します。
  2. グー Button
    「グー」の手を送信します。
  3. チョキ Button
    「チョキ」の手を送信します。
  4. パー Button
    「パー」の手を送信します。
  5. 確認 Button
    公開された全員の手の確認が終わったことを通知します。
  6. END Button
    Client のプログラムを終了します。
Server が管理する各 Client の情報です。
  1. char id[18];
    Client を管理するIDを格納します。
    "?" のときは Login されていません。
  2. short gra;
    表示する画像の番号(0 ~ 5)を格納します。
    0番 空き状態を示す模様の無い画像
    1番 Login を示す「にこマーク」の画像
    2番 出す手を決めたときの、?付きの「にこマーク」の画像
    3番 「グー」の画像
    4番 「チョキ」の画像
    5番 「パー」の画像
  3. short flg;
    1: 勝ち残ってゲームに参加している Player
    0: 負けてゲームに参加していない Player
  4. short ans;
    Client からの「手の送信」と「勝負結果の応答確認」の促進メッセージを制御します。
    2: Client に送る促進メッセージが設定された状態
    1: 促進メッセージを Client に送信する状態
    0: 通常のモード
  5. short ply;
    Client から送信されてきた「グー/チョキ/パー」の手を格納します。
    格納する値 Client の手
    グー
    チョキ
    パー

Down Load

Down Load した jyankeng.exe を起動するとゲームプログラムがインストールされます。
[スタート][プログラム] から [jyanken] に格納されているプログラムを実行して下さい。
jyankeng.exe の Down Load
jyankeng.lzh の Down Load