HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2018
0125
おにぎり数字の記憶4解決


おにぎり

リンク

2018/1/25(Thu) 15:51:20|NO.82339

おにぎりです。

数字あてゲームのようなものを作っています。
1ターン終わるごとに出てくる数字を記憶していって、過去の記録として画面上に書く。
ということをしたいのです。

ただ、変わっていく数字を、違う関数にどんどん保存していくという方法がわかりません。
構想だけでもいいので教えてくださるとありがたいです。



この記事に返信する


Y_repeat

リンク

2018/1/25(Thu) 16:03:05|NO.82341

スタック構造とかどうですか?
https://ja.wikipedia.org/wiki/スタック
以前はアルティメットさんのとこで 講座書いてたんですけどLINK切れでして
手前味噌ですが それっぽいの以前書きました
http://zuzazann.main.jp/wiki4/index.php?ws_010_stack

溜めっぱなしもよくなさそうですが
大量に溜めるケースでもなさそうですね

追記
こっちの方がいいかな?
https://wiki.hsp.moe/ラボ/スタック.html



あまら

リンク

2018/1/25(Thu) 16:39:08|NO.82342

HSPではモジュールとか使わない限り変数はグローバルなので
配列変数で充分なのでは?

1ターンで出て来る数字が複数あるのなら
2次元配列にするという手もあります。



沢渡

リンク

2018/1/25(Thu) 23:29:02|NO.82344

スペースを押すたびにサイコロを振り、履歴を配列変数に最大30件登録し、
オーバーした分は過去の分から消えていくというサンプルを作ってみました。


#const max 30 //履歴の最大数 dim past,max //履歴 p_num=0 //履歴の件数 dice=-1 //サイコロの目。-1の場合はまだ振っていない状態 randomize onkey gosub *roll stop *roll if iparam!=32 : return //スペースキーを押した時のみ反応 if dice!=-1 { repeat max-1 : past(max-1-cnt)=past(max-2-cnt) : loop //履歴を後ろに1つシフト //memcpy past,past,max*4-4,4,0 //たぶん↑よりもこちらの方が早い past(0)=dice : p_num=limit(p_num+1,0,max) //件数はmaxは超えない } dice=(rnd(6)+1)+(rnd(6)+1) //6面サイコロを2つ振る color 255,255,255 : boxf color 0,0,0 pos 0,0 : mes "サイコロの目:"+strf("%2d",dice) pos 0,40 : mes "履歴" //履歴を表示 repeat p_num pos 30*(cnt\10),20*(cnt/10)+60 mes strf("%2d",past(cnt)) loop return



おにぎり

リンク

2018/1/30(Tue) 22:29:33|NO.82377

ありがとうございます〜。
参考になります!



ONION software Copyright 1997-2018(c) All rights reserved.