ブログトップ

電子工作やってみたよ

HP15C 石取りゲーム(ニムゲーム)

HP15C石取りゲーム(ニムゲーム)
物置からHP25ミニのプログラム集(YHP発行)が出てきました。
その中で”石取りゲーム”がありましたので HP15C用に改造してみました。

c0335218_11114301.jpg



























HP25ミニはプログラム中にラベルが使えません。 GTOの飛び先はすべてステップNoで指定します。
このためプログラムの追加や削除を行うとすべてのGTOの行き先を修正する必要があります。
HP15Cでは飛び先をラベルで指定しますので今回25ミニのプログラムにラベルを付けることと多少使いやすくするための改造を行いました。
石取りゲームの説明
石取りゲームはN個の石の山(正の整数)から始めます。各競技者(コンヒュータと人間)は、残りが1個になるまで交互に1~3個を取っていきます。
最後の1個を取らされた競技者が負けです。  ゲームを始めるときの初期値Nはソフトで15を設定していますがプログラムのステップNo15,16の所で変更できます。
各自が石を取るたびに、残りの数が表示されます。 負の符号(-)が出ているときには、あなたが石を取ることを示し、正の整数の表示には15Cが石を取ることを示しています。 プログラムを起動したらまずあなたが挑戦者です。-15と表示されていますから先に石を取ってください。 1回に取る石は1個以上3個までです。

操作手順

1、下記のプログラムを入力して下さい。
2、f A と押してプログラムをスタートさせます。
3、最初 -15 と表示されます。 あなたの番ですので1~3の数値を入れて R/S を押します。
4、正の整数が表示されます。 15Cの番ですのでただ R/S と押します。
5、15Cが取った数を引いた残りの数が ー で表示されます。あなたの番ですのでまた1~3の数値を入れて R/S を押して下さい。
6、以上のことを最後 1をとるまで続けてください。あなたが勝つと I.LOSE(負けた)と表示され、あなたが負けるとBLISS(至福)と表示されます。
これは 15Cを上下逆さまにして読んでくださいね。

HP15Cはとても強いです。 最初はプログラムのムシがあって勝てないのじゃないかと思っていたのですが、ある法則を探せば勝つことが出来ます。
わずか49ステップの中にこれだけのことを入れたのに感心するばかりです。 アルゴリズムを解読しようと1日プログラムをいじりまわしていたのですがわからないので諦めました。 
下記リストは 左2桁がステップNoです 次がキー入力する命令 右側の数値がキーコードです。
入力後 キーコードとの対応を確認すればミスが検出できるとおもいます。


ステップ 命令 HP15C キーコード

01 LBL A ------42,21,11
02 5 ------------ 5
03 5 ------------ 5
04 1 -------------1
05 7 ------------ 7
06 8 ------------ 8
07 STO 3 ------- 44,3
08 3 ------------ 3
09 5 ------------ 5
10 0 ------------ 0
11 7 ------------ 7
12 . ------------ 48
13 1 ------------ 1
14 STO 4 ------ 44,4
15 1 ----------- 1
16 5 ----------- 5
17 STO 0 ------ 44,0
18 FIX 0 ------- 42,7,0
19 CHS -------- 16
20 R/S --------- 31
21 ENTER ------ 36
22 LBL B ------- 42,21,12
23 1 ------------ 1
24 STO 2 ------- 44,2
25 R↓ ----------- 33
26 LBL C --------- 42,21,13
27 STO -0 ------- 44,30,0
28 RCL 0 -------- 45,0
29 X=0? --------- 43,20
30 GTO 2 -------- 22,2
31 STO *2 ------- 44,20,2
32 RCL 2 --------- 45,2
33 R/S ------------ 31
34 X<<>>Y ------ 34 ---- X,Yチェンジ
35 TEST 3 ( X>=0? ) ---- 43,30,3
36 GTO D --------- 22,14
37 X<<>>Y ------ 34 X,Yチェンジ
38 GTO B --------- 22,12
39 LBL D ---------- 42,21,14
40 1 --------------- 1
41 CHS ------------ 16
42 STO 2 ---------- 44,2
43 0 --------------- 0
44 STO 1 ---------- 44,1
45 LBL E ----------- 42,21,15
46 RCL 1 ----------- 45,1
47 3 ---------------- 3
48 TEST 5 ( X=Y? ) ---- 43,30,5
49 GTO 1 ----------- 22,1
50 1 ----------------- 1
51 STO +1 ---------- 44,40,1
52 CHS -------------- 16
53 RCL 0 ------------ 45,0
54 + ----------------- 40
55 RCL 1 ------------ 45,1
56 - ----------------- 30
57 4 ----------------- 4
58 ÷ ---------------- 10
59 FRAC ------------ 42,44
60 TEST 0 ( X<>0? ) ---- 43,30,0
61 GOTO E --------- 22,15
62 RCL 1 ----------- 45,1
63 GTO C ---------- 22,13
64 LBL 1 ----------- 42,21,1
65 1 ---------------- 1
66 GTO C ---------- 22,13
67 LBL 2 ----------- 42,21,2
68 RCL 2 ----------- 45,2
69 TEST 2 ( X<0? ) ----- 43,30,2
70 GTO 3 ---------- 22,3
71 RCL 3 ----------- 45,3
72 GTO 5 ----------- 22,5
73 LBL 3 ------------ 42,21,3
74 RCL 4 ----------- 45,4
75 FIX 1 ------------ 42,7,1
76 LBL 5 ----------- 42,21,5
77 R/S --------------- 31

使用レジスタ
R 0 現在の残数
R 1 HP15Cの手
R 2 ±合計
R 3 55178
R 4 3507.1


トラックバックURL : https://telmic.exblog.jp/tb/22916376
トラックバックする(会員専用) [ヘルプ]
Commented by すがわら at 2014-11-02 15:17 x
RPNのプログラム.. 解読が大変そうです。35cに入れようと思ったら電池切れになってましたし...
学生時代からずっとカシオのFX-502P/602Pを使ってましたが、復刻しないかな。いろんなプログラムを作って遊んでました。テープI/Fまで有るちょっと大げさな電卓でしたけど。
今ならメモリーカードを利用してLOAD/SAVEでしょうね。
Commented by telmic-gunma at 2014-11-03 05:14
ありがとうございます。
私の35sも電池交換しました。付属の電池すでにくたびれていたのかスピードアップしたので大食いなのかわかりませんけれど。
石取りゲーム すでにHP35sに移植してあります。今日アップします。 いま ”月着陸ゲーム” をHP15Cに移植中です。うまく動くか判りませんが 出来ればそれをHP35sに移植していただけますか? 外部メモリーはほんとにほしいですね。HP97には磁気カードがあってよかったのですが御臨終してしまいました。
名前
URL
削除用パスワード

※このブログはコメント承認制を適用しています。ブログの持ち主が承認するまでコメントは表示されません。

by telmic-gunma | 2014-10-29 11:58 | HP電卓 | Trackback | Comments(2)