アンドロイドについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
夕暮

アンドロイドについて

#1

投稿記事 by 夕暮 » 15年前

初めて投稿させて頂きます。
前々からアンドロイドに興味があり挑戦したいと思っていました。

挑戦してみたいのですがMacPCが無い為、
やるとしたら購入する予定です。

DXライブラリを使って2Dのゲームなら大体作れるレベルです。
こんな私ですがゲームアプリを作れるでしょうか?
※アンドロイドではtouch等のゲームアプリを作る予定です。

使える言語はC++、PHPです。
クラス等も理解しておりますが効率的なものを作るのは微妙かもしれません^^
また製作に関して参考になるURLがありましたら教えて頂けますと助かります。

MNS

Re:アンドロイドについて

#2

投稿記事 by MNS » 15年前

前提として、アンドロイドのゲームアプリを開発するのですよね?

なぜ、それにMacPCを購入するのでしょうか?
また、Androidアプリの開発は、確かJava言語で開発するはずだったので、
C++とは別にJavaを習得する必要があります。
また、Java言語の習得にはオブジェクト指向プログラミングの理解が必要です。
あまり効率的にクラス等を使用できないのであれば、
そう簡単に開発することはできないかもしれませんが、やる気次第です。

Justy

Re:アンドロイドについて

#3

投稿記事 by Justy » 15年前

>MacPC
>touch等のゲームアプリ
 iPhone/iPod touchのことかもしれませんね。

夕暮

Re:アンドロイドについて

#4

投稿記事 by 夕暮 » 15年前

そうなんですか?
アンドロイドを使ってiPodTouchのゲームアプリを作ろうとしていたのですが
WindowsXPやVistaでも開発できるのであれば非常に助かります。

夕暮

Re:アンドロイドについて

#5

投稿記事 by 夕暮 » 15年前

Justyさん
あ、すいません・・・。
携帯アプリではなくお察しの通り
iPhone/iPod touchで考えております。

誤解させてしまい申し訳ございませんでした。
Javaは殆ど触ったことがありませんが
オープンアプリプレイヤーという携帯のアプリ(au)を作った経験が御座います。
※本当に簡単なゲームアプリです。

MNS

Re:アンドロイドについて

#6

投稿記事 by MNS » 15年前

スマートフォンのアプリを開発したいということだったのでしょうか。

アンドロイドは、プラットフォームの名称でもありますが、どちらかというとOSの名称で、
近年発売されたXperia、Desireなどのスマートフォンに搭載されています。
これで動作するアプリの開発の場合は、Java言語を使用し、開発はWindows XP、Vistaでも行えます。

iPhone/iPodTouchにはiPhoneOS(iOS)というOSが搭載されていて、
これで動作するアプリの開発には原則としてMacが必要ですね。

まあ、今回はiPhoneOSで動作するアプリの開発を行ないたいということですが、
(私自身はその経験がありませんので、あまり詳しくはしりませんが)
開発には基本的にObjective-Cを利用するようです。
C++が使用できるなら、Objective-Cの習得はそう難しいことではないでしょうし、
ゲーム開発の経験があるのなら、意外とすんなり開発できるかもしれませんね。

一通りの手順は
http://gihyo.jp/dev/serial/01/iphone/
が良く参考になると思います。

たかぎ

Re:アンドロイドについて

#7

投稿記事 by たかぎ » 15年前

iPhoneであればObjective-Cですね。
C++ができても、Cができないのであれば、Objective-Cはかなり戸惑う可能性大です。
Objective-C++という選択肢もないわけではありませんが、まずはObjective-Cを使えるようにすべきですからね。

Justy

Re:アンドロイドについて

#8

投稿記事 by Justy » 15年前

>アンドロイドを使ってiPodTouch
 とりあえず OSが違うので Androidで作っても基本的には iPhone/iPod touchでは動きません。


>DXライブラリを使って2Dのゲームなら大体作れるレベルです。
 やる気があるなら大丈夫だと思いますけど、ちょっと敷居は高いかも。
 
 Macとか言語(Objective-C)とか開発環境(Xcode/IB)とか実機転送とか。
 出来るようになる・慣れるまで少し時間かかるかもしれません。

 iPhone/iPod touchのゲームアプリは描画に OpenGL ESがよく使われます。
 DXライブラリほど優しくはないのですがやることは一緒ですので、解説本とか解説サイトを
