東方算程譚

Oriental Code Talk ── επιστημηが与太をこく、弾幕とは無縁のシロモノ。

目次

Blog 利用状況

ニュース

著作とお薦めの品々は

著作とお薦めの品々は
東方熱帯林へ。

あわせて読みたい

わんくま

  1. 東京勉強会#2
    C++/CLI カクテル・レシピ
  2. 東京勉強会#3
    template vs. generics
  3. 大阪勉強会#6
    C++むかしばなし
  4. 東京勉強会#7
    C++むかしばなし
  5. 東京勉強会#8
    STL/CLRによるGeneric Programming
  6. TechEd 2007 @YOKOHAMA
    C++・C++/CLI・C# 適材適所
  7. 東京勉強会#14
    Making of BOF
  8. 東京勉強会#15
    状態遷移
  9. 名古屋勉強会#2
    WinUnit - お気楽お手軽UnitTest

CodeZine

  1. Cで実現する「ぷちオブジェクト指向」
  2. CUnitによるテスト駆動開発
  3. SQLiteで組み込みDB体験(2007年版)
  4. C++/CLIによるCライブラリの.NET化
  5. C# 1.1からC# 3.0まで~言語仕様の進化
  6. BoostでC++0xのライブラリ「TR1」を先取りしよう (1)
  7. BoostでC++0xのライブラリ「TR1」を先取りしよう (2)
  8. BoostでC++0xのライブラリ「TR1」を先取りしよう (3)
  9. BoostでC++0xのライブラリ「TR1」を先取りしよう (4)
  10. BoostでC++0xのライブラリ「TR1」を先取りしよう (5)
  11. C/C++に対応した、もうひとつのUnitTestFramework ─ WinUnit
  12. SQLiteで"おこづかいちょう"
  13. STL/CLRツアーガイド
  14. マージ・ソート : 巨大データのソート法
  15. ヒープソートのアルゴリズム
  16. C++0xの新機能「ラムダ式」を次期Visual Studioでいち早く試す
  17. .NETでマンデルブロ集合を描く
  18. .NETでマンデルブロ集合を描く(後日談)
  19. C++/CLI : とある文字列の相互変換(コンバージョン)
  20. インテルTBBによる選択ソートの高速化
  21. インテルTBB3.0 によるパイプライン処理
  22. Visual C++ 2010に追加されたSTLアルゴリズム
  23. Visual C++ 2010に追加されたSTLコンテナ「forward_list」
  24. shared_ptrによるObserverパターンの実装
  25. .NETでマンデルブロ集合を描く(番外編) ── OpenCLで超並列コンピューティング
  26. StateパターンでCSVを読む
  27. 状態遷移表からStateパターンを自動生成する
  28. 「ソートも、サーチも、あるんだよ」~標準C++ライブラリにみるアルゴリズムの面白さ
  29. インテルTBBの同期メカニズム
  30. なぜsetを使っちゃいけないの?
  31. WPFアプリケーションで腕試し ~C++でもWPFアプリを
  32. C++11 : スレッド・ライブラリひとめぐり
  33. Google製のC++ Unit Test Framework「Google Test」を使ってみる
  34. メールでデータベースを更新するココロミ
  35. Visitorパターンで遊んでみたよ
  36. Collection 2題:「WPFにバインドできる辞書」と「重複を許す検索set」
  37. Visual C++ 2012:stateless-lambdaとSQLiteのぷち拡張
  38. 「Visual C++ Compiler November 2012 CTP」で追加された6つの新機能

@IT

  1. Vista時代のVisual C++の流儀(前編)Vista到来。既存C/C++資産の.NET化を始めよう!
  2. Vista時代のVisual C++の流儀(中編)MFCから.NETへの実践的移行計画
  3. Vista時代のVisual C++の流儀(後編) STL/CLRによるDocument/Viewアーキテクチャ
  4. C++開発者のための単体テスト入門 第1回 C++開発者の皆さん。テスト、ちゃんとしていますか?
  5. C++開発者のための単体テスト入門 第2回 C++アプリケーションの効率的なテスト手法(CppUnit編)
  6. C++開発者のための単体テスト入門 第3回 C++アプリケーションの効率的なテスト手法(NUnit編)

AWARDS


Microsoft MVP
for Visual Developer - Visual C++


Wankuma MVP
for いぢわる C++


