ぱに~にさん
>う~ん…パソコンをうわべでしか使ってないおいらにはチンプンカンプンでふ( ̄~ ̄;)

いえいえ、MakefileもUNIX関係のプログラマしかわからなさそうですし、PL/Iなんて今では使える人もあまりいないんじゃないかと思いますよ。
ちょっと仕事でPL/I系の言語を使っているので、勉強用にPL/Iを使ってみているところです。
(2010年02月06日 18時29分08秒)

記録

記録

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) | コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
上の画像で表示されている数字を入力して下さい。


利用規約 に同意してコメントを
※コメントに関するよくある質問は、 こちら をご確認ください。


こんばんは  
ぱに~に  さん
う~ん…パソコンをうわべでしか使ってないおいらにはチンプンカンプンでふ( ̄~ ̄;)
(2010年02月05日 21時17分09秒)

Re:こんばんは(02/04)  
うつにゃあ  さん

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: