Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2018/02/01 (木)

なでしこ3で数当てカード

| 13:20 | なでしこ3で数当てカード - 雪乃☆雫のなでしこ日和 を含むブックマーク はてなブックマーク - なでしこ3で数当てカード - 雪乃☆雫のなでしこ日和 なでしこ3で数当てカード - 雪乃☆雫のなでしこ日和 のブックマークコメント

 昨日の続きです。

 通りすがりさまに教えを頂いて、ANDORには実は2種類あって、これこれでおかしくはないんだけど、なでしこ1のANDとなでしこ3のANDは、仕様が変わっちまってるっぽいとゆうことが分かりました。

 やっぱりも、クラクラです;

 意味がつかめてくるまでには、何度も自分を再起動する必要がありました;;;

 まだまだ、ちゃんとは理解してないような気もして、コンピューターのキモチが分かってくるまでの道のりは遠そうだよ><


 それにしても本当は、出来れば、可能な限り、なでしこ1互換で動いて欲しいと思うところなんですがねえ・・・

 しかし、取りあえずそうゆうコトなら仕方ありません。

 そうゆうモノとして、がんばりましょう~。

 がっ、数当てカードは、まさにANDのビット演算(?)で、どっちも1の時以外は0、になる機能でもって、カードに入れる数を仕分けしてたんだけど・・・一体どうしたら?(泣)

 ・・・無い知恵を絞って、こうなりました。

 簡易エディタで動きます。

https://nadesi.com/doc3/index.php?%E3%81%AA%E3%81%A7%E3%81%97%E3%81%933%E7%B0%A1%E6%98%93%E3%82%A8%E3%83%87%E3%82%A3%E3%82%BF

#なでしこ3~数当てカード
「心の中で1~60のの数字を思い浮かべて、
ボクには見えないようにメモって置いてね。

準備が出来たら、はじめるよ!」と言う。

「では、これから六枚のカードを、お見せします。
の中に、あなたの思った数字があれば『OK』を、
なければ『キャンセル』のボタンを押して下さい。」と言う。

#数当て表初期化
数当表=配列。
6
  数当表[回数-1]=ここまで。

#数当て表作成
60
  数=回数。
  6
    数に(2^(回数-1))が含まれるか。
    もしそれはいならば、
      もし、数当表[回数-1]=でなければ、数当表[回数-1]=数当表[回数-1]「:」数。
      違えば、数当表[回数-1]=数。
    ここまで
  ここまで。
ここまで。

●含(AにBが|Bを)
  答は0。
  (B>0)の
    もし、B%2=1ならば、
      もし、A%2=1ならば、答=1。
      違えば、答=0。
    ここまで。
    B=B/2を整数変換。
    A=A/2を整数変換。
  ここまで。
  答で戻るここまで。

#数当てカード
答=0
6
  (回数-1)のカード表示。
  もしそれはいならば、答=答+2^(回数-1)
ここまで。

「むむ、読めました!
あなたが心に描いた数字は…
 {答} ですね?」を言う。

●カード表示(Aの)
  カード=。
  一時=数当表[A]を「:」で区切る。
  カウンター=一時の配列要素数。
  (カウンター)
    もし、一時[回数-1]<10ならば、数=「0」一時[回数-1]
    違えば、数=一時[回数-1]
    もし、(回数-1)%5=4ならば、カード=「{カード}{数}{改行}」
    違えば、カード=「{カード}{数} 」
  ここまで。
  カードで二択

 含むって言い方がどうなんだか分からんけど、ワタシ的にはんな感じ;

 Bには2の累乗を指定して、Aの数の中にそれが入ってるかどうかを調べてます。

 いちおう数当てカードはちゃんとできるようになったんで、これで合ってると思うんだけど・・・



 でっ、本当は昨日やろうと思っていたことは、マイナビの記事のコードをまたまた流用して、数当て表を二進数で表示することでした。

 できました☆

#なでしこ3~数当て表の表示
#数当て表初期化
数当表=配列。
6
  数当表[回数-1]=ここまで。

#数当て表作成
60
  数=回数。
  6
    数に(2^(回数-1))が含まれるか。
    もしそれはいならば、
      もし、数当表[回数-1]=でなければ、数当表[回数-1]=数当表[回数-1]「:」数。
      違えば、数当表[回数-1]=数。
    ここまで
  ここまで。
ここまで。

●含(AにBが|Bを)
  答は0。
  (B>0)の
    もし、B%2=1ならば、
      もし、A%2=1ならば、答=1。
      違えば、答=0。
    ここまで。
    B=B/2を整数変換。
    A=A/2を整数変換。
  ここまで。
  答で戻るここまで。
#-----------------------------------------------------------
●(Vを)二進数変換処理
   B=1
   結果=0
   (V > 0)の
     結果=結果+((V%2)×B)
     V=INT(V÷2)
     B=B×10
   ここまで。
   結果を8でゼロ埋めして戻る
 ここまで

# 表を作る
「1~60ので思った数を入力してね」と尋ねる
VV=LEFT(それ&" ", 2)
BIN=それを二進数変換処理
「| {VV} | {BIN} |」を表示
 「-----------------」を表示
 「|   {回数}枚目       |」を表示
 数当表[回数-1]を「:」で区切って反復
   VV=LEFT(対象&" ", 2)
   BIN=対象を二進数変換処理
   「| {VV} | {BIN} |」を表示
 ここまで
ここまで
「-----------------」を表示

 数当てカードは、カードの最初の数を足していくことで、相手が思った数字を当てる手品です。

 こうして、二進数にして数当てカードを眺めると、ほっほう~って感じですよねぇ~。

 して、入力した数と見比べると、おぉ! と、ひらめくって寸法ですw

 ・・・ええ、ワタシはコレを全部手で書き出して、理解したんですよ(爆)

 ぷろぐらむってすごいよね。

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20180201