4: 2011-02-17 (木) 10:39:25 k-tan[5] [6] | 現: 2024-01-08 (月) 12:58:54 lina[7] [8] | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | TITLE:x | ||
* (4) gotoで分岐 [#o0921b66] | * (4) gotoで分岐 [#o0921b66] | ||
-(by [[K]], 2011.02.15) | -(by [[K]], 2011.02.15) | ||
*** (1) rei0012.c~rei0014.c 変数は再利用できる [#zb7f43c4] | *** (1) rei0012.c~rei0014.c 変数は再利用できる [#zb7f43c4] | ||
- | -今まで一度もやっていませんでしたが、実は変数は一度覚えた数字を完全に忘れてもらって、新しい数字を覚えなおさせることができます。ということで、こんな例を示します。まずは、今までどおりの書き方。 | + | -今まで一度もやっていませんでしたが、実は変数は一度覚えた数を完全に忘れてもらって、新しい数を覚えなおさせることができます。ということで、こんな例を示します。まずは、今までどおりの書き方。 |
int a, b; | int a, b; | ||
a = 1 + 3 + 5 + 7 + 9; | a = 1 + 3 + 5 + 7 + 9; | ||
Line 39: | Line 40: | ||
-ここの「例」の「シナリオ」を見てください。こんな感じのゲームを作ることを考えます。 | -ここの「例」の「シナリオ」を見てください。こんな感じのゲームを作ることを考えます。 | ||
int a; | int a; | ||
+ | |||
s1: | s1: | ||
printf("君の目の前には先祖伝来の箱がある。なんとかして開けたいが開け方が分からない。箱には2つのスイッチのようなものがついている。\n"); | printf("君の目の前には先祖伝来の箱がある。なんとかして開けたいが開け方が分からない。箱には2つのスイッチのようなものがついている。\n"); | ||
Line 51: | Line 52: | ||
if (a == 3) { goto s5; } | if (a == 3) { goto s5; } | ||
goto s1; | goto s1; | ||
+ | |||
s2: | s2: | ||
printf("それは毒矢だった。君は薄れ行く意識の中で自らの不運を呪った。 fin."); | printf("それは毒矢だった。君は薄れ行く意識の中で自らの不運を呪った。 fin."); | ||
goto fin; | goto fin; | ||
+ | |||
s3: | s3: | ||
printf("赤いスイッチを思いっきり押してみた。その瞬間、箱の中から何かが飛び出してきた。サイコロを1つ振れ。\n"); | printf("赤いスイッチを思いっきり押してみた。その瞬間、箱の中から何かが飛び出してきた。サイコロを1つ振れ。\n"); | ||
Line 63: | Line 64: | ||
if (2 <= a && a <= 6) { goto s7; } | if (2 <= a && a <= 6) { goto s7; } | ||
goto s3; | goto s3; | ||
+ | |||
s4: | s4: | ||
printf("青いスイッチを押してみた。蓋が開き中から古びた紙が現れた。\n"); | printf("青いスイッチを押してみた。蓋が開き中から古びた紙が現れた。\n"); | ||
Line 73: | Line 74: | ||
if (a == 2) { goto s9; } | if (a == 2) { goto s9; } | ||
goto s4; | goto s4; | ||
+ | |||
s5: | s5: | ||
printf("君は何もしないことに決め、箱をクローゼットにしまい込んだ。この箱はその後開けられる事はなく忘れ去られていった。fin."); | printf("君は何もしないことに決め、箱をクローゼットにしまい込んだ。この箱はその後開けられる事はなく忘れ去られていった。fin."); | ||
goto fin; | goto fin; | ||
+ | |||
s6: | s6: | ||
printf("それは君の上着のボタンにあたり、跳ね返った。どうやら毒矢だったらしい。九死に一生を得た君は、\n"); | printf("それは君の上着のボタンにあたり、跳ね返った。どうやら毒矢だったらしい。九死に一生を得た君は、\n"); | ||
Line 87: | Line 88: | ||
if (a == 2) { goto s5; } | if (a == 2) { goto s5; } | ||
goto s6; | goto s6; | ||
+ | |||
s7: | s7: | ||
printf("それは君の首筋をかすめていった。\n\n"); | printf("それは君の首筋をかすめていった。\n\n"); | ||
goto s2; | goto s2; | ||
+ | |||
s8: | s8: | ||
printf("箱の中をよく調べている内に、指先に激痛が走った。慌てて手を引っ込めて中をのぞき込むと細い針のようなものが見える。\n\n"); | printf("箱の中をよく調べている内に、指先に激痛が走った。慌てて手を引っ込めて中をのぞき込むと細い針のようなものが見える。\n\n"); | ||
goto s2; | goto s2; | ||
+ | |||
s9: | s9: | ||
printf("それは、かつて徳川家が隠した財宝のありかを示す地図だった。1年後、財宝を手に入れた君は優雅な余生を送る事になった。fin."); | printf("それは、かつて徳川家が隠した財宝のありかを示す地図だった。1年後、財宝を手に入れた君は優雅な余生を送る事になった。fin."); | ||
goto fin; | goto fin; | ||
+ | |||
fin: | fin: | ||
-まあこんな感じでしょうか。 | -まあこんな感じでしょうか。 | ||
Line 108: | Line 109: | ||
-これでアドベンチャーゲーム(選択肢を選んでいってストーリーを楽しむゲーム)が作れるようになりました。実際、市販されているゲームは、これに絵を加えただけです。絵を扱う方法はもう少ししたらやりますので楽しみにしていてください。 | -これでアドベンチャーゲーム(選択肢を選んでいってストーリーを楽しむゲーム)が作れるようになりました。実際、市販されているゲームは、これに絵を加えただけです。絵を扱う方法はもう少ししたらやりますので楽しみにしていてください。 | ||
-現状では絵はかけないですが、でもストーリーが面白ければ十分に面白いゲームを作れます。是非一つか二つ(余裕や興味があればもっとたくさん)作ってみてほしいです。まずはがんばってストーリーを考えましょう。 | -現状では絵はかけないですが、でもストーリーが面白ければ十分に面白いゲームを作れます。是非一つか二つ(余裕や興味があればもっとたくさん)作ってみてほしいです。まずはがんばってストーリーを考えましょう。 | ||
+ | -アドベンチャーゲームだけではなく、こういうのも作れそうです。 | ||
+ | --http://www.hbc.co.jp/radio/yomuraji/pdf0410/10-1.pdf |
(This host) = http://osask.net