今、(題材が)釣りのコンソールゲームを作っています。
現段階では、プレイヤーと敵の一対一の戦いで、
-----------------------------------------------------------
(右記を釣った人) (釣った中で一番大きな魚の名前とそのサイズ)
あと(n)ターン
プレイヤー (釣った魚とサイズ)
敵 (釣った魚とサイズ)
------------------------------------------------------------
サイズは乱数で取得。
( )の中は、随時変化する。
enterkeyで-1ターン。0で終了。
大雑把に書きましたが、こんな感じで文字列をstrcpyとwhile文・if文を駆使して入れ替えているところです。
これを、charctorを増やして、もっと大会っぽくしたいのですが、if文が増えてしまい、どうしてもバグが出てしまいます。なので、うまい方法がないかと思い質問させていただきました。
答えだけをポンと載せるのではなく、考え方に重点を置いた回答をお待ちしています。
あまり(綺麗)なプログラムは、私には敷居が高いので、可能な限り、レベルを落としてくれるとありがたいです。(生意気言って申し訳ないですが)
No.3ベストアンサー
- 回答日時:
近道はありません。
まずは、「設計図」を作って、やりたいことが正しくできるかどうか検討しましょう。
簡単なものなら、頭の中で設計図作って即プログラム作成、なんてこともできます。しかし、複雑になってそれができないのなら、やるべきことを整理してからコーディングすべきでしょう。
別に、フローチャートを書け、ということではありません。
例えば、ifが多すぎて混乱するのなら、分岐するための条件を表にして、判定に無駄が無いか、抜けが無いかをチェックする、とかしましょう。
人数が増えて混乱しているようですが、ちゃんと設計すれば
for(t=ターン) {
for(i=人数分){
釣る(釣り人[i],t);
}
}
と簡単に人数を変更できる構造にできます。
「構造化プログラミング」という考え方があります。
古典ではありますが、現在でも主流のプログラミング手法です。
「オブジェクト指向」という考え方もあります。
現在主流のプログラミング手法です。構造化がベースになっているので、構造化についてある程度理解しておいた方が理解しやすいでしょう。
一度、これらについての解説書等を読むことをお勧めします。
C言語はオブジェクト指向なプログラミング言語ではありませんが、オブジェクト指向という考え方は使うことができます。
> あまり(綺麗)なプログラムは、私には敷居が高いので、可能な限り、レベルを落としてくれるとありがたいです。
今やろうとしていることが、「綺麗でないプログラム」でやれる範囲を越えていると思われます。
難しいのは最初だけです。習得してしまえば、未来永劫に楽できます。
(一部を除いて)プログラマーは楽がしたいんです。構造化とかオブジェクト指向とかが主流の考え方なのは、(最初は苦労するかもしれないが)プログラマーが楽になる(と信じられている)からです。
> 魚の名前を構造体で決めてあるので、文字列の入れ替えの際に、strcpyを使っているのですが、まさか、必要ない、ってことないですよね?
例えば、魚の名前は決まっているはずですから、
const char 魚の名前[]={"ニジマス","ブラックバス","フナ"};
みたいにすれば、strcpy使わなくても
釣り人[i].釣果[0]=1; // i番目の釣り人の最初のターンで釣れたのはブラックバス
と番号で処理できますよね?
ついでに
struct 魚 {名前;出現率;難易度;最大重量;}
みたいな構造体を作れば、
if( ブラックバス ) { 重さ=ブラックバスの最大重量までの乱数;}
else if( ニジマス ) { 重さ=ニジマスの最大重量までの乱数;}
...
みたいなifの羅列が
重さ = 魚.最大重量までの乱数;
で済みます。
No.4
- 回答日時:
>魚の名前を構造体で決めてあるので、文字列の入れ替えの際に、strcpyを使っているのですが、まさか、必要ない、ってことないですよね?
文字列入れ替えが必要ってわけでもなさそうですから。
>これを、charctorを増やして、もっと大会っぽくしたいのですが、if文が増えてしまい、どうしてもバグが出てしまいます。なので、うまい方法がないかと思い質問させていただきました。
if分が増えるというのは具体的にどう増えるんでしょう?
プレイヤーと敵を同じ構造体の型にして配列で扱えばその中から一番大きなもの探せば済みそうな。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 釣り 堤防釣りや釣り具選びについて質問です。 最近釣りをはじめました。6時間イソメを使った投げ釣り(チョイ 3 2022/08/21 23:22
- フランス語 フランス語 動詞 pêcher の冠詞 (頭の中がごちゃごちゃになってしまいました!!) 1 2022/11/21 06:52
- 釣り 魚釣り用で持っているクーラーボックスが12リットルと小さいのですが、最近始めた泳がせ釣りで、もしクー 4 2022/10/09 15:07
- 釣り タチウオの切り身を餌にして釣れる魚 2 2023/05/01 09:52
- 食器・キッチン用品 夫へのプレゼントに包丁を考えています。 夫の趣味は魚釣りです。 片手サイズの魚から30キロのマグロま 9 2023/08/12 09:18
- 釣り 秋鱒を釣ることに関してどう思いますか? 秋鱒を釣るのは賛否ありますよね。 「産卵間近の魚を釣るな」、 2 2022/11/12 20:57
- 釣り 明後日の朝方から釣りに行こうと考えている無知な大学生です。大学生特有のノリで急遽釣りに行こうとなった 3 2022/07/01 00:01
- 会社・職場 一個下の経営者の奴が嫌いです。半端なく嫌いです。時間とお金泥棒すぎて めっちゃ長文なんですが聞いてく 5 2022/09/22 00:52
- 釣り 昨今はだ大の魚釣りブームです。魚釣りの道具については高価なロットやリールもあり、始めるにはお金が相当 3 2022/09/12 10:28
- その他(家族・家庭) 家庭を大事にする男性は、どういう気持ちで自分よりも家庭を大事にするんでしょうか? 釣った魚に餌をやら 7 2022/03/27 18:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングに触れて見たい
-
c言語は独学で、どこまで出来ま...
-
オリジナルの占いサイトを作る...
-
ゲーム改造の解説本(BOTや...
-
C言語、C+、C++、C#の違い
-
C言語って古いですか?
-
HOLONついて教えてください。
-
IT業界より楽に稼げる業界って...
-
プログラミング言語の制作方法...
-
Int('1234') で、strをかんたん...
-
COBOLでのNOT = の AND条件
-
TO_CHARで小数点以下がある場合...
-
自作ソフトウェアの販売方法
-
建設業界のシステムがけっこう...
-
最近小学生、中学生にもプログ...
-
UNITY Float型の接尾辞fって
-
C++ ってなんて読む?
-
VBSでDim、Private、Publicの違い
-
ゲームプログラマーとシステム...
-
Pythonについて 会社の在庫管理...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
自作でプレステ対応ゲームは作...
-
オリジナルの占いサイトを作る...
-
情報工学科にはパソコン知識が...
-
OpenGLで質問があります。
-
VBAの勉強の仕方
-
PixivとかDMM(FANZA)みたいなサ...
-
C言語をマスターしたい。。
-
プログラマーになったきっかけ...
-
プログラミングに 興味をもっ...
-
sendmailとmlの勉強の仕方
-
中卒がプログラマーとして生き...
-
excelの関数がアルゴリズムはど...
-
プログラマー生き方
-
C言語の勉強方法
-
プログラミング
-
マッシュアップサイトを作るた...
-
VB, C/C++, JAVAのどれかを選ぶ...
-
C#の基本文法が詳しく書かれて...
-
プログラミング初心者です。Pyt...
-
プログラミング、独習に関する...
おすすめ情報