見ながら覚えればすぐ理解できると思います。

 一応その OpenGL ESのラッパーとなるライブラリが幾つか出ています。

cocos2d for iPhone
http://software.re-source.jp/product/10443176/
http://www.cocos2d-iphone.org/
http://www.cocos2d-iphone.org/wiki/doku.php/

SIO2 Free Open Source 3D Game Engine for iPad, iPhone and iPod Touch
http://www.sio2interactive.com/

 さすがにこちらは本は出ていませんが、探せば日本語開発ページも出てくるかと思います。



 あとこちらから iPhone関連の日本語訳ドキュメントがDLできます。
 まずは

・ Getting Started Documents
・ iPhone アプリケーションプログラミングガイド
・ iPhone アプリケーション チュートリアル

あたりを軽く見ておくといいでしょう。

https://developer.apple.com/jp/iphone/l ... anese.html

softya

Re:アンドロイドについて

#9

投稿記事 by softya » 15年前

整理して書いておきますと、
・ドコモ/au/ソフトバンク/イー・モバイル/ウィルコムなどのスマートフォン(アップル系を除く)のOSは、WindowsCE(マイクロソフト社)やAndroidOS(Google社)が使われています。どの機種がどのOSなのかはスペックをちゃんと見ないと見当違いの開発をしてしまうと思います。
・アップル社のiPod touch,iPad,iPhoneはアップル社の専用OS(iPhoneOS)です。
それぞれのOSは互換性がありませんので、開発環境も別々です。

それぞれの開発環境をまとめます。
・WindowsCE 開発環境はWindowsOS専用。Visual Studio Professional以上のエディションが必要。無料では開発出来ません。 言語はC/C++/C++MFC/C#/VBなどで開発可能。
・AndroidOS Windows/Linux/MacOSXで開発可能。 統合開発環境はEclipceなど。 言語はJavaを使用。無料で開発できます。
・iPhoneOS MacOSX搭載のMacが必須。統合開発環境はXcode。 言語はObjective-Cを使います。無料で開発できます。
もしAndroidで開発するとiPhoneOSでは動きませんのでよく理解してください。

追記で、落ち目気味なのはWindowsCE、トップシェアはiPhone系、今アメリカですごい勢いで伸びているのはAndroid系です。 画像

夕暮

Re:アンドロイドについて

#10

投稿記事 by 夕暮 » 15年前

皆様、色々とアドバイスありがとうございます。
MacPCを購入することにしました。
スペースが無いのでノートで考えてます。
お勧めの機種とかご存じあるかたいないでしょうか?

Justy

Re:アンドロイドについて

#11

投稿記事 by Justy » 15年前

 あんまり機種は詳しくないのですが、Mac Miniじゃだめですかね?
 モニタは別途必要になりますけど、本体そのものは十分小さいと思います(本体の値段も安かったような)。

 開発環境である Xcodeって画面解像度が多少小さくても開発は出来るのですが、広ければ広いほど快適です。
 なので解像度の小さなモニタ付きのノート選んだ場合、別途セカンドモニタが欲しくなるかもしれません。

夕暮

Re:アンドロイドについて

#12

投稿記事 by 夕暮 » 15年前

それはそうと回答して下さった方々ありがとうございました。

MacMiniでも邪魔なので出来ればノートにしたいです。
13.3inchでは小さすぎるのでしょうか?
又、小さいなら開発時のみ外部モニタに出力しようと考えています。

ただやはり高価なものなのでイマイチ購入に踏み切れません(汗)
その為、関連書籍を購入して何回か読んでるだけですww
購入に凄く迷ってます・・・
解決しましたが後押しして下さるコメントを頂けますと助かります。

たかぎ

Re:アンドロイドについて

#13

投稿記事 by たかぎ » 15年前

私は一番安物のMacBookを使っていますが、それで開発できないということはまったくありません。
欲をいいだせばきりがありません。
特にうちのような零細企業では、潤沢な資金もスペースもありませんので、利用可能な限られたリソースをいかに有効活用するかが腕の見せ所でもあります。

