« 2007年03月 | メイン | 2007年05月 »
2007年04月19日
【講座】HSPよく使うフレーズ 第28回 パスワード入力
HSPセンターの掲示板に質問があって、”パスワード入力”を作りたいと
いうのがあったので、ちょっと作ってみた。
そして、さらにメルマガ用に改造してみたよ。
入力はinput、比較はifを使うとできる。
inputにはちょっとコツがあって、いったん処理をとめてユーザーの
入力を待つ処理が必要。それにはbuttonと組み合わせて使うと便利だよ。
”hsp”がパスワードになってます。
暗号にしたり、ファイルに書き出せるようになると面白いね。
sdim pw,100
sdim errmes,100
*screen_init
cls
if errmes!"" :mes errmes
mes "パスワードを入力して<GO>ボタンをクリックしてください。"
input pw
button "GO",*check
stop
*check
if pw="hsp" {
goto *main
} else {
errmes="パスワードが違います。"
goto *screen_init
}
stop
*main
cls
mes "パスワード認証に成功しました。"
stop
[pass.hsp/hsp3]
(うすあじ)
投稿者 usuaji : 20:43
【講座】HSP3ワンポイントテクニック 第19回
このコーナーでは、HSP3の変わった使用例や、気がつきにくい機能など
を紹介していきたいと思います。
前回に引き続いて、型の扱いについて取り上げていきましょう。
HSP3では、「整数型」「実数型」「文字列型」を主に使用すると
言いました。(わからない人は前回のワンポイントテクニックを
参照してください。)
「実数型」と「整数型」については、既に触れているので、
今回は「文字列型」について解説していきましょう。
a="mojiretsu"
このように、「文字列型」は「"」で囲んだ部分を文字列として格納
することができます。HSP3では、文字列として格納する文字数や
文字の種類に制限はありません。ただし、スクリプトに書くときには
特別な書き方が必要な文字もあります。
a="ABC\"DEF"
上の例では、「ABC"DEF」という文字列が代入されます。
「"」は囲むための記号として使われているので、直接書くことが
できないため、「\"」を使うことになっているのです。
他にも、「\」を使っていくつかの特殊な文字を記述できます。
「\n」 → 通常の改行(CR/LF)
「\r」 → 特殊な改行(CR)
「\t」 → タブ
「\\」 → \
代入された変数は、パラメーターに指定することができるほか、
いくつかの計算を行なうことができます。
「文字列型」で行なうことのできる計算は、「+」とif命令で使用
するための論理演算子(「=」「!=」)のみとなっています。
"abc" + "def" → "abcdef" (接続)
"abc" = "abc" → 1 (一致しているかを比較)
"abc" != "abc" → 0 (違っているかを比較)
複数の型が混在する時の計算は、最初に出てくる「型」が結果を
決めるということを前回説明しましたが、「文字列型」の場合も
同じことが言えます。
a = "abc" + 123 + "def"
mes a
のようなスクリプトがあった場合、変数aは、「abc123def」という
文字列になります。自分で型を変換する場合は、strまたはstrf
関数を利用します。たとえば、
a = str(123)
は、「123」という文字列が変数aに代入されます。
a = strf( "%06d", 123 )
は、フォーマット指定により「000123」という文字列になります。
「文字列型」は不定な長さを扱うので、一部だけを取り出したり、
検索を行なうなど様々なサポート命令が用意されています。
文字列の操作は、最初慣れないうちは不自由に感じるかもしれま
せんが、どの命令がどのような機能を持っているか知っていれば、
ほとんどの処理は難しくなくなるでしょう。
(おにたま)
投稿者 usuaji : 20:42
【よみもの】もーりおのつぶやき 第7回
みなさモ、こんにちモ。
舌足らずな牛、『もーりお』でフガフガ。
新入生おめでとー、新学期おめでとー、4月おめでとー
春はドキドキワクワクだモ。
期待と不安がいりまじるモモ。
そんなあまずっぱい気持ち、いいなぁフガフガ。
春には切なさがいりまじるんだよねぇ、フガフガ。
その切なさは、初恋に似てるんだよね、フガフガ。
もーりおは草を食ってるばかりだモ。
o O(もーりおのつぶやき)
眠れないの ドキドキしちゃって
そうかい ぼくが あたためてあげよう
やだモモ もーりおさんたら ウフフフ
意味:
はっ!いかんモモ妄想が!!
どーやら、ぼくは発情期なのかモ?
妄想が、昭和っぽくてすまんモモ。
もーりおは、つぶやくことが趣味モ。
感想を待ってるモ。
みんなもつぶやきたいことがあったら送ってほしいモ。
短歌や川柳なんかでもいいモ。
宛先は”うすあじ”( hsptv@hspcenter.com )までだモモ~。
(ゆめゆめゆうか)
投稿者 usuaji : 20:41
HSPTV!メルマガ 第37号
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HSPTV!メルマガ 第37号 N0.0037 2007/04/19 発行
編集長:うすあじ ( hsptv@hspcenter.com )
発行:HSPTV!(ONION software)
WEBサイト:http://hsp.tv/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
登録解除などはこちら http://hsp.tv/play/service.html
■はじめに
こんにちは、うすあじです。
今回はちょっとだけお待たせしました。
ところで、新学期や新生活の人は新しい生活に慣れたかな?
悩みがある人は”もーりお”に相談してみるとイイモ!
では、メルマガスタートです。
(うすあじ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■今回のインデックス
【よみもの】もーりおのつぶやき 第7回(ゆめゆめゆうか)
【講座】HSP3ワンポイントテクニック 第19回(おにたま)
【講座】HSPよく使うフレーズ 第27回(うすあじ)
【募集】メルマガ投稿募集中
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【よみもの】もーりおのつぶやき 第7回
みなさモ、こんにちモ。
舌足らずな牛、『もーりお』でフガフガ。
新入生おめでとー、新学期おめでとー、4月おめでとー
春はドキドキワクワクだモ。
期待と不安がいりまじるモモ。
そんなあまずっぱい気持ち、いいなぁフガフガ。
春には切なさがいりまじるんだよねぇ、フガフガ。
その切なさは、初恋に似てるんだよね、フガフガ。
もーりおは草を食ってるばかりだモ。
o O(もーりおのつぶやき)
眠れないの ドキドキしちゃって
そうかい ぼくが あたためてあげよう
やだモモ もーりおさんたら ウフフフ
意味:
はっ!いかんモモ妄想が!!
どーやら、ぼくは発情期なのかモ?
妄想が、昭和っぽくてすまんモモ。
もーりおは、つぶやくことが趣味モ。
感想を待ってるモ。
みんなもつぶやきたいことがあったら送ってほしいモ。
短歌や川柳なんかでもいいモ。
宛先は”うすあじ”( hsptv@hspcenter.com )までだモモ~。
(ゆめゆめゆうか)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【講座】HSP3ワンポイントテクニック 第19回
このコーナーでは、HSP3の変わった使用例や、気がつきにくい機能など
を紹介していきたいと思います。
前回に引き続いて、型の扱いについて取り上げていきましょう。
HSP3では、「整数型」「実数型」「文字列型」を主に使用すると
言いました。(わからない人は前回のワンポイントテクニックを
参照してください。)
「実数型」と「整数型」については、既に触れているので、
今回は「文字列型」について解説していきましょう。
a="mojiretsu"
このように、「文字列型」は「"」で囲んだ部分を文字列として格納
することができます。HSP3では、文字列として格納する文字数や
文字の種類に制限はありません。ただし、スクリプトに書くときには
特別な書き方が必要な文字もあります。
a="ABC\"DEF"
上の例では、「ABC"DEF」という文字列が代入されます。
「"」は囲むための記号として使われているので、直接書くことが
できないため、「\"」を使うことになっているのです。
他にも、「\」を使っていくつかの特殊な文字を記述できます。
「\n」 → 通常の改行(CR/LF)
「\r」 → 特殊な改行(CR)
「\t」 → タブ
「\\」 → \
代入された変数は、パラメーターに指定することができるほか、
いくつかの計算を行なうことができます。
「文字列型」で行なうことのできる計算は、「+」とif命令で使用
するための論理演算子(「=」「!=」)のみとなっています。
"abc" + "def" → "abcdef" (接続)
"abc" = "abc" → 1 (一致しているかを比較)
"abc" != "abc" → 0 (違っているかを比較)
複数の型が混在する時の計算は、最初に出てくる「型」が結果を
決めるということを前回説明しましたが、「文字列型」の場合も
同じことが言えます。
a = "abc" + 123 + "def"
mes a
のようなスクリプトがあった場合、変数aは、「abc123def」という
文字列になります。自分で型を変換する場合は、strまたはstrf
関数を利用します。たとえば、
a = str(123)
は、「123」という文字列が変数aに代入されます。
a = strf( "%06d", 123 )
は、フォーマット指定により「000123」という文字列になります。
「文字列型」は不定な長さを扱うので、一部だけを取り出したり、
検索を行なうなど様々なサポート命令が用意されています。
文字列の操作は、最初慣れないうちは不自由に感じるかもしれま
せんが、どの命令がどのような機能を持っているか知っていれば、
ほとんどの処理は難しくなくなるでしょう。
(おにたま)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【講座】HSPよく使うフレーズ 第28回 パスワード入力
HSPセンターの掲示板に質問があって、”パスワード入力”を作りたいと
いうのがあったので、ちょっと作ってみた。
そして、さらにメルマガ用に改造してみたよ。
入力はinput、比較はifを使うとできる。
inputにはちょっとコツがあって、いったん処理をとめてユーザーの
入力を待つ処理が必要。それにはbuttonと組み合わせて使うと便利だよ。
”hsp”がパスワードになってます。
暗号にしたり、ファイルに書き出せるようになると面白いね。
sdim pw,100
sdim errmes,100
*screen_init
cls
if errmes!"" :mes errmes
mes "パスワードを入力して<GO>ボタンをクリックしてください。"
input pw
button "GO",*check
stop
*check
if pw="hsp" {
goto *main
} else {
errmes="パスワードが違います。"
goto *screen_init
}
stop
*main
cls
mes "パスワード認証に成功しました。"
stop
[pass.hsp/hsp3]
(うすあじ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【募集】メルマガ投稿募集中
”HSPTV!メルマガ”への投稿をお待ちします。
募集するコーナーは
(1)「教えて!おにたま!!」
HSPの素朴な疑問をHSPの作者おにたま氏に聞いてみよう!
というコーナー。疑問。知りたいテクニックなどを直接聞くチャンス。
(2)「もーりおのつぶやき」
つぶやき、短歌や川柳を受け付けてます。
(3)「こんなHSP3本が欲しい」
あなたが欲しい、読んでみたいHSP3の本を教えてください。
ひょっとしたら実際に本になるかも。
メルマガに関する要望や感想、日常のお便りもお待ちしています。
全ての投稿は”うすあじ”( hsptv@hspcenter.com )まで。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[PR]オススメHSP3の本
・HSP3 リファレンスブック
・公認 HSPファンブック 楽しく始める/極める本
・逆引きHSP3プログラミング事典[応用編]
・逆引きHSP3プログラミング事典[基本編]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■編集後記
最近、メルマガへのメールが少ないんですよ。
まあ、問題がないというのはいいんですけどね。
つまらないとか、難しすぎるとか、意見があったら送って下さいね。
「もーりおのつぶやき」の応援、川柳なども絶賛募集中ですよ!
そろそろメルマガもリニューアルかなぁ。
どんなメルマガが読みたいか、メールで教えてくれるとうれしいな。
つぶやき、おたよりはコチラまで!
hsptv@hspcenter.com
では、みなさんお元気で!
(うすあじ)
■バックナンバーについて
バックナンバーの公開ページはこちら
http://www.hspcenter.com/hsptvm/
■解約方法
登録解除などはこちら
http://hsp.tv/play/service.html
■広告の掲載など
本メールマガジンの広告掲載のご相談は
”うすあじ”( hsptv@hspcenter.com )までお願いします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
編集長:うすあじ ( http://hspcenter.com/ )
記事の投稿、ご意見、ご希望はこちらまで hsptv@hspcenter.com
ONION software Copyright 2007(c) All rights reserved.
メルマガ本文の再配布・商利用、転載は禁止させて頂きます。
HSPのスクリプトサンプルは自由に再利用しても構いません。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
投稿者 usuaji : 20:41
2007年04月03日
もーりおのつぶやき 第6回
みなさモ、こんにちモ。
舌足らずな牛、『もーりお』でフガフガ。
春がおしせまってきた今日この頃
みなさまいかがお過ごしでしょかモ。
ねみーんだフガフガ。
そーでなくても、ぬぼーっと草なんか食って
生きてるっていうのにモ?
春のたよりなんかが来ちゃった日には
よけーにフガフガねむっちゃうモ。
ちなみに、みんな理解してくれてるのか
わからないけど、フガフガってのは
草くってるってことモ。
モモモ、まさかまさか
わからかったなんてことはないモ。
実録を表現するのは、なかなかに難しいモモ~。
o O(もーりおのつぶやき)
生まれも育ちも 北の大地の ののっぱら
時折みせる するどい目つきは 闘牛の証
意味:
草原育ちの乳牛だなんて、なめてもらっちゃ困るなぁ。
草食べてる合間にちらりと見せる
するどい目つきがわからないのかい?
ふだんのぼくとのギャップがかいまみえて
かっこいいモ。ドキドキだモ。
もーりおは、つぶやくことが趣味モ。
感想を待ってるモ。
みんなもつぶやきたいことがあったら送ってほしいモ。
短歌や川柳なんかでもいいモ。
宛先は”うすあじ”( hsptv@hspcenter.com )までだモモ~。
(ゆめゆめゆうか)
投稿者 usuaji : 00:58
【講座】HSP3ワンポイントテクニック 第18回
このコーナーでは、HSP3の変わった使用例や、気がつきにくい機能など
を紹介していきたいと思います。
今回は、型の扱いについて取り上げてみましょう。
「型」というのは、計算したり変数に格納したりするための基本
となる種類で、HSP3では、「整数型」「実数型」「文字列型」という
3つの型を主に使用することになります。
同じ計算や表示をしても、それぞれの「型」ごとに少しづつ動作が
違ってきます。たとえば、数値型の「2」と「3」を足し算すると、
「5」になりますが、文字列型の「2」と「3」を足し算した時は、
「23」になります。なぜ「型」がいくつもあるのかと言うと、
扱っているものの種類によって最適な動作をすることによって、
便利になったり、高速だったりするからです。
次のようなスクリプトを入力してみてください。
a=1/3
mes a
これは、「1÷3」を計算して表示するだけのものですが、結果は
「0」になってしまいます。これは、最初に出てきている「1」
という数字をHSP3の基本的な型である整数型として判断して
計算が行なわれているためです。
これを実数で計算させるためには、以下のように修正します。
a=1.0/3
mes a
今度は、最初に出てくる「1.0」が小数点の付いた実数型となって
いるため、その後の計算が実数型で行なわれます。
最初から「1」も実数型として扱えばいいのではないかと思われる
かもしれませんが、現在のCPUは実数よりも整数の方が処理速度が
高速で、メモリ効率も優れています。また、多くの場合小数を
使わずに済んでしまうことが多いため、効率を求める上で
このような仕組みができているのです。
ちなみに、変数に代入されているものの型を変えたり、計算の中で
型を変更したい場合には、「str」「int」「double」等の関数を
使います。
たとえば、double関数はカッコ内の値を実数型に変更します。
a=double(1)/3
mes a
とした場合には、カッコ内の「1」が実数型として扱われます。
このように、「型」を使う上で注意するポイントとしては、
・計算の最初に出てくる「型」が結果を決める
・小数点を付けない数字はすべて整数として扱われる
・適切な型を選んで使用した方が効率が良い
となります。
最後に、「1÷3」の計算結果についてですが、精度が低いと考えて
いる人もいるかと思います。HSP3では、実数の文字列変換を行なう
上である程度表示を省略しています。さらに細かい桁を表示する
場合には、以下のようにstrf関数を使って取り出すことが可能です。
a=double(1)/3
mes strf("%4.15f",a) ; 小数点以下15桁まで表示
(おにたま)
投稿者 usuaji : 00:57
【講座】HSPよく使うフレーズ 第27回 15パズルのこと
今回は”kuroさん”からの質問。
”HSP ゲームプログラミング・クックブック ”のスクリプトに
関する内容だ。
ちょっと専門的?な質問だから”よく使うフレーズ”には
あまりふさわしくないかもね。
分からなくても落ち込まなくてイイタイプのテクニックです。
------------
はじめまして。 kuroと申します。
HSPゲームプログラミングクックブックの中に、「15パズル」のサンプル
スクリプトがあります。
その中の71-81行目、問題作成のため入れ替える場所を決める
rnd a,2
rnd b,3
if a{
cx=nx :cy=(ny+b+1)&3
}else{
cy=ny :cx=(nx+b+1)&3
}
【 秀和システム『HSPゲームプログラミング・クックブック』
”15パズル”P85 より引用 】
の部分のスクリプトの意味がよく分かりません。
どうして、空のマスに重ならず、かつ空のマスに接触するマスを
選ぶことができるのでしょうか。
------------
どうも!メールありがとう!
さて、どのようになってるか説明します。
空のブロックの座標はnx、nyです。
クリック対象の座標はcx、cy。
最初に変数aの乱数で、クリックする場所が、"xが同じ"か"yが同じ"か
を振り分ける。
クリックするにはXかYが、空のブロックと同じ必要があるからです。
構造は同じなので「cx=nx :cy=(ny+b+1)&3」の解説をします。
この場合はクリックするx座標は空の場所と同じ。
y座標は「(ny+b+1)&3」
分解すると
ny 空の座標
b 0から2
1 数値1
&3 0-3に変換する命令
となります。
■最初は&3なしで考えます。
ny=0の場合、bが0だと1
0 1 2 3
0【 】【空 】【 】【 】
1【 】【b=0】【 】【 】
2【 】【b=1】【 】【 】
3【 】【b=2】【 】【 】
という並びになります。(今回1の列だけを考えます。)
nyは0から3の可能性があるのですが、どの値の場合でもスタート位置が
ずれて、数値が循環するというのは分かりますか?
仮にny=3なら
・
・
・
【空 】
<ブロックここまで
【b=0】
【b=1】
【b=2】
このようにはみ出てしまいます。
■次に&3があると、はみ出た数値をうまく戻す処理がうまくできます。
2進数は
000
001
010
011
100
101
110
111
という値の増え方をします。
右側の2桁だけをみると同じパターンを繰り返しているのが分かります。
"2桁だけをみる処理"これが「&3」です。
(&「AND」は2桁を切り取るような結果になります。)
&3で
00、01、10、11 このループになるので、
はみ出た部分がぐるっともどります。
【b=0】
【b=1】
【b=2】
【空 】
こんな感じになります。
以上です。
というワケでクックブックをもってないとわかりにくいネタで
ゴメンナサイ。
いまでも売ってるといいんだけどねぇ。
(うすあじ)
投稿者 usuaji : 00:56
HSPTV!メルマガ 第36号
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HSPTV!メルマガ 第36号 N0.0036 2007/04/03 発行
編集長:うすあじ ( hsptv@hspcenter.com )
発行:HSPTV!(ONION software)
WEBサイト:http://hsp.tv/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
登録解除などはこちら http://hsp.tv/play/service.html
■はじめに
こんにちは、うすあじです。
新年度がスタートしました!
あたらしくクラブ活動をする人とか、新入社員の人もいるのかな?
新年度のつぶやきは、”もーりお”が聞いてくれるよ!
では、メルマガスタートです。
(うすあじ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■今回のインデックス
【よみもの】もーりおのつぶやき 第6回(ゆめゆめゆうか)
【講座】HSP3ワンポイントテクニック 第18回(おにたま)
【講座】HSPよく使うフレーズ 第26回(うすあじ)
【募集】メルマガ投稿募集中
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
もーりおのつぶやき 第6回
みなさモ、こんにちモ。
舌足らずな牛、『もーりお』でフガフガ。
春がおしせまってきた今日この頃
みなさまいかがお過ごしでしょかモ。
ねみーんだフガフガ。
そーでなくても、ぬぼーっと草なんか食って
生きてるっていうのにモ?
春のたよりなんかが来ちゃった日には
よけーにフガフガねむっちゃうモ。
ちなみに、みんな理解してくれてるのか
わからないけど、フガフガってのは
草くってるってことモ。
モモモ、まさかまさか
わからかったなんてことはないモ。
実録を表現するのは、なかなかに難しいモモ~。
o O(もーりおのつぶやき)
生まれも育ちも 北の大地の ののっぱら
時折みせる するどい目つきは 闘牛の証
意味:
草原育ちの乳牛だなんて、なめてもらっちゃ困るなぁ。
草食べてる合間にちらりと見せる
するどい目つきがわからないのかい?
ふだんのぼくとのギャップがかいまみえて
かっこいいモ。ドキドキだモ。
もーりおは、つぶやくことが趣味モ。
感想を待ってるモ。
みんなもつぶやきたいことがあったら送ってほしいモ。
短歌や川柳なんかでもいいモ。
宛先は”うすあじ”( hsptv@hspcenter.com )までだモモ~。
(ゆめゆめゆうか)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【講座】HSP3ワンポイントテクニック 第18回
このコーナーでは、HSP3の変わった使用例や、気がつきにくい機能など
を紹介していきたいと思います。
今回は、型の扱いについて取り上げてみましょう。
「型」というのは、計算したり変数に格納したりするための基本
となる種類で、HSP3では、「整数型」「実数型」「文字列型」という
3つの型を主に使用することになります。
同じ計算や表示をしても、それぞれの「型」ごとに少しづつ動作が
違ってきます。たとえば、数値型の「2」と「3」を足し算すると、
「5」になりますが、文字列型の「2」と「3」を足し算した時は、
「23」になります。なぜ「型」がいくつもあるのかと言うと、
扱っているものの種類によって最適な動作をすることによって、
便利になったり、高速だったりするからです。
次のようなスクリプトを入力してみてください。
a=1/3
mes a
これは、「1÷3」を計算して表示するだけのものですが、結果は
「0」になってしまいます。これは、最初に出てきている「1」
という数字をHSP3の基本的な型である整数型として判断して
計算が行なわれているためです。
これを実数で計算させるためには、以下のように修正します。
a=1.0/3
mes a
今度は、最初に出てくる「1.0」が小数点の付いた実数型となって
いるため、その後の計算が実数型で行なわれます。
最初から「1」も実数型として扱えばいいのではないかと思われる
かもしれませんが、現在のCPUは実数よりも整数の方が処理速度が
高速で、メモリ効率も優れています。また、多くの場合小数を
使わずに済んでしまうことが多いため、効率を求める上で
このような仕組みができているのです。
ちなみに、変数に代入されているものの型を変えたり、計算の中で
型を変更したい場合には、「str」「int」「double」等の関数を
使います。
たとえば、double関数はカッコ内の値を実数型に変更します。
a=double(1)/3
mes a
とした場合には、カッコ内の「1」が実数型として扱われます。
このように、「型」を使う上で注意するポイントとしては、
・計算の最初に出てくる「型」が結果を決める
・小数点を付けない数字はすべて整数として扱われる
・適切な型を選んで使用した方が効率が良い
となります。
最後に、「1÷3」の計算結果についてですが、精度が低いと考えて
いる人もいるかと思います。HSP3では、実数の文字列変換を行なう
上である程度表示を省略しています。さらに細かい桁を表示する
場合には、以下のようにstrf関数を使って取り出すことが可能です。
a=double(1)/3
mes strf("%4.15f",a) ; 小数点以下15桁まで表示
(おにたま)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【講座】HSPよく使うフレーズ 第27回 15パズルのこと
今回は”kuroさん”からの質問。
”HSP ゲームプログラミング・クックブック ”のスクリプトに
関する内容だ。
ちょっと専門的?な質問だから”よく使うフレーズ”には
あまりふさわしくないかもね。
分からなくても落ち込まなくてイイタイプのテクニックです。
------------
はじめまして。 kuroと申します。
HSPゲームプログラミングクックブックの中に、「15パズル」のサンプル
スクリプトがあります。
その中の71-81行目、問題作成のため入れ替える場所を決める
rnd a,2
rnd b,3
if a{
cx=nx :cy=(ny+b+1)&3
}else{
cy=ny :cx=(nx+b+1)&3
}
【 秀和システム『HSPゲームプログラミング・クックブック』
”15パズル”P85 より引用 】
の部分のスクリプトの意味がよく分かりません。
どうして、空のマスに重ならず、かつ空のマスに接触するマスを
選ぶことができるのでしょうか。
------------
どうも!メールありがとう!
さて、どのようになってるか説明します。
空のブロックの座標はnx、nyです。
クリック対象の座標はcx、cy。
最初に変数aの乱数で、クリックする場所が、"xが同じ"か"yが同じ"か
を振り分ける。
クリックするにはXかYが、空のブロックと同じ必要があるからです。
構造は同じなので「cx=nx :cy=(ny+b+1)&3」の解説をします。
この場合はクリックするx座標は空の場所と同じ。
y座標は「(ny+b+1)&3」
分解すると
ny 空の座標
b 0から2
1 数値1
&3 0-3に変換する命令
となります。
■最初は&3なしで考えます。
ny=0の場合、bが0だと1
0 1 2 3
0【 】【空 】【 】【 】
1【 】【b=0】【 】【 】
2【 】【b=1】【 】【 】
3【 】【b=2】【 】【 】
という並びになります。(今回1の列だけを考えます。)
nyは0から3の可能性があるのですが、どの値の場合でもスタート位置が
ずれて、数値が循環するというのは分かりますか?
仮にny=3なら
・
・
・
【空 】
<ブロックここまで
【b=0】
【b=1】
【b=2】
このようにはみ出てしまいます。
■次に&3があると、はみ出た数値をうまく戻す処理がうまくできます。
2進数は
000
001
010
011
100
101
110
111
という値の増え方をします。
右側の2桁だけをみると同じパターンを繰り返しているのが分かります。
"2桁だけをみる処理"これが「&3」です。
(&「AND」は2桁を切り取るような結果になります。)
&3で
00、01、10、11 このループになるので、
はみ出た部分がぐるっともどります。
【b=0】
【b=1】
【b=2】
【空 】
こんな感じになります。
以上です。
というワケでクックブックをもってないとわかりにくいネタで
ゴメンナサイ。
いまでも売ってるといいんだけどねぇ。
(うすあじ)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【募集】メルマガ投稿募集中
”HSPTV!メルマガ”への投稿をお待ちします。
募集するコーナーは
(1)「教えて!おにたま!!」
HSPの素朴な疑問をHSPの作者おにたま氏に聞いてみよう!
というコーナー。疑問。知りたいテクニックなどを直接聞く
チャンス。
(2)「もーりおのつぶやき」
つぶやき、短歌や川柳を受け付けてます。
(3)「こんなHSP3本が欲しい」
あなたが欲しい、読んでみたいHSP3の本を教えてください。
ひょっとしたら実際に本になるかも。
メルマガに関する要望や感想、日常のお便りもお待ちしています。
全ての投稿は”うすあじ”( hsptv@hspcenter.com )まで。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[PR]オススメHSP3の本
・HSP3 リファレンスブック
・公認 HSPファンブック 楽しく始める/極める本
・逆引きHSP3プログラミング事典[応用編]
・逆引きHSP3プログラミング事典[基本編]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■編集後記
最近、春らしい天気だなぁと思ってたら、急に寒くなったりして
驚きますねぇ。
うちには新生活も新学期もないので、せめて春らしい食べ物を
食べたいです。
桜餅とか柏餅とか。
ちなみに柏餅は味噌あんが好きです(^^A
では、お元気で!
(うすあじ)
■バックナンバーについて
バックナンバーの公開ページはこちら
http://www.hspcenter.com/hsptvm/
■解約方法
登録解除などはこちら
http://hsp.tv/play/service.html
■広告の掲載など
本メールマガジンの広告掲載のご相談は
”うすあじ”( hsptv@hspcenter.com )までお願いします。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
編集長:うすあじ ( http://hspcenter.com/ )
記事の投稿、ご意見、ご希望はこちらまで hsptv@hspcenter.com
ONION software Copyright 2007(c) All rights reserved.
メルマガ本文の再配布・商利用、転載は禁止させて頂きます。
HSPのスクリプトサンプルは自由に再利用しても構いません。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
投稿者 usuaji : 00:51