- タイトル
ソリティアゴルフ (電子工作マガジン2016年SPRING号掲載) - 内容
ソリティアゴルフというトランプゲームです。
山札に場札を重ねていき、全ての場札を山札に重ねるゲームです。 - 遊び方
表向きに置かれた山札よりも数字が1つ大きいか小さいカードを重ねていきます。
重ねられるのは各列の最下段にあるカードのみです。
Jは11、Qは12、Kは13と表示されます。
AとKは繋がっています。(例:K-A-2や、2-A-Kのように繋げられる)
重ねられるカードがなくなったら山札から1枚引いて表向きに置き、再び場札のカードを重ねていきます。
場のカードと山札がすべて無くなったらゲームクリアです。
場にカードが残った状態で山札が無くなってしまったら失敗です。
ゲームが終了すると、かかった時間が表示されます。 - 操作方法
カード列上部にある[0]~[6]の数字を入力すると、その列の最下段のカードが山札に重ねられます。
[-1]を入力すると、新たに山札から1枚めくられ表向きに置かれます。
残りのカードが0枚以下になるとゲーム終了です。 - プログラムのしくみ
- プログラムの具体的な入力方法
プログラムリスト中の「□」はスペース1個です。(例:「□□□」はスペース3個)
カードの枠線は「左ALT+SHIFT+キー」で入力します。
━ 左ALT+SHIFT+H
┃ 左ALT+SHIFT+I
┏ 左ALT+SHIFT+O(オー)
┓ 左ALT+SHIFT+P
┗ 左ALT+SHIFT+Q
┛ 左ALT+SHIFT+R - プログラムの改造
ルールによってはAとKが繋がらないルールもあり、その場合は難易度が上がります。
AとKを繋がらないルールにするには、9行めのIF文の判別式を下記のように変更します。
ABS(N-T)%11<>1 → ABS(N-T)<>1
各行の処理 | |
---|---|
1行 | コメント(ファイル名) |
2行 | カードをランダムに配列に収める |
3~4行 | 場札を並べて表示 |
5行 | 山札表示 |
6行 | ゲーム終了判定 |
7行 | 移動するカードを入力 |
8行 | 列の最下段サーチ |
9行 | 場札±1のカードか判定 |
10行 | 場札から山札にカード移動 |
11~13行 | カードの枠線描画 |
14行 | 入力待ちに戻る |
20行 | 山札の枠線描画 |
21行 | カードのマーク、数字、枠線描画 |
変数表 | |
---|---|
I | ループ用 |
J | 各種計算用一時変数 |
X | カードのインデックス |
Y | 山札のインデックス |
T | 山札の数 |
C | 選んだ場札の列 |
B | 選んだ場札の数 |
K | 選んだ場札のインデックス |
X | 動かした場札のインデックス |
N | カードの数字 |
R | 描画したカードの数字 |
U | カード描画X座標 |
V | カード描画Y座標 |
P | カード下部描画X座標 |
Q | カード下部描画Y座標 |
[0]~[51]の配列に、ランダムに0~51の数字(カード)が収まります。
カードは、0~12がスペード、13~25がハート、26~38がクラブ、39~51がダイヤになります。
配列に入っている数を13で割った商がマークになり、余りが数字となります。
ソリティアゴルフ |
---|
1 'ソリティアゴルフ 2 CLV:CLT:Y=35:FORI=0TO51:J=RND(52):IF[J]I=I-1ELSE[J]=I:CLS:?I 3 NEXT:CLS:FORI=0TO34:U=I/5*4:V=(6-(I%5))*2-2:X=[I]:GOSUB21:IFI<7LCI*4+1,0:?"[";I;"]":LCI*4,12:?"┃":LCI*4,13:?"┗━━━":IFI<5LC28,I*2+3:?"┃" 4 NEXT:LC28,12:?"┃":LC28,13:?"┛":LC0,16:?"[-1]":[52]=[51] 5 LC8,18:?CHR$(12),"ノコリ ";51-Y;"マイ":X=[Y]:U=0:V=18:GOSUB20:?"□":T=R 6 IFY=52LC10,22:?"TIME=";TICK()/60;"sec":LC10,20:IFZ=35?"Congratulations!":ENDELSE?"GAME OVER.":END 7 LC4,19:?"┃":LC10,20:?CHR$(24);:INPUT"CARD=",C:IFC<0Y=Y+1:GOTO5 8 FORI=0TO4:K=(C%7)*5+I:B=[K]:IFB>=0:I=5:N=B%13+1ELSEN=T 9 NEXT:LC10,22:?CHR$(24);:IFABS(N-T)%11<>1?"ウゴカセマセン":GOTO7 10 U=0:V=18:X=B:GOSUB20:T=N:[Y]=[K]:[K]=-1:Z=Z+1:?"□":P=K/5*4:Q=(6-(K%5))*2:LCP,Q-2:?"┃□□□":LCP,Q-1:?"┗━━━":LCP,Q:?"┃□□□":LCP,Q+1:?"┃□□□" 11 IFC>0IF[K-5]>=0GOTO13 12 LCP,Q:?"□":LCP,Q+1:?"□" 13 IFC=6OR[K+5]<0LCP+4,Q-2:?"┃":LCP+4,Q:?"□":LCP+4,Q+1:?"□" 14 GOTO6 20 LCU+4,V+1:?"┃":LCU,V+2:?"┃□□□┃":LCU,V+3:?"┗━━━┛" 21 R=X%13+1:LCU,V:?"┏━━━┓":LCU,V+1:?"┃";CHR$(X/13+228);R;:RETURN |
MixJuiceでのダウンロードURLは下記になります。
ソリティアゴルフ http://tagiyasoft.blog.jp/solitaire_golf.bin
以下のように入力してD/Lしてください。
NEW ? MJ GET tagiyasoft.blog.jp/solitaire_golf.bin |
ブラウザでD/LしてIchigoJamに転送する場合は、通信ソフトでバイナリ送信をしてください。
(例:TeraTermの場合は、メニューの[ファイル]-[ファイル送信]で当該ファイルを送信します)
コメント