夕暮

Re:アンドロイドについて

#14

投稿記事 by 夕暮 » 15年前

>>たかぎs
そうですよねww
正直、ビルド出来れば問題ないのでノートを購入することにします。
開発するのが楽しみです><

話は変わりますが出版された本を購入(同じ本を2冊)させて頂きました。
そこらの本より為になることが多く愛読書にさせて頂いてます。
何となく2冊買ってしまいました(汗)

たかぎ

Re:アンドロイドについて

#15

投稿記事 by たかぎ » 15年前

> 何となく2冊買ってしまいました(汗)

ありがとうございます。
でも、そんなに買わなくても...

わふー

無題

#16

投稿記事 by わふー » 15年前

こんにちは。
プログラムの理解を深めようと思っている者です。

色々と悩んでいるのですが、悩みすぎなのか、もう何が何やら分からない状態です。
クラスを勉強して、オブジェクト指向ですとか隠蔽ですとかデザインパターンですとか拡張性ですとか……色々な話がポンポン出てきて、うにゃーってなってます。
実際にゲームを作りつつ少しずつ新しいものを取り入れていったらいいんじゃないかとも思ったのですが、ちょっと勉強らしく勉強もしてみたいと思った次第です。

そこで、C++でクラスを扱い出した程度の私にとって、良い感じの勉強方法はないでしょうか。
ゲーム向き……と言っても、別にゲームだからといって特段何かあることでもないかもしれませんが。
(ココ見ろーですとか、このオープンソースを1から全部見ろーとかになるんですかね……?)
すごい曖昧な質問で申し訳ないのですが、どういう風に質問に具体性を持たせたら良いのかも分からなくなってしまいました。
でも、これからもゲームを作っていきたいので、是非ご助力いただければ嬉しいです。

よろしくお願いいたします。

わふー

Re:無題

#17

投稿記事 by わふー » 15年前

タイトル忘れてますね……
すいません。。。

シエル

Re:無題

#18

投稿記事 by シエル » 15年前

