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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0323
プログラミング初心者hspATMの作り方について20解決


プログラミング初心者

リンク

2015/3/23(Mon) 14:20:18|NO.68053

hspの言語だけでATMを作りたいと思っています。
どういうふうに構成していけばいいですか?
あとATMはオフラインで実際に使えるやつでお願いします



この記事に返信する


tenno

リンク

2015/3/23(Mon) 17:17:27|NO.68057

ATMって銀行のお金をあずけたり引き出したりするサービスのことを言っているんですか?



プログラミング初心者

リンク

2015/3/23(Mon) 18:01:47|NO.68058

訂正擬似ATMです



窓月らら

リンク

2015/3/23(Mon) 20:12:14|NO.68060

よくRPGである「預け所」みたいなのかな?
機能は、預ける、引き出す、残高照会 だけかと。
所持金と貯金のお金を変数で管理して、
預けるときは、そのぶん所持金から引いて、貯金を増やす。
引き出すのはその逆だけど、貯金額以上引き出そうとしたら引き出せないようにする。
残高紹介は貯金の変数をそのまま表示すればok。

画面の見た目はご自由に。
HSP3Dishならタッチパネルも容易に再現できますね。



窓月らら

リンク

2015/3/23(Mon) 20:25:47|NO.68061

操作系はATM程度なら1点タッチで十分なので
ふつうにマウスのクリックで操作するのと同じように書けばいいです。



KA

リンク

2015/3/23(Mon) 22:31:18|NO.68066

その「ATM」に必要な機能を具体的に書いて下さい。

例えば「預金」とだけ書いても、カードや通帳の仕組み・利
息の有無・手数料の有無・明細発行の有無など、色々有りま
す。暗証番号を複数回間違えてロックされる機能や、それを
解除させる仕組みも必要なのかな?



プログラミング初心者

リンク

2015/3/24(Tue) 08:49:01|NO.68082

PC上だけで動けばいいので通帳・カードの読み込みは入りませんその他は入ります



プログラミング初心者

リンク

2015/3/24(Tue) 08:57:35|NO.68083

通帳・カードはUSBメモリに擬似データを作ってそれを読み込ませるということができると
いいです



プログラミング初心者

リンク

2015/3/24(Tue) 17:39:55|NO.68101

お願いします教えてください



窓月らら

リンク

2015/3/24(Tue) 19:53:42|NO.68102

必要な処理が決まったのでしたら
それを1つ1つ、どうやって書いていけばいいか考えてみてください。
まずは、HSP言語の基本的なことは理解されてますでしょうか?
変数に値を代入して、それを計算し、判定するといった基本的な事です。
これが理解できていれば、あとはGUIなどのインターフェイスをデザインし
それをどうやって描画して、どう判定(ボタンを押したら○○をする等)するか
1つ1つ試して行き、組み上げていきます。

いきなりサンプル(答え)を待っていても作れるようにはなりませんので
まずは、様々なサンプルを実行してみてコードとにらめっこ(分析)してください。
HSPのsampleフォルダにも沢山入ってますから、それらも参考にしてください。



窓月らら

リンク

2015/3/24(Tue) 20:16:57|NO.68103

命令文(シアン色に表示されてる文など)にカーソルを合わせて
F1キーを押すとその命令の説明が出てきます。
様々なサンプルで、1つ1つ命令の意味を覚えていってください。



nepisat

リンク

2015/3/24(Tue) 20:24:42|NO.68104

スクリプトの書き方として簡単な例

まず、ATMの構造を考える。
・基本的なお金の計算をする
・お金の入力をする
・情報を保存/読み込みする

これが基本だとして、HSPで計算する方法がわからなければ
Google等で「HSP 計算」と検索してみる。

また、情報の保存/読み込み方法をどうするか考えると、
テキストに保存したり..となる。
ここでテキストに保存する方法がわからなければその方法を調べる
後はテキストを暗号化しようボタンをつけようグラフィックを...という風な感じで



KA

リンク

2015/3/24(Tue) 22:15:46|NO.68107

>>通帳・カードの読み込みは入りませんその他は入ります

”例えば預金”と書いただけですよ?
引き出し・振り込み・ローンなど、ATMの機能は多数有ります。
利息計算・自動引き落とし・限度額など、銀行の制約も出てきます。

どういう機能が必要なのか、とにかく「具体的」に書いて下さい。
現在の質問内容は「RPGを作りたい」と同じくらい、漠然としています。



プログラミング初心者

リンク

2015/3/25(Wed) 00:11:02|NO.68108

擬似ATMで使いたい機能は
USBを使い口座データを読み込み・書き込み(詳細は以下)
1、引き出し・預け入れ
2、残高照会
3、暗証番号変更・初期化(解除)←(たとえば初期値は0000)
ぐらいです。



窓月らら

リンク

2015/3/25(Wed) 02:46:45|NO.68109

誰かがコードを書いてくれるのを待ってても始まりません・・。
目的の処理をするにはどんな方法があるのかを考えてください。
HSPの命令リファレンス(ヘルプ→命令リファレンスを開く)は読みましたか?
意味は分からずとも、それらに目を通すのが先かと。

