大学で初めてC言語プログラミングを習い、
授業が終わってからもC言語の書籍をいくつか読みました。
その力試しとしてトランプゲームのブラックジャックの
プログラムを作ってみようと思いました。
その過程でフローチャートを用いて設計してみたのですが
条件分岐がぐちゃぐちゃだったり、gotoを使わなければならなかったり
とてもまともなコードが書けるような代物ではありませんでした。
確かに読んだ本の中で
「フローチャートは設計するために使ってはいけない」
という内容がありました。
ですがそれらの本ではフローチャートはいけないというだけで
具体的にどのような設計方法を用いればよいか読み取れませんでした。
そこでみなさんに質問なのですが、
一通りプログラミング言語の文法を理解したプログラミング初心者が
こんなプログラムを作りたいと思ってから
(たとえば簡単なトランプゲームなど)
実際にソースコードを書くまでには
どのような方法でどのような手順を踏んだらよいのでしょうか?
教えてください。よろしくお願いします。
No.4
- 回答日時:
C言語で goto を使っていいのは、きれいなフローチャートが
思い描ける人だけです
条件分岐がぐちゃぐちゃだったり gotoを使わなければならない
状態になった事をフローチャートのせいにしないで
まず、きれいなフローチャートになるように再度考えてみてください
ぐちゃぐちゃになるなら、ぐちゃぐちゃにならないように関数化
して分割していけばいいのですよ
No.3
- 回答日時:
UMLでステートチャートあたりを使うといいのではないでしょうか?
ステートマシンを想定して作ればロジックは比較的単純にできると
思います。
http://homepage1.nifty.com/BROKEN/project/humano …
まずjudoで適当な図を書いてみるのもいいかと思います。
http://jude.change-vision.com/jude-web/product/c …
No.2
- 回答日時:
>gotoを使わなければならなかったり
これは絶対にやってはいけない。
>確かに読んだ本の中で
>「フローチャートは設計するために使ってはいけない」
>という内容がありました。
昔ながらの構造化型のプログラミング言語においては
プログラムの流れを勉強する上ではいいけど実際に
業務でいちいちフローチャートを全部書いていたら
えらいことになりますよ。
>ですがそれらの本ではフローチャートはいけないというだけで
>具体的にどのような設計方法を用いればよいか読み取れませんでした。
最近のオブジェクト指向ならUML
>(たとえば簡単なトランプゲームなど)
>実際にソースコードを書くまでには
>どのような方法でどのような手順を踏んだらよいのでしょうか?
簡単なプログラムで業務としてではなくてメンテナンス性が必要ないプログラムなら簡単な機能分割して機能説明を書いた関数orクラス表を作ってそのまま作業開始
業務でも簡単なものは関数orクラス表作って後はソースのコメントですます。
小さいプログラムに対して仕様書を核時間が無駄。で効率が悪い。
はっきりいってコメントで十分。
No.1ベストアンサー
- 回答日時:
がると申します。
んと…書き込んでおいてなんなのですが、そこそこの年数プロやってるとどうしても「初心者さんのわからない部分」がわからないので、ってのはあるのですが。
普段私もやって下の子にも教えてるのが
・まずコメント書け
です。
例えばブラックジャックなら…とりあえず「終了条件が発生するまで何度も同じゲームを繰り返す」ものですよね?
なので、まず
// 終了条件が発生するまで
while(終了条件が発生していない) {
}
と書いてしまいます。
で…とりあえず「1対1のブラックジャック」を想定すると。
・カードを配って特定条件でカード配るのをやめて勝負
ですよね?
なので
while(終了条件が発生していない) {
while(親子の最低どっちかがカード欲しい) {
if(子がカード欲しい) {
子供がカードを取得する処理
}
if(親がカード欲しい) {
親がカードを取得する処理
}
}
/* 勝負 */
子供のカードの数字計算
親のカードの数字計算
if(子供が勝った) {
子供が勝った時の処理
}
if(親が勝った) {
親が勝った時の処理
}
if(ドロー) {
ドローの処理…ですが、多分これって親が勝った時の処理ですよね?
}
}
ってな感じでかいていきます。
で、各場所まずは「何をやりたいかを書いて」から、日本語部分を「コメント化して読みやすく文章を整形して」「コーディング」していくと、案外に楽に組める…と思うのですが。
実際のところ初心者さんにはどうでしょうか?
以上…あまり参考になるのか自信が持てないのですが。参考の参考、くらいにでもなれば幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- 大学受験 大学受験 辛い 英語 読めない こんにちは。 現在大学受験をしてる者です。 色々あり浪人なんですけど 11 2022/09/06 12:03
- その他(プログラミング・Web制作) 【フローチャートの書き方について】 勤務年数と勤務場所を入力し,給与額を表示するフローチャートを作成 2 2022/10/04 12:11
- その他(パソコン・スマホ・電化製品) 腕時計の設定の仕方について 5 2022/08/21 13:40
- 建設業・製造業 測量業初心者向けの解説本などはありますか 2 2023/07/12 20:58
- 大学受験 長文失礼します 高3受験生女 愛知教育大学理科 (偏差値50 国立)志望です。 先週の共通テスト模試 5 2022/09/13 00:21
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フローチャートの菱形が狭い。。。
-
fortran errorについて
-
【JAVA】数字をひし形に出力す...
-
Excelで4096点以上のFFTの方法
-
めちゃきれい
-
Notepad++の関数リスト表示でC...
-
自動クエリとはどういうもので...
-
正しい五十音順について
-
あるプログラムのコマンドライ...
-
0除算して、落ちるプログラムと...
-
65536は2の何乗なのでしょうか?
-
C++ で、「)」が必要 というエ...
-
未使用の変数を一括検索する方法
-
CとFORTRANの計算速度はどちら...
-
インクリメント演算子のみを用...
-
VBAで関数をつくる
-
テキストボックスのエンターキ...
-
UWSCで指定のフォルダを開きたい。
-
VBAにてメール作成した際、一部...
-
「Outlookが他のプログラムによ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フローチャートで 変数に代入す...
-
フローチャートの菱形が狭い。。。
-
フローチャートで。
-
fortran errorについて
-
フローチャート以外の設計方法
-
二分法(FORTRAN)
-
フローチャート(本当に困って...
-
fortran go to 文
-
TeXでフローチャート
-
【fortran】フーリエ級数について
-
フローチャートが書けません
-
配列 x に入っているデータの最...
-
フローチャートを書きたい
-
フローチャートのループ
-
for文のフローチャート
-
連立1次方程式を計算するFortra...
-
FORTRAN subroutineと配列と繰...
-
フロートチャートをVBAで表すには
-
カシオ fx-4800pにて
-
正しい五十音順について
おすすめ情報