- ゲームプログラム入門「月齢計算:構造体の応用~C言語の基礎が学べるサンプル文~」のご紹介
- ゲームプログラム入門「月齢計算:構造体の応用~C言語の基礎が学べるサンプル文~」のご紹介
- 「ゲームプログラミング/C言語リファレンス/サンプル文」関連ページのご紹介
- シューティングゲーム・関連ページのご紹介
- 歴代名作シューティングゲームのご紹介|まとめ
- 歴代シューティングゲーム全ゲームタイトル一覧のご紹介|まとめ
- シューティングゲームの人気シリーズのご紹介
- シューティングゲーム関連ページのご紹介|まとめ
- シューティングゲーム解説ページのご紹介|まとめ
- シューティングゲーム・ハード関連(周辺機器)のご紹介|まとめ
- シューティングゲーム雑誌/書籍関連のご紹介|まとめ
- 【TPS名作・傑作・まとめ】TPS傑作・名作・全ゲームタイトルのご紹介│まとめ│~トゥームレイダー│バイオハザード│アンチャーテッドなど~
- 【名作RPG】RPGのご紹介│まとめ│
- 【TOP:SLG】おすすめ名作シミュレーションゲームのご紹介
- 【TOP】レースゲーム関連(おすすめ名作・評価ランキン)のご紹介
- TOP【おすすめスポーツゲーム】のご紹介~MLB,NBA,NFL,FIFAなど~
- 【TOP】パズルゲームのご紹介
- 【ゲームランキング】世界・国内で最も売れたゲームランキングのご紹介
- 名作ゲームのご紹介│まとめ│家庭用ゲーム・PC・アーケードなど
- 【機種別ゲームTOP】PC・家庭用・アーケードゲーム・周辺機器のご紹介
- ジャンル別ゲームタイトルのご紹介│まとめ│
- 【ゲームTOP】ゲーム関連ページのご紹介
- 【書籍・雑誌TOP】書籍・雑誌サイトマップ関連ページのご紹介
- 【ホビーTOP】ホビーサイトマップ関連ページのご紹介
ゲームプログラム入門「月齢計算:構造体の応用~C言語の基礎が学べるサンプル文~」のご紹介
ご訪問ありがとうございます。
今回は、ゲームプログラム入門「月齢計算:構造体の応用~C言語の基礎が学べるサンプル文~」についてご紹介します。
「ゲームの作り方:C言語リファレンス/サンプル文」関連サイトマップのご紹介
「ゲームの作り方:C言語リファレンス/サンプル文」関連をご紹介します。
シューティングゲーム | ゲーム | 中古・新品通販の駿河屋
ゲームプログラム入門「月齢計算:構造体の応用~C言語の基礎が学べるサンプル文~」のご紹介
/* THE MOON'S AGE */ main() { struct { short year; short month; short day; } date; short rev; float age; printf("YEAR = "); scanf("%d", &date.year); printf("MONTH = "); scanf("%d", &date.month); printf("DAY = "); scanf("%d", &date.day); switch(date.month) { case 1: rev = 1; break; case 2: rev = 2; break; case 3: case 5: rev = -1; break; default: rev = 0; break; } age = ((date.year - 1740.0) * 210.0 / 19.0 - 2.0 +date.month + date.day + rev) / 30.0; while (age > 1.0) age -= 1.0; age *= 30.0; printf("MOON'S AGE = %3.1f\n", age); }
実行結果
YEAR = MONTH = DAY = MOON'S AGE = 28.8
月齢 (月の満ち欠けを表す日数) を計算するプログラム
このサンプルプログラムは月齢 (月の満ち欠けを表す日数) を計算するものです。プログラムを走らせると年, 月, 日を聞いてくるので順に入力すると、その日付の月齢を計算して表示します。 尚、「年」は西暦で1750年から2200年 までの間のみ有効です。
プログラムの流れ
簡単にプログラムを説明すると、まず日付の構造体「date」、修正値「rev」、月齢「age」 の各変数を宣言します。次のswitch 文では月齢計算の修正値を求めています。そして月齢計算を行い最後に表示をします (while文はage を1以下にす るためです)。
利用している数式
利用している数式は次の通りです。
- B=((Y-1740)×210 ÷ 19 – 2 + M + D + N)/30
- 月齢 = {B – INT(B)} × 30
- Y:西暦年(1750~2200)
- M:月
- D:日
- N:修正 1月→ 1, 2月→2,3月と5月→-1, その他の月は、0
月齢の目安
また、月齢の目安としては次を参考にしてください。
0:新月 3:三日月 7:上弦の月 (半月) 15: 満月 22: 下弦の月(半月) 30:新月
複雑なデータ構造やプログラムの流れをすっきりさせる
構造体は何らかの関連がある変数の集りに1つの名前を付け、 まとめて変えるようにしたものです。 これを使うと複雑なデータ構造やプログラムの流れをすっきりさせることができます。
一般にレコードと呼ばれるデータ型式に使うことが多く、 例えばこのサンプルプログラムで使っている「日付」や「名簿」「図 書目録」など、C言語では「システムコール」にそのマシンのレジスタの構造体を使っています。
構造体に許されていること
構造体に許されているのは、そのアドレスを得ることと、そのメンバーをアクセスすることだけです。したがって構造体の代入や関数への引き渡しは直接できません。
よく使われる構造体のポインタ
そこで構造体のポインタがよく使われます。また構造体は入れ 子にしてもよく、共用体と一緒に使っても構いません。さらに、ポインタを使えば自分と同じ型の構造体を参照することも可能です。
これによりポインタでつながれたリスト構造を持たせることができます.
共用体/ビットフィールドの考え方も構造体と一緒
共用体およびビットフィールドの考え方も構造体と一緒です。ただ共用体はそのメンバーのオフセットが0であり、 ビット・フィールドはそのメンバ ーを数ビットに圧縮したものです。
「ゲームの作り方:C言語リファレンス/サンプル文」関連サイトマップのご紹介
「ゲームの作り方:C言語リファレンス/サンプル文」関連をご紹介します。
シューティングゲーム | ゲーム | 中古・新品通販の駿河屋
「ゲームプログラミング/C言語リファレンス/サンプル文」関連ページのご紹介
「ゲームプログラミング/C言語リファレンス/サンプル文」関連ページをご紹介します。
【STG】シューティングゲーム・サイトマップのご紹介
80年から2000年代のシューティングゲームについてご紹介します。
シューティングゲーム | ゲーム | 中古・新品通販の駿河屋
シューティングゲーム・関連ページのご紹介
シューティングゲーム・関連ページをご紹介します。
歴代名作シューティングゲームのご紹介|まとめ
歴代シューティングゲーム全ゲームタイトル一覧のご紹介|まとめ
シューティングゲームの人気シリーズのご紹介
シューティングゲーム関連ページのご紹介|まとめ
シューティングゲーム解説ページのご紹介|まとめ
シューティングゲーム・ハード関連(周辺機器)のご紹介|まとめ
シューティングゲーム雑誌/書籍関連のご紹介|まとめ
【ゲームジャンル別】サイトマップのご紹介
【ゲームジャンル別】サイトマップをご紹介します。
ゲームジャンル別サイトマップ | ||||
ゲームTOP > ランキング│傑作・名作│機種別│ジャンル別 |
||||
ゲームジャンル別TOP >関連ページ│名作│ランキング | ||||
【ジャンル別関連ページ】 アクション系(プラットフォーム│対戦アクション│FPS│TPS│STG│フライト)|AVG│RPG│SLG│レース│スポーツ│パズル│テーブル |
||||
【アクション】プラットフォーム│対戦アクション│FPS│TPS│STG│フライト 【アドベンチャー】AVG│ 【RPG】RPG│SRPG│ARPG 【SLG】SLG│ストラテジー│ターン制SLG│RTS 【レース】レース 【スポーツ系】スポーツ│プロレス 【パズル】 【テーブル】麻雀 |
||||
【ジャンル別】おすすめ評価ランキング アクション│AVG│RPG│SLG│レース│スポーツ│パズル│テーブル |
||||
【歴代傑作・神ゲー(2021~1996年)】99~94点│93~92点│91点│90点 ■【アクション系ゲーム】■ アクション│プラットフォーム│対戦アクション│FPS│TPS│フライト│ 【対戦アクション】一覧│98~80点│79~70点 【FPS】まとめ│90点以上│89~86点│85~83点│82~80点 【アドベンチャーゲーム】 ■【RPG系】■ RPG│SRPG│ARPG 【RPG】一覧│傑作(96~90点)│89~85点│84~82点│81~80点│ ■【シミュレーション系ゲーム】■ SLG│ストラテジー│ターン制SLG│RTS│街づくりSLG ■【レース】■ ■【スポーツ系ゲーム】■スポーツ│プロレス ■【パズル】 |
||||
シリーズ・テーマ | ||||
■■│コペンギンTOP > ゲーム│ホビー│書籍・マンガ│■■ |
||||
サイトマップ一覧 |
ゲームジャンル別・関連ページのご紹介
ゲームジャンル別・関連ページをご紹介します。
【TPS名作・傑作・まとめ】TPS傑作・名作・全ゲームタイトルのご紹介│まとめ│~トゥームレイダー│バイオハザード│アンチャーテッドなど~
【格ゲー・名作】アーケード・家庭用・格闘ゲームのご紹介~名作(173 本)・全タイトル(1462本)のご紹介
【名作STG】シューティングゲームのご紹介
【AVG】アドベンチャーゲームのご紹介│まとめ│
【名作RPG】RPGのご紹介│まとめ│
【TOP:SLG】おすすめ名作シミュレーションゲームのご紹介
【TOP】レースゲーム関連(おすすめ名作・評価ランキン)のご紹介
TOP【おすすめスポーツゲーム】のご紹介~MLB,NBA,NFL,FIFAなど~
【TOP】パズルゲームのご紹介
ゲームTOPサイトマップ
ゲームTOPのサイトマップをご紹介します。
【ゲームTOP】サイトマップ | ||||
ゲームTOP > ランキング│傑作・名作│機種別│ジャンル別 | ||||
■ランキングTOP > ハード│ソフト(売上(世界│国内)│海外評価) ■傑作・名作ゲームTOP > ■ゲーム機種別TOP > 据置│携帯│AC│PC│周辺機器 ■ジャンル別TOP > アクション系(プラットフォーム│対戦アクション│FPS│TPS│STG│フライト)|AVG│RPG│SLG│レース│スポーツ│パズル│テーブル |
||||
■■│コペンギンTOP > ゲーム│ホビー│書籍・マンガ│■■ |
||||
サイトマップ一覧 |
ゲーム関連ページのご紹介
ゲーム関連ページをご紹介します。
【ゲームランキング】世界・国内で最も売れたゲームランキングのご紹介
名作ゲームのご紹介│まとめ│家庭用ゲーム・PC・アーケードなど
【機種別ゲームTOP】PC・家庭用・アーケードゲーム・周辺機器のご紹介
ジャンル別ゲームタイトルのご紹介│まとめ│
コペンギン・サイトマップ
コペンギンのサイトマップをご紹介します。
【コペンギンTOP】サイトマップ | ||||
コペンギンTOP > ゲーム│ホビー│書籍・マンガ│ | ||||
■■│コペンギンTOP > ゲーム│ホビー│書籍・マンガ│■■ |
||||
サイトマップ一覧 |
懐かしの名作から最新作までの豊富な品揃え!通販ショップの駿河屋
コペンギンサイトマップ関連ページのご紹介
コペンギン関連ページをご紹介します。