記録

記録

PR

プロフィール

うつにゃあ

うつにゃあ

カレンダー

フリーページ

キーワードサーチ

▼キーワード検索

2010年02月04日
XML
カテゴリ: コンピュータ

用意したものは、Borland C++ 5.5のmakeと、PL/I-86です。

--- Makefile ---

PLIBINPATH=c:\pli86\bin
SYSFILE=pli0.ovr pli1.ovr pli2.ovrLIBFILE=plilib.l86
PROG=stone

${PROG}.exe: ${PROG}.obj ${LIBFILE} link86 ${PROG},${LIBFILE}

${PROG}.obj: ${PROG}.pli ${SYSFILE} pli ${PROG}

pli0.ovr: copy ${PLIBINPATH}\$@ .

pli1.ovr: copy ${PLIBINPATH}\$@ .

pli2.ovr: copy ${PLIBINPATH}\$@ .

plilib.l86: copy ${PLIBINPATH}\$@ .

clean: -del ${PROG}.obj ${PROG}.sym ${SYSFILE} ${LIBFILE}

clobber:
 -del ${PROG}.exe ${PROG}.obj ${PROG}.sym ${SYSFILE} ${LIBFILE}

--- stone.pli ---

 STONE: PROCEDURE OPTIONS(MAIN);
     DECLARE STONES FIXED(15);
     DECLARE TAKE FIXED(15);

 START:
     PUT SKIP LIST('STONES(1-30) ? ');
     GET LIST(STONES);
     IF (STONES < 1) ! (STONES > 30) THEN
       DO;
         PUT LIST('ERROR');
         GO TO START;
       END;

     PUT LIST('*** START ***');

 LOOP:
     PUT SKIP LIST('STONES = ', STONES, ' :');
     IF STONES = 1 THEN
       PUT LIST('TAKE(1)   ? ');
     ELSE
       IF STONES = 2 THEN
         PUT LIST('TAKE(1-2) ? ');
       ELSE
         PUT LIST('TAKE(1-3) ? ');

     GET LIST(TAKE);
     IF (TAKE < 1) ! (TAKE > 3) ! (TAKE > STONES) THEN
       DO;
         PUT LIST('ERROR');
         GO TO LOOP;
       END;

     STONES = STONES - TAKE;
     IF STONES = 0 THEN
       DO;
         PUT SKIP LIST('*** I WIN.');
         GO TO FINISH;
       END;

     TAKE = STONES - ((STONES / 4) * 4) - 1;
     IF TAKE < 0 THEN
       TAKE = 3;
     IF TAKE = 0 THEN
       TAKE = 1;

     PUT LIST('STONES = ', STONES, ' : I TAKE ', TAKE);
     STONES = STONES - TAKE;
     IF STONES = 0 THEN
       DO;
         PUT SKIP LIST('*** YOU WIN.');
         GO TO FINISH;
       END;

     GO TO LOOP;

 FINISH:
     END STONE;

ルールは、プレイヤーとコンピュータが交互に1~3個の石を取っていって、最後の1個を取った人が負けです。

最初に石の数を聞いてくるので、1~30の数を入力します。
あとは、石をいくつ取るか聞いてくるので、1~3の数を入力します。プレイヤーが石を取ると、次にコンピュータが石を取ります。
石がなくなるとゲーム終了で、どちらが勝ったかを表示します。

PL/I-86は、コンパイルでエラーになってもOBJファイルが残ってしまうことがあって、エラー発生時はmakeを繰り返し実行するだけではうまくEXEファイルを作れません。makeで失敗したら、make cleanかmake clobberしてからmakeし直す必要があります。






お気に入りの記事を「いいね!」で応援しよう

最終更新日  2010年02月05日 02時44分44秒
コメント(2) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: