今日から必死で1から全て学んでゲーム作成します
■ このスレッドは過去ログ倉庫に格納されています
0001松田 ◆cobo4pcvHY
03/02/06 21:28ID:+Sp/g0d7言語の難しさから逃げていては駄目だ!お前はゲームを作りたいのだろ!?
という悟りを開き、今日からプログラム言語を覚え、そして
プログラムツールで作ります!今持ってるものは・・・。
6才年下の弟の持ってる技術(厨2)の教科書。
アクティブベーシック。(vectorより入手)
・・・作れるのだろうか!?もちろん古本屋で買いあさってくるが
(作れ次第、いずれうpします・・・。いつまでかか(ry))
0769名前は開発中のものです。
03/08/06 10:57ID:2U3UXzN0そりゃそうなんですか・・・・
出直してきます。
ちなみに130は投稿後すぐ直しときましたんで、多分もう大丈夫だと思います。
ちょこっと改良したい所があるんで、終ったらまた、ソースの越したいと思います。
0770名前は開発中のものです。
03/08/06 19:35ID:2U3UXzN0#N88BASIC
0 DIM ANS,N,A
10 RANDOMIZE
20 ANS=Int(Rnd()*7+1)
30 PRINT "スライムが現れた。"
40 PRINT "呪文一覧"
50 PRINT "1、ファイヤー"
60 PRINT "2、サンダー"
70 PRINT "3、ブリザード"
80 PRINT "4、ウォーター"
90 PRINT "6、アース"
100 PRINT "7、ストーン"
110 PRINT "8、逃げる。(終了)"
120 INPUT "使いたい呪文の番号を記入してください。->",N
130 IF N=8 THEN PRINT "終了します。":GOTO 170
135 A=Int(Rnd()*3+1)
140 IF ANS<N THEN PRINT "スライムに"+Str$(A)+"ダメージ!":GOTO 190
145 A=Int(Rnd()*3+1)
150 IF ANS>N THEN PRINT "スライムに"+Str$(A)+"ダメージ!":GOTO 190
155 A=Int(Rnd()*100+30)
160 IF ANS=N THEN PRINT "クリティカルヒット!スライムに"+Str$(A)+"ダメージ!"
165 PRINT "スライムを倒した。"
170 INPUT "",A
180 END
190 A=Int(Rnd()*5+1)
200 PRINT "スライムの攻撃!"+Str$(A)+"ダメージ"
210 PRINT "反撃チャンス!":GOTO 120
こんな、感じ。RPGの雰囲気は出てると思います。まあ、こんだけですが(汗
後少ししたら、相手と自分のHP作れそう。・・・・・あくまで勘ですが・・
ところでこのスレ、ageてもいいんですかね?
0771名前は開発中のものです。
03/08/06 22:38ID:JTND/yTp特に関係ないが 5、 がないのが気になる
俺としてはageてもいいよ
0772名前は開発中のものです。
03/08/06 22:52ID:t1xYEgmx0773名前は開発中のものです。
03/08/06 23:00ID:qSFAl4DBおれもCやってるんだけどまだオブジェクト指向の使い方が良く分からん。
ゆえに評価はできん。
なんとなくどんな概念かはわかったんだけどな
0774_
03/08/06 23:26ID:xkLXDOht0775名前は開発中のものです。
03/08/06 23:35ID:wvG73zITマダムから美少女まで盛りだくさんのおっぱいが・・・
胸フェチ必見。当然モロ見え!
http://55.40.59.72/index.html
0776_
03/08/06 23:37ID:xkLXDOht0777名前は開発中のものです。
03/08/07 01:14ID:cFggxyoVオブジェクト化するなら、ゲーム管理と数字管理は別にするべきなんだが、
このコードサイズでは、そこまでしなくてもいいだろう。
CNumberは、ある数値を保持し、外部から渡された数値がそれと一致するかどうかを
チェックできるオブジェクト、になるのかな?そうすると、CNumber::Run()は、main()に
直接配置するか、ゲーム管理オブジェクトが実装することになるか。
あと、CNumberは常に何らかの数値を持たなければならないのだから、
CNumber::InitRandomNumber()はコンストラクタでおこなうべきことでは?
この場合、引数なしのデフォルトコンストラクタは、ないほうがいいかもしれない。
0778名前は開発中のものです。
03/08/07 01:21ID:6f3EqmyZ中学生の頃に覚えたオナニーで性感帯はしっかり開発されており
すっかりグッチョリの様子。
無料ムービーはこちらから
親切、安心サイト
http://www.j-girlmovie.com/
0779_
03/08/07 03:05ID:LvooB/gQ0780_
03/08/07 03:46ID:S+ggGXg50781_
03/08/07 04:29ID:bLnqziTa0782名前は開発中のものです。
03/08/07 05:58ID:TYLlWGiahttp://endou.kir.jp/yuminet/link.html
http://endou.kir.jp/marimo/link.html
0783名前は開発中のものです。
03/08/07 07:15ID:ci2OouMShttp://homepage3.nifty.com/coco-nut/
0784756
03/08/08 01:11ID:rkg+simlアドバイスありがとうございます。
"ゲーム管理"がまだちょっと漠然とした状態ですが、次はもうちょっと
オブジェクト数の多いゲームを作ってみようと思っています。
0785名前は開発中のものです。
03/08/08 10:40ID:hLqic0Q90 DIM ANS,N,A,b
10 RANDOMIZE
20 ANS=Int(Rnd()*7+1)
30 PRINT "スライムが現れた。"
40 PRINT "呪文一覧"
50 PRINT "1、ファイヤー"
60 PRINT "2、サンダー"
70 PRINT "3、ブリザード"
80 PRINT "4、ウォーター"
85 PRINT "5、ライトニング"
90 PRINT "6、アース"
100 PRINT "7、ストーン"
110 PRINT "8、逃げる。(終了)"
120 INPUT "使いたい呪文の番号を記入してください。->",N
130 IF N=8 THEN PRINT "終了します。":GOTO 170
135 A=Int(Rnd()*3+1)
140 IF ANS<N THEN PRINT "スライムに"+Str$(A)+"ダメージ!":GOTO 190
145 A=Int(Rnd()*3+1)
150 IF ANS>N THEN PRINT "スライムに"+Str$(A)+"ダメージ!":GOTO 190
155 A=Int(Rnd()*50+30)
160 IF ANS=N THEN PRINT "クリティカルヒット!スライムに"+Str$(A)+"ダメージ!"
170 PRINT "スライムを倒した。"
175 INPUT "",A
180 END
190 A=Int(Rnd()*10+1)
195 b=10
200 PRINT "スライムの攻撃!"b-Str$(A)+"ダメージ"
205 if b=0 THEN PRINT "残り体力が減った。"
210 PRINT "反撃チャンス!":GOTO 120
とやったら主人公の体力らしきものが以上に高くなるんですがどうなんでしょうか?
0786名前は開発中のものです。
03/08/08 11:30ID:kEzo2gOHこれは書き方がおかしいので
200 PRINT "スライムの攻撃!"+Str$(b-A)+"ダメージ"
こう書くか・・・
でも b がたぶん主人公の体力だと思われるので普通に
200 PRINT "スライムの攻撃!"+Str$(A)+"ダメージ"
とやって次の
>205 if b=0 THEN PRINT "残り体力が減った。"
これを
202 b=b-A
205 PRINT "残り体力"+Str$(b)+"。"
とやるか でも
>195 b=10
これを最初の方に書かないと意味ないな
0787名前は開発中のものです。
03/08/08 12:14ID:hLqic0Q90 DIM ANS,N,A,b,c
5 b=10
10 c=30
15 RANDOMIZE
20 ANS=Int(Rnd()*7+1)
30 PRINT "スライムが現れた。"
40 PRINT "呪文一覧"
50 PRINT "1、ファイヤー"
60 PRINT "2、サンダー"
70 PRINT "3、ブリザード"
80 PRINT "4、ウォーター"
85 PRINT "5、ライトニング"
90 PRINT "6、アース"
100 PRINT "7、ストーン"
110 PRINT "8、逃げる。(終了)"
120 INPUT "使いたい呪文の番号を記入してください。->",N
130 IF N=8 THEN PRINT "終了します。":GOTO 170
145 A=Int(Rnd()*10+1)
150 PRINT "スライムに"+Str$(A)+"ダメージ!"
152 c=c-A
153 IF c=0 THEN PRINT "スライム倒した。":GOTO 180
154 PRINT "スライムの番":GOTO 190
155 A=Int(Rnd()*20+1)
160 IF ANS=N THEN PRINT "クリティカルヒット!スライムに"+Str$(A)+"ダメージ!"
162 c=c-A
0788名前は開発中のものです。
03/08/08 12:14ID:hLqic0Q9175 PRINT "スライムの番":GOTO 190
180 INPUT "",A
185 END
190 A=Int(Rnd()*3+1)
200 PRINT "スライムの攻撃!"+Str$(A)+"ダメージ"
202 b=b-A
205 PRINT "残り体力"+Str$(b)+"。"
210 IF b=0 THEN PRINT "GAME OVER":GOTO 180
220 PRINT "反撃チャンス!":GOTO 120
なんとか,ここまでやりとげる事が出来ました。
しかし、問題があり、ダメージが多すぎて0より低い数値になると、倒せなくなるんです。
バグとかありましたらご連絡を。
0789名前は開発中のものです。
03/08/08 13:01ID:kcUizlQe>IF c=0 THEN PRINT "スライム倒した。"
IF c<=0 THEN PRINT "スライム倒した。"
>IF b=0 THEN PRINT "GAME OVER":GOTO 180
IF b<=0 THEN PRINT "GAME OVER":GOTO 180
0以下でもIFが真になるようにする
あとクリティカルヒットが出ませんよ
0790名前は開発中のものです。
03/08/08 15:01ID:hLqic0Q960 PRINT "2、サンダー"
70 PRINT "3、ブリザード"
80 PRINT "4、ウォーター"
85 PRINT "5、ライトニング"
90 PRINT "6、アース"
100 PRINT "7、ストーン"
110 PRINT "8、逃げる。(終了)"
120 INPUT "使いたい呪文の番号を記入してください。->",N
130 IF N=8 THEN PRINT "終了します。":GOTO 180
145 A=Int(Rnd()*10+1)
150 IF ANS<N THEN PRINT "スライムに"+Str$(A)+"ダメージ!"
152 c=c-A
154 IF ANS>N THEN PRINT "スライムに"+Str$(A)+"ダメージ!"
155 c=c-A
0791名前は開発中のものです。
03/08/08 16:29ID:7Y5PF2QY↑
暑さで頭がイカれた夏厨が
わけのわからんホムペを作って調子に乗ってます
みなさんで爆撃して懲らしめましょう
0792名前は開発中のものです。
03/08/08 16:31ID:utM/iXZZ↑
暑さで頭がイカれた夏厨のふりをした大人物のサイトです
わけのわからんホムペを装ってますがハッキング対策完璧…。
今日も大漁で調子に乗ってるようです。
みなさんで爆撃してもっと彼を喜ばせましょう。
0793名前は開発中のものです。
03/08/08 18:56ID:hLqic0Q9#N88BASIC
0 DIM ANS,N,A,b,c
5 b=100
10 c=50
15 RANDOMIZE
30 PRINT "スライムが現れた。"
40 PRINT "呪文一覧"
50 PRINT "1、ファイヤー"
60 PRINT "2、サンダー"
70 PRINT "3、ブリザード"
80 PRINT "4、ウォーター"
90 PRINT "5、ライトニング"
100 PRINT "6、逃げる。(終了)"
115 ANS=Int(Rnd()*5+1)
120 INPUT "使いたい呪文の番号を記入してください。->",N
125 IF N=1 THEN PRINT "ファイヤーを唱えた。":GOTO 145
126 IF N=2 THEN PRINT "サンダーを唱えた。":GOTO 145
127 IF N=3 THEN PRINT "ブリザードを唱えた。":GOTO 145
128 IF N=4 THEN PRINT "ウォーター":GOTO 145
129 IF N=5 THEN PRINT "ライトニングを唱えた。":GOTO 145
135 IF N=6 THEN PRINT "終了します。":GOTO 180
140 PRINT "関係無い文字を入力しないで下さい。":GOTO 120
145 A=Int(Rnd()*10+1)
150 IF ANS<N THEN PRINT "スライムに"+Str$(A)+"ダメージ!"
152 c=c-A
154 IF ANS>N THEN PRINT "スライムに"+Str$(A)+"ダメージ!"
155 c=c-A
0794名前は開発中のものです。
03/08/08 18:57ID:hLqic0Q9160 IF ANS=N THEN PRINT "クリティカルヒット!スライムに"+Str$(A)+"ダメージ!"
162 c=c-A
170 IF c=0 THEN PRINT "スライム倒した。":GOTO 180
171 IF c<=0 THEN PRINT "スライム倒した。":GOTO 180
175 PRINT "スライムの番、残り体力"+Str$(c)+"":GOTO 190
180 INPUT "",A
185 END
190 A=Int(Rnd()*7+1)
200 PRINT "スライムの攻撃!"+Str$(A)+"ダメージ"
202 b=b-A
205 PRINT "残り体力"+Str$(b)+"。"
210 IF b=0 THEN PRINT "GAME OVER":GOTO 180
220 PRINT "反撃チャンス!":GOTO 115
以上です。しかし、表示されてるダメージよりスライムの体力が多く減るのは何故?
0795名前は開発中のものです。
03/08/08 18:59ID:hLqic0Q91、クリティカルヒットする呪文が毎回変わってる。
2、呪文以外の番号を打つと、打ち直される。
3、ちゃんと逃げれる。
4、その他(ぉ
0796名前は開発中のものです。
03/08/08 19:07ID:wg4lQfjc150 IF ANS<N THEN PRINT "スライムに"+Str$(A)+"ダメージ!"
152 c=c-A
154 IF ANS>N THEN PRINT "スライムに"+Str$(A)+"ダメージ!"
155 c=c-A
この辺で GOTO 170 しなくちゃダメ
飛ばないと152と155と162で3回cを引くことになるから
あとは
210 IF b=0 THEN PRINT "GAME OVER":GOTO 180
これも b<=0 にしないと0より小さくなるとGAMEOVERにならないぞ
他は170と171は171だけでいい
0797名前は開発中のものです。
03/08/08 19:13ID:wg4lQfjc> 2、呪文以外の番号を打つと、打ち直される。
> 3、ちゃんと逃げれる。
これはできてると思う
0798名前は開発中のものです。
03/08/08 19:24ID:hLqic0Q9#N88BASIC
0 DIM ANS,N,A,b,c
5 b=100
10 c=50
15 RANDOMIZE
30 PRINT "スライムが現れた。"
40 PRINT "呪文一覧"
50 PRINT "1、ファイヤー"
60 PRINT "2、サンダー"
70 PRINT "3、ブリザード"
80 PRINT "4、ウォーター"
90 PRINT "5、ライトニング"
100 PRINT "6、逃げる。(終了)"
115 ANS=Int(Rnd()*5+1)
120 INPUT "使いたい呪文の番号を記入してください。->",N
125 IF N=1 THEN PRINT "ファイヤーを唱えた。":GOTO 145
126 IF N=2 THEN PRINT "サンダーを唱えた。":GOTO 145
127 IF N=3 THEN PRINT "ブリザードを唱えた。":GOTO 145
128 IF N=4 THEN PRINT "ウォーター":GOTO 145
129 IF N=5 THEN PRINT "ライトニングを唱えた。":GOTO 145
135 IF N=6 THEN PRINT "終了します。":GOTO 180
140 PRINT "関係無い文字を入力しないで下さい。":GOTO 120
145 A=Int(Rnd()*10+1)
0799名前は開発中のものです。
03/08/08 19:25ID:hLqic0Q9152 IF ANS<N THEN c=c-A :GOTO 170
154 IF ANS>N THEN PRINT "スライムに"+Str$(A)+"ダメージ!"
155 IF ANS>N THEN c=c-A :GOTO 170
157 A=Int(Rnd()*20+1)
160 IF ANS=N THEN PRINT "クリティカルヒット!スライムに"+Str$(A)+"ダメージ!"
162 IF ANS=N THEN c=c-A :GOTO 170
170 IF c<=0 THEN PRINT "スライム倒した。":GOTO 180
175 PRINT "スライムの番":GOTO 190
180 INPUT "",A
185 END
190 A=Int(Rnd()*7+1)
200 PRINT "スライムの攻撃!"+Str$(A)+"ダメージ"
202 b=b-A
205 PRINT "残り体力"+Str$(b)+"。"
210 IF b<=0 THEN PRINT "GAME OVER":GOTO 180
220 PRINT "反撃チャンス!":GOTO 115
こんな感じで。ほかに付け加えるべき所はありますか?
0800名前は開発中のものです。
03/08/08 19:29ID:wg4lQfjc完成か
0801名前は開発中のものです。
03/08/09 13:25ID:L0C8hnQ7テストプレイしてくださったり、わからない事を教えてくださった皆様。
まことに感謝しております。
最初は聞いてばかりでしたが、完成が近づくにつれ、質問の数も減ったと思っています。(多分)
数あてゲームも既に完成しましたが、まだBASIC言語の勉強は続けるつもりです。
さて、次はどんなゲームを作ろうか、考えただけでワクワクです。
もしよろしければ、またここで、質問させていただけませんか?(まだ聞くつもりか!?)
0802名前は開発中のものです。
03/08/09 16:48ID:6cgblPMS詳しくはこちら→http://e-rebirth.com/af/in.cgi?id=30
0803名前は開発中のものです。
03/08/10 03:00ID:y5AJHq8O>801
ソースの書き方を勉強してみる気はない?うまく書けば、短く簡潔にまとめられるよ。メンテもしやすくなったりするし。
例えば、
1・変数名をわかりやすくする。(bとかcじゃね)
2・配列を使う(125〜129行を1行にまとめちゃえ!)
3・コメントを入れる(処理のまとまりごとにコメントで区切れば見やすい!)
やっぱ初心者にBASICはいいよなぁ。
0804名前は開発中のものです。
03/08/10 10:50ID:ckv5388Jとりあえず、m=魔法、p=プレイヤー、s=スライム、A=?、にしてみました。
配列?ってどうやるんでしょうか? 1,2,3 じゃ無理ですよね。
0805_
03/08/10 10:56ID:vxsyuW650806_
03/08/10 11:36ID:vxsyuW650807_
03/08/10 13:14ID:JuRMyw+G0808_
03/08/10 13:22ID:o/11yaxt0809_
03/08/10 15:06ID:5c73RWwu0810_
03/08/10 15:31ID:5c73RWwu0811>>2ちゃんねらーの皆さん
03/08/10 16:19ID:YugNK1Wgこれらの寺院にて諸願成就を祈願しましょう。(爆)
(1-3件目)
http://www.tctv.ne.jp/matuti/
http://www5b.biglobe.ne.jp/~ryumyoin/
http://www1.ocn.ne.jp/~tatsueji/
(4件目)
--------------------------------------------------------------
寺院名 吉祥山唐泉寺
通称 江戸川不動尊
所属宗派 真言宗泉涌寺派
住所 〒133−0051
東京都江戸川区北小岩七丁目10−10
京成電鉄の小岩駅から徒歩約15分
(JR線の小岩駅は、
京成電鉄の小岩駅とはもの凄く離れているので不可。)
電話番号 03−3658−4192
住職 高田正圓
(女住職で、先代住職(高田真快)の奥さんであった模様。)
本尊 不動明王
祈祷日及び祈祷時刻
通常は毎日午前6時より(150分前後かかる模様)
行われるが、毎月28日には(不動明王縁日として)
午前11時にも(2時間ほどかかる模様)行われる。
祈祷料
(普通護摩) 3000円 5000円 10000円
(特別護摩) 30000円(21日間) 100000円(108日間)
300000円(365日間)
--------------------------------------------------------------
0812名前は開発中のものです。
03/08/11 23:35ID:VXx0na2oなんか無関係の俺まで感動・・・・
0813名前は開発中のものです。
03/08/13 06:46ID:ocvWjygWA君と博士
0814名前は開発中のものです。
03/08/13 10:47ID:vZlpKLxq学割がきくものを買いたいのですが
0815名前は開発中のものです。
03/08/13 11:26ID:IbXgRsQPC言語なら一般的にはC++言語が標準的でVisualC++.NET アカデミックが最安6829円で買える。
どういうシリーズがあるか知らないみたいだから言うと、VBはBASIC言語、VC++はC/C++(つまりC言語もその発展型のC++も)言語、VC♯はC言語でネットワークプログラミング中心にできるのが特徴。
0816名前は開発中のものです。
03/08/13 11:29ID:IbXgRsQP名前に「.NET」って付いてるVisualシリーズは2000&XPじゃないと動かないから注意。
ちなみに.NETシリーズのアカデミック版は前バージョンのVC++Ver6.0アカデミックよりも2000円近く安い。
0817名前は開発中のものです。
03/08/13 11:58ID:cfv501zVPROのほうがイイと聞いたことがあるのですが
0818名前は開発中のものです。
03/08/13 12:11ID:IbXgRsQP.NETは今の所スタンダードのみ…っていうか初心者はスタンダード買え。
初心者がプロ買っても宝の持ち腐れだから、普通はスタンダード買って本買って勉強して覚えてから買う物>プロ
0819名前は開発中のものです。
03/08/13 12:13ID:cfv501zV0820名前は開発中のものです。
03/08/13 13:08ID:uaCfrcx30821名前は開発中のものです。
03/08/13 14:31ID:X8v9vu4U0822名前は開発中のものです。
03/08/13 15:05ID:dYK/yQDiボーランドのフリーコンパイラでも使ってみなさい。
無駄な出費になるやもしれんし。
0823名前は開発中のものです。
03/08/14 09:11ID:jQ1mC7W5エンタープライズ版を買った。
0824名前は開発中のものです。
03/08/14 09:31ID:ARy9MgF00825名前は開発中のものです。
03/08/14 10:34ID:t4c+MZZr守だな。
0826山崎 渉
03/08/15 07:58ID:Q998ZG7G│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0827名前は開発中のものです。
03/08/16 21:53ID:IPxqEa3WC言語、ムズカシイです。
変なこといっぱいやってると思いますが、とりあえず動くんで、試してみてください。
ご指摘の方お待ちしております。
0828以下ソースです
03/08/16 21:53ID:IPxqEa3W#include <stdlib.h>
#include <time.h>
#include <conio.h>
int main()
{
int random,answer;
srand((unsigned int)time(NULL));
random=rand()%100;
printf("数当てゲームを開始します。\n0〜99を入力してください。\n");
0829以下ソースです
03/08/16 21:54ID:IPxqEa3Wscanf("%d",&answer);
if(answer>=100||answer<0){
printf("0〜99の数字でお願いします。\n");
printf("Press any key\n");
getch();
exit(1);
}
while(1){
if(answer==random){
printf("正解です。\n");
printf("Press any key\n");
getch();
return 0;
}
else if(answer<random){
printf("答えはもう少し大きな値です。\n");
break;
}
else if(answer>random){
printf("答えはもう少し小さな値です\n");
break;
}
}
}
}
0830名前は開発中のものです。
03/08/19 02:56ID:8T/5ayFDちょっとコメントする時間がないんで、自分好みに書き換えてみた。
比べてみ。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
void main( void )
{
int random,answer;
srand((unsigned int)time(NULL));
random=rand()%100;
printf("数当てゲームを開始します。\n");
0831続き
03/08/19 02:57ID:8T/5ayFDprintf("0〜99を入力してください。\n");
scanf("%d",&answer);
if(answer>=100||answer<0){
printf("0〜99の数字でお願いします。\n");
}
else if(answer==random){
printf("正解です。\n");
printf("Press any key\n");
getch();
break;
}
else if(answer<random){
printf("答えはそれより大きな値です。\n");
}
else if(answer>random){
printf("答えはそれより小さな値です。\n");
}
}
return 0;
}
0832521
03/08/19 10:42ID:TxUwJEa1なるほど、0〜99以外を入力されたときも続けろということですね。
しかしそのコードだと数字以外を入力されると無限ループに入りますよね?
いえ、当然私が書いたif(answer>=100||answer<0)の部分がいけないのですが…
実は最初は>>830さんが手直されたようなコードだったんです。
ですが数字以外が入力された場合の判定のやり方がよく分からなくて、無限ループしないよう、その場で終了させることにしたのですが…
純粋に0〜99だけを受け付けるようにする場合(その他のアルファベットや改行や記号などを省く場合)どのように書いたら良いでしょうか…
0833名前は開発中のものです。
03/08/19 22:41ID:Qq+BHjHC0834名前は開発中のものです。
03/08/19 22:46ID:d9fQejakscanfの返り値について調べてみるなんてどうよ。
0835521
03/08/20 06:53ID:9SL4zmeG…申し訳ありません。
未熟故、もう少し具体的にヒント頂けませんでしょうか。
scanf()は代入された入力項目の数を返すんですよね…
ん。わからないです…そもそも戻り値について調べるってどうやって…
もう一回同じ入門書読んで出直してきますです。
0836833
03/08/20 12:21ID:TWQmsxwQごめんな、プロバイダがアクセス規制されちゃってて携帯からしか書き込めないのよ。
この場合、scanfが1以外を返してきたら入力は間違ってるってことね。その場合は入力ストリームstdinをクリアしてやればいい。
0837名前は開発中のものです。
03/08/20 13:54ID:wW23h0o7#include<conio.h>
class keisan
{
int a;
int b;
int ans;
public:
void input();
void tasu();
void hiku();
};
void keisan::input()
{
cout<<"a = ";
cin>>a;
cout<<"b = ";
cin>>b;
}
void keisan::tasu()
{
ans = a + b;
cout<<"a + b = "<<ans<<endl;
}
0838名前は開発中のものです。
03/08/20 13:55ID:wW23h0o7void keisan::hiku()
{
ans = a - b;
cout<<"a - b = "<<ans<<endl;
}
int main(void)
{
keisan cla;
cla.input();
cla.tasu();
cla.hiku();
getch();
return 0;
}
こんな感じにクラスって奴を使うんですか?
あと、オブジェクト指向になってますか?
0839名前は開発中のものです。
03/08/21 00:49ID:2IFCdjlOとりあえず、クラスの設計で気がついた点を並べてみる。
・コンストラクタが無い
このせいで、メンバ変数a,b,ansの初期値が不定になる。
例えば、Keisan::input()を行わずにkeisan::tasu()やkeisan::hiku()を実行
すると、謎の数字が表示されてしまう。
・デストラクタが無い
現状では無くても構わない。が、個人的には常に書くほうが良いと思う。
・cin、coutはクラスの外に出したほうが良い
一概にはいえないが、「計算」と「出力」のような異なる処理は分離したほ
うが柔軟なクラスになる。
・メンバ変数ansは必要ない
cout << "a + b = " << ( a + b) << endl;
cout << "a - b = " << ( a - b) << endl;
で十分だろうと。でもこれは、上の三つほどは重要じゃないな。
0840名前は開発中のものです。
03/08/21 01:38ID:2IFCdjlOchar s[ 256];
scanf("%s", s);
のように文字列で受け取って、strtol()関数などで数値に変換。
ところで、「特定のキーのみを受け付ける」のは、C/C++の標準関数では
無理なので、プラットフォーム固有の機能を使わなければならない。
windowsな人は、DirectXにたよっちゃうのが楽だと思う。
■ このスレッドは過去ログ倉庫に格納されています