Nyantora MVP
for こくまろ中国茶

Xbox

Links

記事カテゴリ

書庫

日記カテゴリ

周期的な繰り返し

ネタ元 → スロットマシンを作ってみましたが

 > とっても不思議なのですが、なぜ「ps = 1 - ps;」なのでしょう?
 > かつ、ps をリセットするときが無いような?
 タイマのイベント毎に 0 と 1 に入れ替わっているようです。
 それでズレているかどうかの判定としているもよう。
 他で使っている形跡はありませんね。

ふむ、0/1 を交互に繰り返したいわけか、僕ならどうやるだろう。

[1] 繰り返したいのは0/1なのか? それともfalse/trueなのか?
後者なら:
  bool value = false;
  value = !value; // επιならこれを繰り返す

[2] 「2を法としてインクリメントする」なのか?
そゆことならば:
  int value = 0;
  value = (value+1) % 2; // επιならこれを繰り返す

[3] 三項演算子でやっちゃう?
ならば
  int value = 0;
  value = (value==0) ? 1 : 0; // επιならこれを繰り返す

...いやいや、やりたいことが「かわりばんこに二者択一」であるなら
僕はこうしない(と、思う)。[1]のバリエーションで:
  bool flip;
  int value;
  flip = !flip; // επιならこれを繰り返す
  value = flip ? 1 : 0;

投稿日時 : 2008年3月19日 20:03

コメントを追加

# re: 周期的な繰り返し 2008/03/19 20:55 名前を入力してください

value ^= 1;

# re: 周期的な繰り返し 2008/03/19 21:47 スーパーあんどちん

この場合僕なら2ですね。
図柄の中間状態を後で更に細かくするのが容易だから。
その場合でも止まる位置は0だから0の処理は変更いらない(はず)ですし。

# re: 周期的な繰り返し 2008/03/19 21:52 スーパーあんどちん

01の繰り返しだけなら僕もXORを使います。

# re: 周期的な繰り返し 2008/03/20 0:15 片桐

うーん、0と1の循環でVB脳だと mod かなぁ(^^;

つまり、2番、ですね。

Dim Kotae As Integer
Kotae = (Kotae + 1) mod 2

True/Falseだと

Dim Kotae As Boolean
Kotae = Not(Kotae)

ひねりもなーんもないです(笑)

# re: 周期的な繰り返し 2008/03/20 7:49 ma2

ふたつの状態を往復することが揺るがないのであれば[1]を選びます。次点でXOR。
状態が三つ以上になる可能性があるなら[2]ですね。
ネタ元だと[2]にはならない感じですが。

# re: 周期的な繰り返し 2008/03/20 9:22 スーパーあんどちん

僕はネタ元なら2だと思いますよ。ネタ元の0・1って図柄のズレとして使ってるんですよね?
そして、図柄を半分ズレた状態で表示するのって回ってる感を出すためだと思うんですよね。
# プログラムちゃんと読んでないけど

図柄の絵は縦2ドットより大きいので、今後滑らかにアニメーションさせるために、より細かく制御する可能性はある。すると、ステートは0/1よりも増えていく。その場合でも図柄の停止はズレ0の時のみに発生って感じになるんじゃないかと*想像*してます。

# re: 周期的な繰り返し 2008/03/20 12:34 myugaru

私は整数型valueの値aと値bの交互なら
value ^= (a ^ b);
と書きます。

# re: 周期的な繰り返し 2008/03/20 12:35 myugaru

ma2さんとかぶってましたね(焦

# re: 周期的な繰り返し 2008/03/20 12:37 myugaru

あ、名前を入力してくださいさんとかぶってたんですね(焦

# re: 周期的な繰り返し 2008/03/20 12:43 よねけん

ネタ元の話を前提にするなら[2]にしますね。
今は2つのパターンだけど、経験上、後にnパターンにしたくなると思うので。

# re: 周期的な繰り返し 2008/03/20 14:13 がる

がるでふ。
んと…「絶対に3値以上にならない」んなら(確定で2値なら)。
2の変形ですが、

int value = 0;
loop
 value = (value+1) & 1;
pool
ってのもあるかなぁと。
いや、ifとかmodと比較してビット演算(and)のほうが実装軽いかなぁと。
…最近、マシン語とPHPを往復してるので、脳みその調整ができません orz

タイトル
名前
URL
コメント