ゲームプログラミングの館(http://dixq.net/g/)を一通りやってみて、ゲーム作りの楽しさを知る。

たかぎ

Re:無題

#19

投稿記事 by たかぎ » 15年前

現状どこまで理解しているのか、どんなプラットフォーム向けの、どんなゲームを、どんな開発ツールを使って作ろうとしているのか、まったく不明です。
焦らずに、http://dixq.net/board/board.htmlを熟読した上で、必要な情報を補足してください。

MNS

Re:無題

#20

投稿記事 by MNS » 15年前

ゲームを作りたいのなら、ゲームを作るのが良いと思いますよ。
簡単なもので構わないと思います。ただ方向キーで機体を動かす程度のものでも十分でしょう。

その程度のものでも、
例えば、機体をクラスにするとか、
敵機と自機は機体クラスから派生させるようにするとか、
あらゆる機能を使ってみて、その利便性を理解することが重要です。

カプセル化の利点は、大規模なプログラムを組めば自然と分かりますし、
デザインパターンがどう有効なのかは、プログラムをある程度組まないと分かりにくいと思います。

自身のC++の機能に対する理解度なども分かりますし、
とりあえず、自分が作りたいと思えるゲームを作ってみてはどうでしょうか。

わふー

Re:無題

#21

投稿記事 by わふー » 15年前

ありがとうございます。

>シエルさん
ゲームを作ったことはあります。

>たかぎさん
すいません。圧倒的に情報不備でした。

・現状どこまで理解しているのか
一言で表すのは難しいです……。
ゲームを作ることはできましたが、ソースが汚くなってしまいました。
クラスなんて1個もなく、グローバル変数がごりごりと使われ、例外処理もなく、値は全てハードコード……といった感じです。
なので、もうちょっとかっこよくコーディングしたいなと思い始めた程度の理解です。
本当に曖昧ですみませんが、多くのプログラムの知識を1つ1つ分かる/分からないと羅列するのも無理ですし、こういう言い方しかできません。

・どんなプラットフォーム向けの、どんなゲームを、どんな開発ツールを使って
特に指定することは考えていません。
使用する言語やライブラリによって違いはあるかもしれませんが、もっと根本的な部分の悩みだと思うのです。
なんと言いますか……プログラムの設計的な話に近いのかなとか思ってます。


>MNSさん
ゲームはいくつか作ってきました。
クラスは便利だなとは最近感じてきているのですが、カプセル化は利点をいまいち納得できないですし、デザインパターンの有用性についてもあまり感じません。
このままだらだらっと作り続けていては、一生これらのやり方を無視したままになってしまいますので、見ていきたいと思っています。

また別の問題として、私がまったく知らないやり方があるであろうということもあります。
“カプセル化”という言葉を知っていれば、まだ調べようもあるのですが、まったく知らないものについては調べようがありません。(知るまで時間がかかりすぎる。)


そういう曖昧にしている部分があるのを知りつつプログラミングしていますと、何かしら損した気分になってしまいます。
ですので、こういうときはどうしたらいいのでしょうかという、相談みたいな質問をさせていただきました。
非常に分かりにくくてすいません……。

シエル

Re:無題

#22

投稿記事 by シエル » 15年前

なるほど。私も同じ状況かもしれません。
私もある程度ゲームが作れるようになってきましたが、
クラスも使わず、グローバル変数だらけです(笑)
今は問題なく動いてるので特に気にしていませんが、もっと効率的な書き方や方法が
あるんだろうなーと思いつつプログラミングしています。

どうやってレベルアップすればいいんでしょうね。
もっと色々なソースコードを読んで勉強していくしかないんですかね…。

組木紙織

Re:無題

#23

投稿記事 by 組木紙織 » 15年前

質問をもう少し明快に書いた方が話が伝わりやすいかと思います。
要は、
初心者はもう突破したとしたと思うけど、中級者になるにはどのような勉強をすればよいかわからない。
どのような勉強をすればよいのか?

ということですか?

C++の使い方ならSTLのアルゴリズムが使えるようになるのが一つの指標と思ってます。
あとテンプレートや適切な多重継承、例外処理もですね。
言語にこだわらない視点で見ると
ソートなどの良く知られているアルゴリズムを自分で実装出来ること。
GoFのデザインパターンを理解して使い方が分かること。
他人の書いた質の良いソースコードをたくさん読んで自分でも書いて見ること。
自分で完成させたゲームを拡張しやすいように手を加えること。(リファクタリング)

MNS

Re:無題

#24

投稿記事 by MNS » 15年前

そうですね、私も、このコードは非効率ではないかな、と思うことや、
他人のコードを見て、ああ、こんな方法もあったのだな、と思うことが多々あります。

自分が閃いた手法でも、他の人がずっと前に考案した方法であったりすること、
つまりは車輪の再発見まがいなことになっていると考えると、
自分で考えるよりも、他人の手法を真似たいと思ってしまいますよね。

そういうことならば、他人の書いたコードをたくさん読むことが重要でしょう。

しかし、私は、ソレより先に基本を固めるべきだと思います。
例えば、カプセル化の利便性が理解出来ない場合、カプセル化の利便性を活用したコードというものは、
恐らく理解できないと思います。それをただ真似ても仕様がないでしょう。

継承、ポリフォーリズム、テンプレート…、これらの機能の利便性を理解した上で、
使えるようになって、初めて優れたコーティングというものは行えると思います。


デザインパターンなんかは、むしろ、わふーさんが求めているものの典型かもしれませんよ。
まさに先人たちが考案した"優れたコーティング"というものを、再利用可能にしたものですから、
まずは、これが理解できるようになってから、でしょうね。

たかぎ

Re:無題

#25

投稿記事 by たかぎ » 15年前

> クラスなんて1個もなく、グローバル変数がごりごりと使われ、例外処理もなく、値は全てハードコード……といった感じです。

必要がなければ無理にクラスを使うことはありませんし、グローバル変数を使うべき状況で使ったのなら特に問題ありません。
Cなら例外処理がないのは当然ですし、値もハードコーディングして問題ない状況ならそれでよいと思います。
すべてケースバイケースなので、これだけでもよいとも悪いともいえません。

> なので、もうちょっとかっこよくコーディングしたいなと思い始めた程度の理解です。

単なるかっこつけならおすすめはしません。
必要な状況で必要な方法で実装したのであれば、それでよいのではないですか?
そうではないなら、例えばソースコードを一部を貼るとか、もっと具体的なことを書かないと何ともいえません。

> ・どんなプラットフォーム向けの、どんなゲームを、どんな開発ツールを使って
> 特に指定することは考えていません。
> 使用する言語やライブラリによって違いはあるかもしれませんが、もっと根本的な部分の悩みだと思うのです。
> なんと言いますか……プログラムの設計的な話に近いのかなとか思ってます。

プラットフォームも、開発ツールも、何を作るのかも特定しなければ、非常にあいまいな回答しかできません。
アセンブラで4ビットマイコンのゲームを作るのと、3Dグラッフィクスを用いたネットワークゲームを作るのを同列に語るのは無理でしょう。
これまでの書き込み内容でおおよその傾向は見えますが、それらに限定した話をしているのか、一部を取り出して例として挙げているのか不明です。

三郎

Re:無題

#26

投稿記事 by 三郎 » 15年前

殆ど無意味な横槍かもしれませんが、私もそのようなことに悩んでいます。と言うか、これから悩みます。
元々ゲームなどを造るのに、
>継承、ポリフォーリズム、テンプレート、カプセル化、クラス、、、などを使わないといけないのでしょうか
?。

1.そのような複雑な事をしたら(覚え理解するのが大変だから)従来のものより性能の特に良いゲームが造れるのでしょうか。
2.私の場合特別複雑な事をしなく、性能(処理早さなど)は左程要求しないので(ハードの性能が日増しに進歩している今日、ソフトの性能は不足しても良いと思う)総合的な性能とはハードの処理速度、価格、合理的なソフトによる処理速度の向上の三者で決まると思うので、昔ながらのソフトでよいと思うのです。
コードの量は減るでしょうが、コピペなどでやれば不自由を感じない?。
3.個人でゲームを造る場合でも、私みたいに一人でソフトを作る場合は組織と違い手分けしてソフトを造ったりメンテの必要がない場合、従来どおりの造りかたではだめなのでしょうか???。

dic

Re:無題

#27

投稿記事 by dic » 15年前

私はオブジェクト指向本家のJavaを勉強し、
あらためてC/C++でオブジェクト指向の有効性を認識し、それを実現しようとしています
ただ、理解いたる道のりが長いためなかなかゲーム製作とは実を結びつきにくいですし、
たとえ、自分がきれいだと思っていたソースコードでも
それを理解されなかったら、苦労は全部水の泡です

なので、三郎さんの言っているように
単純な構造化設計で作ったものと
オブジェクト指向やデザインパターンを取り入れた設計のもの2つ用意しています

オブジェクト指向の方がはるかにソースコードの量が増え、バグがでたときなどは
一日つぶれる日もありますので、どちらをとるかはその人によると思います

今はザツでもいいから、設計、開発、プログラミングができることの方が重要だと思ってます
画像

Poco

Re:無題

#28

投稿記事 by Poco » 15年前

> 殆ど無意味な横槍かもしれませんが、私もそのようなことに悩んでいます。と言うか、これから悩みます。
> 元々ゲームなどを造るのに、
> >継承、ポリフォーリズム、テンプレート、カプセル化、クラス、、、などを使わないといけないのでしょうか
> ?。
>
> 1.そのような複雑な事をしたら(覚え理解するのが大変だから)従来のものより性能の特に良いゲームが造れるのでしょうか。

性能は上がりません。上記概念は、保守性、再利用性向上を「サポート」するためにあります。
ですので、上記のような概念がない言語でも同じような工夫はできます。

> 2.私の場合特別複雑な事をしなく、性能(処理早さなど)は左程要求しないので(ハードの性能が日増しに進歩している今日、ソフトの性能は不足しても良いと思う)総合的な性能とはハードの処理速度、価格、合理的なソフトによる処理速度の向上の三者で決まると思うので、昔ながらのソフトでよいと思うのです。
> コードの量は減るでしょうが、コピペなどでやれば不自由を感じない?。

コピペでOKな考え方は止めるべきです。
コピペした場所を修正したいあった場合はどうします?
全部直すのですか?全部直したことをどうやって確認しますか?


> 3.個人でゲームを造る場合でも、私みたいに一人でソフトを作る場合は組織と違い手分けしてソフトを造ったりメンテの必要がない場合、従来どおりの造りかたではだめなのでしょうか???。
>

繰り返しますが、コピペでOKな考え方は止めるべきです。
将来、別のゲームを作る自分のために保守性(メンテナンス性)を意識しながら作成しましょう。

わふー

Re:無題

#29

投稿記事 by わふー » 15年前

レスありがとうございます。
そして、質問が曖昧ですいません。
今思えば、自分の中のモヤモヤを、ここにぶつけてしまったのかもしれません。
本当に申し訳ありません。

組木紙織さんの仰る通り、
「初心者はもう突破したとしたと思うけど、中級者になるにはどのような勉強をすればよいかわからない。
どのような勉強をすればよいのか?」
ということかもしれません。
初心者とか中級者って区別は、自分には分かりませんが。
自分の性質からして、上級者になるまでゲームが作れなくなるっていう本末転倒なことになるかもしれませんがw、そこは折り合いつけて勉強していこうと思います。

また、やはり言語とかは限定しないと突っ込んだ話にならないかもしれないですね。
と、このことを書いている間にたかぎさんに仰られてしまいましたが、確かにプログラムという括りだけで話を広げたら、そういうことになりますよね。申し訳ありません。
基本はPCのWindows向け・C++・Visual Studio・
また、小さくはないゲームを想定しておりました。
規模的には、龍神録ぐらいでしょうか。
龍神録と3Dネットワークゲームで違いが出るかどうかについては、知識不足で分かりません;;

勉強方法に関しては、皆様の仰ることを大いに参考にして励んでいきたいと思います。
ありがとうございます。

>単なるかっこつけならおすすめはしません。
>元々ゲームなどを造るのに、継承、ポリモーフィズム、テンプレート、カプセル化、クラス、、、などを使わないといけないのでしょうか?
とのことですが、これには噛みつきます。
個人差はあると思いますが、一生で何度もプログラミングをする機会があるなら、こういう知識を深めて損はないと思うからです。
マニアックすぎる知識は余計かもしれませんが、この程度の話であれば、まだまだ許容範囲内だと思うのです。
>必要な状況で必要な方法で実装したのであれば、それでよいのではないですか?
に関しましても、これらを知らなければ“必要かどうか”という判断をするにも至らないかもしれません。
それは怖いです。

>今はザツでもいいから、設計、開発、プログラミングができることの方が重要だと思ってます
お気持ちは1/10くらい分かる気もするんですが、やはり私はその境地には遠い位置におります。
どういうお考えからコレに至ったのかは想像もつきませんが、恐らく結論に至るためには、JavaとC++を通じて学ばれたことが必須なのかと予想します。


返信が雑ですいません。
正直、文章を書くのが遅いもので、間に合いません;-;

たかぎ

Re:無題

#30

投稿記事 by たかぎ » 15年前

> >単なるかっこつけならおすすめはしません。
(中略)
> 個人差はあると思いますが、一生で何度もプログラミングをする機会があるなら、こういう知識を深めて損はないと思うからです。

知識を深めることは損ではありません。
問題はその動機です。
かっこいいコーディングがしたいことが動機であれば、そんなものはおすすめしないといっているのです。
設計やコーディングのテクニックは、見た目のかっこよさより適しているかどうかで判断すべきです。どんなに泥臭く、格好悪くても、そのほうが適しているならそれを採用すべきです。

> マニアックすぎる知識は余計かもしれませんが、この程度の話であれば、まだまだ許容範囲内だと思うのです。

マニアックすぎる知識というのは具体的にどんなものを想定していますか?
一見して歴史的価値しかないと思いがちな、例えばC with Classesに関する知識であっても、C++の設計思想を深く理解するためには無駄ではありません。
移植性に関する知識にしても、マルチプラットフォームの開発をする場合は不可欠ですし、一生のうちに一度も遭遇しないような環境に関する知識であっても、移植性に関してどこまで配慮すれば大丈夫かを見極める上で有益です。
マニアックすぎて余計な知識というのは案外ないと思いますよ(知らなくても済んでしまうということはありますが、それは余計とか不要とかいうこととは違います)。

> >必要な状況で必要な方法で実装したのであれば、それでよいのではないですか?
> に関しましても、これらを知らなければ“必要かどうか”という判断をするにも至らないかもしれません。

その通りです。さらにいうなら、知っているだけでは"必要かどうか"を判断できません。実際に使えるようになっておかないと。

ただ、グローバル変数以外での実現方法を知らず、その状況で作らなければならないのであれば、(グローバル変数が)必要な状況でその方法で実現したわけですし、それ以外の選択肢はなかったわけですよね。

それをどうにかするには、知識を深め、経験を積むしかありませんが、一足飛びに高レベルに到達することなどできません。
だったら今できる精一杯のことをやるしかないわけです。

言いたいことは大体の察しは付きます。
けれども、クラスや例外処理を使い、グローバル変数をなくし、ハードコーディングを避けるのが、そのときの状況で本当に正しかったのかどうかも判断付かないでしょう?
だから具体例としてソースを貼ってみることを提案しているのです。

たいちう

Re:無題

#31

投稿記事 by たいちう » 15年前

# 一応、三郎さんへの回答という形で書きました。

オブジェクト指向の入門書などで、カプセル化や継承を説明するサンプルは普通短いため、
利点が分かりにくいのだと思います。クラスなど使わない方がよっぽどシンプルでしょう。

しかしプログラムの規模が大きくなると、全体を何らかの方法で管理しないと破綻してしまいます。
そのための工夫として考え出されたものの1つが、オブジェクト指向です。

本に書かれているのは、あくまでもサンプルでしかありません。
きっと、ページ数の都合だったり、エッセンスだけを書こうという著者の思いだったりするのでしょう。
それを実際のプログラムにどのように役立てるかは、読者が考えなくてはいけないことです。
オブジェクト指向に限らず、応用力が求められています。

三郎さんの場合ですが、以前作ったプログラムを読み返すことすらないとか、
三郎さんの能力・記憶力と比較して、小規模なプログラムしか作らないとか、
現状で問題と認識しているようなことがないのでしたら、
オブジェクト指向を導入する直接的メリットはないかもしれません。

しかし多くのプログラムを理解できるようになり、世界が広がると思います。
自分のプログラムではどのように使う事ができるかと想像しながら
入門書のサンプルを動かす事と、自分のプログラムを作りながら、
入門書のあの方法が使えないか検討することの2つを、
機会があれば何度でも挑戦してください。

三郎

Re:無題

#32

投稿記事 by 三郎 » 15年前

雑談です、、
確かに皆さんの云われる事が分ったような気がします(分ったような気がする、ここが要点)。
そうでした、私の場合キー操作が特に下手(ブラインドタッチ?など夢のまた夢)なので打ち込みが遅すぎミスだらけ、大文字と小文字が混同多し。故に短い単語さえコピペの常習犯です、そのような意味も含みます。

例えばソフトの国税の申告とか納税のコンピュウターシステムがありますね。ソフトの価格が、どれほどのものか見当がつきません。
そして県税とか市民税の納税システムとソフトウエアが必要ななったら国税のシステムを基本に改変すればコストは1/10か、、1/100、、で造れるはずだと思う。
しかし、業者は一体いくらで納入しているやら???正にこれこそ、継承、ポリフォーリズム、テンプレート、カプセル化、クラス、、、の恩恵なのでしょうかね。
もしかして別業者に発注してコスト低減のメリットを生かせなかったりして、、、、

1、人類は此処1000年あるいは2000年位前より知能指数は向上していないそうな(本当にそう思う)
そして反射神経なども同じ(むしろ退化していると思う)古代人に今のパソコンゲームをさせてもスコアはほぼ同じと思う。管理人さんの作られた「四聖龍神録」を動かしてみました。
”まあ~凄い事ができるものだなあ”と驚き感心しました。私には、左右上下のキーとXとZキー位しか使えませんが操作が難しくてギブアップ、、、私の場合、超最低スコア(恥ずかしい涙)。
知能指数の限界と反射神経の(手と指先)の限界で今後どうなるのでしょうか。
一度尋ねたく思っていました。

2、いっそのこと、キー操作などソフトでやらせ、知能指数のほうもソフトでやらせたら、要するに知能ロボットにゲームをさせたら(ソフトのバグを見つけるため、シュミレータまがいのもの(テストプログラム)を造り用意する)、どれほどのスコアが出るものでしょうか?ソフト上のバグとか多く出るような気がします。個人的に興味があります、勿論私には出来ません。

3、私は現場の必要性から昔ソフトを色々造りまました。要するに動機があった。
今の小中学生はソフトの必要性を感じていないはず。
しかしゲームに夢中、、、そして、それを自分で造ってみたくなる。
素晴らしい環境が望むと望まざるに関らず自然と出来上がっている。
これは素晴らしい事で将来の、、、、、に明るい展望が開けていると思うのは、私だけではなかろうと思う。

わふー

Re:無題

#33

投稿記事 by わふー » 15年前

>たかぎさん

ご返信いただき、ありがとうございます。


こちらも何となく仰ることの意図は察しはつきます(ついてる気がします)。
まずもって、私の言葉が不正確で申し訳ありません。
そして、たかぎさんの仰ることはもっともだと思います。

ソースに関しましては、現在作り途中のもので100KBとかあります。(シューティングです。)
まさか全プログラムを見ていただくというわけにもいかないでしょうから、何とか具体的すぎないように話を進められたらいいなと思っておりました。
規模を縮小してのソース(単純にクラス図とか?)ならありかなと思いましたが、私の頭が不足なため、正確に書き出すのに時間がかかります。(時間をかけても不正確な(将来的に変更がガリガリ入ってしまう)ものしかできない気がします。)

と言うわけでして、ソースを作る時間をいただけたらと思います。


もし全部見てやるよ! という場合は遠慮無く投げますのでw、ご連絡下さい。

たかぎ

Re:無題

#34

投稿記事 by たかぎ » 15年前

> 現在作り途中のもので100KBとかあります。

その程度であれば、圧縮して添付してしまってもOKだと思います。
ソース全部を細かく見ることはできませんが、全体の傾向がつかめれば十分かと思います。

ookami

Re:無題

#35

投稿記事 by ookami » 15年前

# わふーさん

私もソースを添付してもらっていいと思いますよ。
「全部見てやるよ!」とは言えませんが、回答の指針がつかめると思います。



# 三郎さん

> 業者は一体いくらで納入しているやら???正にこれこそ、継承、ポリフォーリズム、テンプレート、カプセル化、クラス、、、の恩恵なのでしょうかね。

「継承、ポリフォーリズム...」を使えば必ず
再利用可能なプログラムになるわけではありません。
中には「これは本当にプロが書いたのか?(継承を使えばカッコイイと思っただけじゃないのか)」
というようなプログラムも見かけます。

たかぎさんも仰っていますが、
正しく使わなければ意味がありませんし、
「正しく使う」ということ自体が難しいです。
(最初に設計した段階では正しくても、
仕様変更でまったく意味がなくなることもある)

個人的には、クラス化しているとかではなく、
「読みやすい」「誤解を生まない」ソースコードが、
仕様変更にも強く、再利用しやすいと思っています。


> そして県税とか市民税の納税システムとソフトウエアが必要ななったら国税のシステムを基本に改変すればコストは1/10か、、1/100、、で造れるはずだと思う。

「似ている」のは外見だけで、内部構造はまったく違う、
ということはよくある話です。まさにそんな感じで、
営業さんが「1/10くらいで作れるはずだと思う」とか顧客と安請け合いをしてきて、
技術の人が「ムリに決まってるじゃないですか!」みたいなやりとりも、
よくある話(?)です。

それに大抵の場合、同じ「納税システム」といっても、
お客さんごとに、好みの付加機能が付くはずですから、
結局はゼロから開発するに等しい場合がほとんどです。

組木紙織

Re:無題

#36

投稿記事 by 組木紙織 » 15年前

全部見れるかは保証の限りではありませんが、見たいです。

閉鎖

“C言語何でも質問掲示板” へ戻る