- ベストアンサー
Ruby Angleクラス作成方法とは?
- Rubyにてゲームプログラミングをしている方へ、Angleクラスで数値を制限する方法を紹介します。
- Angleクラスの作成方法は記号や配列を使用しないシンプルな方法です。
- クラス参照で値を取得する方法も紹介しています。
- みんなの回答 (4)
- 専門家の回答
関連するQ&A
- Ruby1.9で、グローバル参照可能な(クラス間で参照可能)構造体の2
Ruby1.9で、グローバル参照可能な(クラス間で参照可能)構造体の2次元配列の定義方法が分かりません。 色々と文献を読んでいますが、 ・構造体や配列をグローバル参照可能にする定義 ・2次元配列の定義の方法 について、見つけきれておりません。 どうか、ご教示の程お願いいたします。 投稿日時 - 2010-08-04 21:49:17
- 締切済み
- Ruby
- RubyのDateクラスのメソッドが見つからない
先日よりRubyでのプログラミングを始めてみたのですが DateクラスのDate::MOTHNAMESを参照しようとしたところ undefined method `MOTHNAMES' for Date:Class (NoMethodError) と返ってきてしまいました。 ほかにもDate::exist?メソッドもためしてみましたが、同じ様なコメントが 返ってきました。 undefined method `exist?' for Date:Class (NoMethodError) なお、 Date.newなどはつかえています どういった問題でどのように解決すれば良いのか、ご教示願えればと思います。 バージョンは ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0] で、Mac OSX Lionで動かしています。
- 締切済み
- Ruby
- クラス内で作成したクラスへのアクセス方法。
こんにちは、C++のプログラミングについて質問させて頂きます。 現在クラスを使って簡単なゲームを作ってみようと勉強中なのですが、クラスの扱いについて質問があります。 void Object::FireBall() { //初期化の内容は読まなくても大丈夫です。 Action FireBall = Action(10,Ref_x() + cos(angle * PI / 180.0f)*3,Ref_y() + cos(angle * PI / 180.0f) *3 ,5,100,40,40,4,true,"Action/FireBall1.png",6,3,2,1.0,Ref_angle(),true,false); } といったように、Objectクラス内でActionクラスを作成したとします。 このとき、メイン関数内でFireBallの各メンバにはどうやってアクセスすれば良いのでしょうか? Objectクラスのオブジェクトの名前がPlayer[1]だとしたとき、 Player[1]->FireBall.Draw_Graph() のようにやるのかと思っていたのですが、上手くいかず、調べてもイマイチ解らず行き詰まっているのです(内部クラスとはまた別ですよね?)。 もし宜しければ、教えて頂けると助かります。
- ベストアンサー
- C・C++・C#
- Ruby の 文法に困ってます。
以下のようなソースの場合、to_sメソッドは何時呼ばれているのでしょうか。またどういう意味を成しているのでしょうか。 Ruby初心者のためご教授頂けないでしょうか。 よろしくお願いします。 class Vector attr_accessor :x, :y def initialize(x=0, y=0) @x = x @y = y end def length Math::sqrt(@x ** 2 + @y ** 2) end def to_s "(#{@x},#{@y})" end def <=> other length <=> other.length end end arr =[] arr << Vector.new(2,2) arr << Vector.new(3,2) arr << Vector.new arr.sort.each do |item| puts item end 結果は以下になります。 (0,0) (2,2) (3,2)
- ベストアンサー
- Ruby
- ラッパークラスのオブジェクト作成について教えてください。
ラッパークラスのオブジェクト作成について教えてください。 ラッパークラスのオブジェクト作成には ・new演算子を使ってインスタンス化する方法 ・ラッパークラスのstaticメソッドを呼び出す方法 の2つの方法があると書籍に書いてありました。(SJC-Pのテキストです) では Integer i = 1000; のような記述はどうでしょうか? Integerはintのラッパークラスと思うのですが、iはインスタンスじゃないという事でしょうか?
- ベストアンサー
- Java
- VC++6.0で作成したクラスをVB6.0で使うには?
初めて投稿します。 プログラミング初心者の為、初歩的な質問になるかもしれませんがご容赦下さい。普段、主にVisual Basic6.0(以下VB6.0)でプログラミングを行なっています。 VB6.0には演算子のオーバーロードする機能がない(?)ため、Visual C++6.0(以下VC++6.0)でプログラミングを行い、VC++6.0で作成したクラスをVB6.0で呼び出して使用したいと考えています。 インターネット上でいろいろと調べてみたのですが、その方法がわからず投稿させていただきました。VC++6.0で作成したDLLの中の関数をVB6.0で呼び出して使用する方法はわかったのですが、クラスということになると、DLLでは無理なのでしょうか? どなたか、VC++6.0で作成したクラスをVB6.0で呼び出す方法、または勉強方法(教材)などを教えていただけると助かります。 宜しくお願いいたします。
- ベストアンサー
- C・C++・C#
- Ruby on Rails 「attr_accessor」 の使い方に
Ruby on Rails 「attr_accessor」 の使い方について こんにちは。 現在、Ruby on Railsで登録画面を作成しているのですが、attr_accessorで定義した項目に対して、validationのチェックを行うと、問題が起きてしまいました。 attr_accessorで定義した項目は、DB登録の対象ではないのですが、lengthのチェック等を行う必要があり、validates_length_of等を使って入力チェックを行っています。 問題になったのは、入力があったときだけチェックをかけたいのに、入力がなくてもチェックがかかってしまうという状態になってしまうことです。 「:if => 項目?」を書いてみると、「undefined method」のエラーがでてしまいます。 どなたか対応策の分かる方がおられましたらご教授いただけないでしょうか? 下記に実際の問題箇所のモデルクラスのソースを書いておきます。 class User < ActiveRecord::Base attr_accessor :NEW_USER_PW ← 追加したアクセサ # 追加したアクセサに対するチェック validates_length_of :NEW_USER_PW, :minimum=>4, :message=>"は%d桁以上を設定してくださ い。", :on => :update, :if => :NEW_USER_PW? end 上記のチェック内の「:if => :NEW_USER_PW?」で落ちてしまいます。 入力がないのにチェックに引っかかるとまずいので、入力がないときだけ上記チェックを行えれば良いのですが・・・。 どうぞ宜しくお願い致します。
- ベストアンサー
- Ruby
- Ruby Vectorの===変更の問題
言語はRubyです。 Vectorにて数値を管理している都合上、まとめて計算や判定ができないかと思い、 要素に範囲オブジェクトを入れたVectorと、同じ要素数のVectorとの、 範囲内判定を実装したい為、下記のように組んでみました。 # # 全ての要素が、範囲内か判定 # def ===(v) each2(v) { |range, x| return false unless range === x } return true end Vector[(0..10), (5..8)] === Vector[3, 8]のように組めます。 しかしこの記述だと、元の===が変更されてしまう為、元の処理が使えなくなると思います。 ===が重要な処理と関係していなければ良いのですが、やはり大きく影響するのでしょうか? ヘルプで検索を掛けても記号の為、ヒットせず、どこで実装されているか分からないので質問しました。 ご教授下されば幸いです。 宜しくお願いいたします。
- ベストアンサー
- Ruby
- コンストラクタで配列を指定する方法(C#)
お世話になります。 本当に初歩な質問で申し訳ありません。 下記のようなことをしたいと思っています。 ---------------- A a = new A(new int[] s={1,2,3}); ----------------- クラスの作成時に、配列を参照型でなく渡したいのですが、 当然、上記の書き方はエラーになります。 配列をnew することなく、引数で直接渡してやる方法を 教えてください。 以上、よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
お礼
引き続き何度もご回答して頂きありがとうございます。 Kernelのメソッドを定義する方法は、正に思っていたような記述です!! 作成はそれでやってみます。 >いやだから、それはわかっていて、それを文字通りにするのは無理なので やはりクラス参照のみでは、Numericオブジェクトは取得できませんでしたか・・・。 上記の方法でやってみます。 >ということは、上記回答の前提の、「数値演算関係がすべて定義されているなら」もまだと言うことですね。 これについては、Angleクラス内の演算子関係を全て定義していることだと思っていました。 coerceメソッド、ヘルプで見ました。かなり使えるメソッドだと思います。 (ヘルプくらい、もっと前にしっかりと読みこんでおくべきでした・・・) 是非、これを使いたいと思います。 >Angle.new(30) + Angle.new(30) とするべきでは? もちろんそのつもりです。ただ、そういう使い方をする可能性も視野に入れておきたかったのです。 お蔭様で、思っていたような処理を組むことが出来そうです。 とても参考になりました。ありがとうございます。 これで、また一歩先に進めそうです。