基礎的な部分は、どんな言語でも共通です。
少なくとも、プログラミングの基礎は自力で学んでください。
でないとその先に進めません。(誰かがコードを書いてくれても理解できない)

ボタンを押したら文字が表示される、くらいから始めてください。

c=0 // カウンタの初期値 objsize 200,40 // ボタンのサイズ pos 220,200: button gosub "押してね",*push stop *push c++ // +1 pos 0,0: color 255,255,255: boxf 0,0,640,480 // 画面を塗り潰し pos 240,250: color 0,0,0: mes "押されました:"+c+"回目" return



プログラミング初心者

リンク

2015/3/25(Wed) 10:21:12|NO.68113

ここまではできました

*top cls mes"いらっしゃいませ" mes"お取引内容をお選びください。" button"お引き出し",*ohkds button"お預け入れ",*oakir button"残高照会",*zdsk stop *ohkds cls mes"-----お引き出し-----" button"戻る",*top stop *oakir cls mes"-----お預け入れ-----" button"戻る",*top stop *zdsk cls mes"-----残高照会-----" button"戻る",*top stop



プログラミング初心者

リンク

2015/3/25(Wed) 11:42:38|NO.68115

Ver.2

*top cls title"いらっしゃいませ" mes"お取引内容をお選びください。" button"お引き出し",*ohkds1 button"お預け入れ",*oakir button"残高照会",*zdsk button"終了",*shut stop *ohkds1 cls mes"-----お引き出し-----" title "パスワード入力" mes "パスワードを入力してください" mes "パスワードで保護されています" paswor = "" input paswor , 200 , 4 button goto "Enter" , *chekuin1 pos 500,610 button goto "戻る" , *top stop *chekuin1 if paswor = "9999" :goto *ohkds2 :else :goto *damedesu1 stop *damedesu1 dialog "パスワードが違います。" goto *rock1 stop *ohkds2 cls mes"qqqq" stop *rock1 cls title"ロックされました" mes"ロックされました" mes"*解除不能*" stop *oakir cls mes"-----お預け入れ-----" button"戻る",*top stop *zdsk cls mes"-----残高照会-----" button"戻る",*top stop *shut cls title "パスワード入力" mes "パスワードを入力してください" mes "パスワードで保護されています" paswor = "" input paswor , 200 , 8 button goto "Enter" , *chekuins pos 500,610 button goto "戻る" , *top stop *chekuins if paswor = "kanrisha" :goto *syuryou :else :goto *damedesus stop *syuryou dialog "終了します" , 0 , "終了確認" goto *sdown stop *damedesus dialog "パスワードが違います。" goto *top stop *sdown end



kanamaru

リンク

2015/3/25(Wed) 14:34:47|NO.68116

アドバイスを数点。
・インデントをする。(見やすくなる。)
※もしtabが投稿に使えないからしてないとのことならすいません
・同じ処理はできる限りひとつにまとめる。
・パスワードを別ファイルにするなどする。(セキュリティ上の問題あり。)
言葉だけだと分からない時があるので、いくつか参考までに

#module "password" #define global passcheck(%1,%2,%3) bunki1=%2:bunnki2=%3:passcheck2 %1,%2,%3 #deffunc passcheck2 str pw,var p1,var p2 title "パスワード入力" mes "パスワードを入力してください" mes "パスワードで保護されています" paswor = "" input paswor , 200 , 8 button goto "Enter" , *chekuins pos 500,610 button goto "戻る" , *top stop *chekuins if paswor = pw { goto p1 }else{ goto p2 } stop #global
上記スクリプトはパスワード判定を新規命令として定義しました。
これでスクリプトは3分の2ぐらいになると思います。



kanamaru

リンク

2015/3/25(Wed) 14:45:13|NO.68117


notesel passlist noteload "password.txt" noteunsel split passlist,"\n",list;notegetでもいい
などのスクリプトでパスワードの外部ファイル化ができます。
使う場合はpassword.txtのところをパスワードを保存しているファイル名に変えて
使ってください。
パスワードを固定する場合は#epack "password.txt"を一行目に入れておくと
いいかもしれません。
(#epackでpackすると、上書きできないので)
運悪く手元に実行できる環境がないのでエラーが出るかもしれません。
エラーが出たら、
・エラー行
・エラーの内容
・スクリプトの改造の有無
の3点を教えてくれれば修正します。



kanamaru

リンク

2015/3/25(Wed) 14:52:41|NO.68118

すみません。修正箇所をみつけました。
もう少し細かく投稿前にチェックしていれば。
戻るボタンの行の*topへはモジュール空間から移動できないです。
http://prograpark.ninja-web.net/index.html
にあるcallというのを使うようにすればOKです。
あと一部インデントしているようですね。
すみませんでした。
あと、2行目(#defineのところ)は環境によっては使えない可能性があるかもしれません。
命令の定義にlabel型が使えないのでこうしています。



プログラミング初心者

リンク

2015/4/10(Fri) 13:17:50|NO.68489

まだまだ募集してます(ソースコード)



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