1read 100read
2013年07月ゲ製作技術324: BASICで始めるプログラム (189)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
ファミコンのROMのプログラム見る方法 (104)
gamdev.orgが落ちるたびにあげてみるスレ (134)
ゲームの次 (145)
ゲーム製作に役立つ資格をとるスレ (116)
【ADVP】アドベンチャープレイヤー05.adv【アドプレ (138)
企画書!!求む (107)
BASICで始めるプログラム
1 :04/11/15 〜 最終レス :2013/02/18 昔ながらのBASICでプログラムを始めてみませんか。 基本的にこのスレを見るだけで話が完結するようにする予定です。 初心者スレは乱立しておりますが、ここはあくまでBASICオンリーで 話を進めて行きます。 とりあえず最初にBASICのツールを準備しましょう。 ツール 99BASIC http://www.sagami.ne.jp/tadaka/99Basic/ N88互換BASIC for Windows95 ttp://www.vector.co.jp/soft/win95/prog/se055956.html 参考リンク はじめてのプログラミング講座 ttp://www.light-staff.com/prg/prg.html 関連スレ 【初心者歓迎】スレを立てる前にココで質問を【Part6】 http://pc5.2ch.net/test/read.cgi/gamedev/1094627404/ 【N88?】 99BASIC 【MSX?】 http://pc5.2ch.net/test/read.cgi/tech/1099847305/ N88-BASICの神業 http://pc5.2ch.net/test/read.cgi/gamedev/1007371918/ ズブの初心者がゲーム作れるまで勉強するスレ http://pc5.2ch.net/test/read.cgi/gamedev/1005132370/l50 今日から必死で〜 http://pc5.2ch.net/test/read.cgi/gamedev/1064146178/l50 【目標ない奴】おまいらに課題を与える。【集まれ】 http://pc5.2ch.net/test/read.cgi/gamedev/1026148930/l50
2 : その他の参考リンク(全て作りかけ) SukesanのBASIC講座 ttp://www.students.chiba-u.ac.jp/~y9p1074/i/basic/basicent.htm BASICクリエイターズルーム ttp://www.geocities.co.jp/HeartLand-Suzuran/1752/basic_b.html 受験生のためのコンピュータ・BASIC講座 ttp://hp.vector.co.jp/authors/VA006094/basic/
3 : とりあえずツールの準備はできましたか? 僕自身は99BASICを使用しますが、 Windows2000だとインストールできないと言う意見もありますので、 N88BASIC、もしくは他のツールを用意して下さい。 お願いします。
4 : ツールの準備ができましたら、早速いじくりまわしてみましょう。 あんまり御託なんか聞きたくないでしょ? 99 Basic Interpreter for Windows (ver 1.19) Copyright (c) 1999-2002 by Ida Takayuki OK □ とか出てますね。 とりあえず文字を書いて見ましょう。 「必死だな」と入力してみましょう さあ早速実行です! Syntax error OK と出ました 全然OKじゃありません。 何がOKだごるぁと思うのも無理はありません。 しかしこれは要するに簡単に言えばコンピューターが 「あんた間違えてるよ、OK?ウププ」 とか言ってくれているのです。 何が間違えなのかと言うと、あなたがコンピュータ様にわかる言葉でお話をしないからいけないのです。 簡単に言えばコンピュータ様はコンピュータの国から来たコンピュータ語しか喋れない外人さんなのです。 なのでただの日本語で喋りかけたからコンピュータ様は「あんた間違えてるよ、OK?ウププ」と コンピュータ語で喋ったと言うわけですね。
5 : 日本語が通じないなんてなんて面倒な奴でしょう! しかしコンピュータ様はこちらがコンピュータ語で喋りかければ 出来る範囲で何でもやってくれる下僕のような物でもあるのです。 こんな奴に”様”をなど付ける必要はありません。 とりあえずコンちゃんとでも呼ぶ事にしましょう。 先ほどはコンちゃんに理解できる言葉で話しかけ無かった為、 「あんた間違えてるよ、OK?ウププ」などと言い返されてしまいましたが、 次にはコンちゃんに理解できる言葉で話しかけてみましょう。 print "必死だな" と入力してエンターを押して実行します。 必死だな OK □ ↑ (先ほど書き忘れましたが、これはただの点滅です。カーソルがここにあるよって印ですが、 たぶんもうあまり書くことはないでしょう。要するに気にすんなと) となりました。 おめでとうございます! あなたはコンちゃんとの記念すべき最初のコミュニケーションを取る事ができたのです!
6 : この print ” ” と言うのは文字を表示する為の命令文でして print ”ひらがなちゃん” print ”カタカナくん” print ”漢字様” print ”アルファベットだabc” print ”数字も平気さ123” と、色々な文字を表示させる事ができます。 色々な文字を表示させてみましょう。 あと print ” ” print” ” 半角スペースを抜いて書いてもコンちゃんに話は伝わりますが、 見た目として美しいと思う方を選びましょう。 コンちゃんは面食いではないのでブサイクでも受け入れてくれますが 普通の人はブサイクが嫌いです。 皆さんも嫌いだと思います。 だから美しく!エレガントに!書きましょう!
7 : そろそろいい? ぶっちゃけ自分でページ作ったらどうよ。 2chだと文字のみだからわかりずらいべ。
8 : 却下します。 ホームページを持つのなんて面倒ですし、 僕以外の人にも講師をして貰いたいですから。
9 : BASIC をやると最終的にはどんなゲームが作れるんですか?
10 : これぐらいなら行けるようになるみたいです。 http://www.sagami.ne.jp/tadaka/99Basic/sample.html 相当の根性がいる気もしますが、(実際ソースを見ると凄い事になってます) そうしたらもっと便利な機能がある他の言語に行くのもよし。 basic=基礎的と言うぐらいですから、初めてプログラムに触るには うってつけかと。 実際、C言語だと #include<stdio.h> int main() { printf("文字を書くニョ"); return 0; } とか書かなきゃならないのが print "文字を書くニョ" だけで済むってのは簡単で良いじゃないですか。
11 : 先ほど連続投稿ではじかれた所をぺたり。 ブサイクでも受け入れてくれると言いました。 本当にそうなのでしょうか。 試しに pRiNT " " prInt" " と大文字小文字を分けて試して見ましょう。 おおっ!!受け入れてくれます! コンちゃんの愛は無制限なのですね!! しかし、ここで全角アルファベットどんを使ってみるとどうなるでしょうか PRINT ” ” でどうだっ!? Syntax error OK となりました。 「いくら俺でも、こいつとだけは勘弁」 ・・・そんな相手も世の中にはいると言うことでしょうか。 「って言うかお前女じゃなくて男じゃん!!」 みたいな感じですかね。 コンちゃんへの命令は基本的に半角スペースを用いましょう、と言うお話だったのさ。 今日のお話はこれまで。
12 : このままこのスレを見てたら、トランプゲームタイプのネットワーク対戦ゲームは作れますか?
13 : 千里の道も一歩からと言います。 Basicの先には VisualBasic.netなんてのもありますし、 不可能は無いんじゃないかと。 ただ、僕自身がそんなレベルには無いので、 そういったレベルの講師様を召還するか、 僕が教えているうちにそういったレベルにまで到達できれば このスレだけで話が完結しますね。
14 : >>9 http://www.jppass.com/lgp/ これを使えばけっこうなものができる。 http://www.geocities.co.jp/Playtown-Knight/2522/soft/bsooh.html http://akiragoya.sakura.ne.jp/game/galshell_01/ http://www.interq.or.jp/saturn/takuhama/Shooting2.html
15 : BASICの現状と展望ってどうなの? もれもN88-BASIC触ったことがあるし 当時どれだけパソオタの胸を熱くしたかも知ったうえで言うんだけど もう役割は終えたと思うんだよ 今、99BASICから入る人ってまずいないと思う あと落としてみてみたんだけど99BASICはBEEP音やめて欲すい 最近BEEP音てハードウェアエラーの時にしか聞かないから心臓とまるかと思った 懐かしいのは懐かしいんだけどね… あえて言語名は出さないけどポストBASICの位置を獲得してる言語があるからねぇ コンテストもにぎわってたみたいだし 応募作品いくつかみたけど、それこそ当時のBASICの臭いがぷんぷんしてました(いい意味で) よかったねぇあのころは
16 : 懐古スレはここですか? アマグラマーにとって最高のオモチャだったよね けど今はもっとリッチな環境が無料で手に入ってしまうからね BASICは過去の遺物でしかないのかも >>1 が連載する気ならそれなりに両スレとして育つこともありえるけど
17 : スレタイ 【マイコンBASICマガジンを懐古するスレ】 【DrDを偲んで初級BASIC講座を開くスレ】 のほうが人が集まったような気がしないでもない。
18 : 手伝おう! Dr.Dの為に。影さんの為に! みたいな……
19 : >>18 手伝ってくださいますか?
20 : おお、俺のID DiOだ。 JOJO厨としては嬉しい限り。
21 : まあ…それなりに手伝います。
22 : じゃあそれなりに宜しくお願いします〜
23 : 昨日は文字の表示の仕方をやりました。で、今日は計算のやり方を学びましょう。 コンピュータってのは電子計算機などと呼ばれております通り 計算をする為に生まれ、計算をする為に死んでいく・・・悲しい男よ・・・ と言うような訳でもありませんが、まあ基本なので。 print 1+1 と入力してみましょう。 2 OK と出ましたね。 1と1を足した結果を表示してます。 1と1を足したのだから当然2と出る訳ですね。 ここでちょっと思い出して下さい。 文字を表示するのには print "文字" って入れましたね。 そんな感じで print "1+1" と入れて試してみると 1+1 OK と言う結果が出ます。 「"」チョンチョン(ダブルクォーテーションとか言いますけどチョンチョンでも何でも好きに呼べば良いと思います) で囲んだ部分は計算等の処理をしないで、そのまんま表示される訳ですねー。
24 : では計算の仕方がわかった所で色々試してみましょう。 どのプログラムにも言える事でしょうし、 どのアプリケーションにも言える事ですが、 色々と自分で触って試してみると「あー、こう言う事ねー」「んー、これは駄目なんだー」 と言う事がわかって良いです。色々試して見ましょう。 楽しいですよ。 計算の基本である加減乗除(たし算、ひき算、かけ算、わり算)を一気に並べます。 実行して試してみてね。 たし算 print 100+200 ひき算 print 300-200 かけ算 print 4*5 わり算 print 6/3 いわゆる加減乗除は以上の通りでできます。 加減乗除オールスターズ! 「+」と「-」はそのまんまですね。 「*」と「/」は普段使うような記号ではありませんが、イメージはしやすいと思います。
25 : 文章が冗長すぎ。
26 : >>15 まー、HSPとかも良いんでしょうけどー HSPスレも初心者スレ並に多い事ですしー。 それにBASICの場合は既に多くの有能なプログラマを 排出していると言う実績もある上に、ある程度以上の 年齢の方なら誰でも知ってる、と言う事でも 最初に触れる言語としてはやっぱり良いんじゃないかと。 >>16 懐古しながら、新規のBASICユーザーに色々とご教授下さい。 まー、BCCとか高性能なコンパイラが無料で手に入る状況ってのは ある意味天国みたいな状況と言えないこともないですが、 初心者には設定するだけでお腹が一杯みたいな部分もありますからね。 一応、しばらくは不定期で連載続ける気です。 >>17 実は僕がべーマガを読んでた訳じゃあないので・・・ 最近何冊か手に入れたんですけどね。 http://basicmagazine.homeip.net/ >>25 冗長でない文章で講義して下さると助かります。 あと昔のPC板にあった良さげなスレです。 PRINT("BASIC デマターリカタルスレ。") http://bubble2.2ch.net/test/read.cgi/i4004/1009478372/
27 : 平日の昼間から元気なレスお疲れ様です
28 : やー職場で暇なんでー。 もう少しすると年末調整やら何やらで忙しくなるんですけどねー。
29 : また良さげなスレを見つけました。 昔のPC板 第1回昔のPC板杯プログラムコンテスト http://bubble2.2ch.net/test/read.cgi/i4004/1008847300/
30 : 明日は代入とかやると思います。たぶん。 リンク追加です http://homepage2.nifty.com/kasayan/bindex.htm
31 : Oryaaを髣髴させるな。 あっちもBasicだったし。
32 : セーブの場所にパソコン本体を指定してもうまくセーブできないみたいで、 ロードしてもファイルがないって言われます。 なんでですか? save"c:\test"って感じでやってるんですけど。
33 : >>32 えーと、99BASICを使用しているって事で良いんですよね? 試しに実行してみました。 save "\c で、Cドライブに保存されますので save "\c\test ってな感じで良いかと思われます。
34 : ごめんなさい。 なんかtestと言うフォルダを作ったら駄目になったー。 ちょっと待っててね。
35 : >>34 それは当たり前ジャマイカ? (パスの話ならフォルダとファイルは同等でしょ?)
36 : save "\c だとCの一番上にセーブされますね。 ただtestというフォルダを作って、 その中にデータをセーブするやり方がちょっとわかりませんでした。 ごめんなさい。 わかったらまたお知らせしまーす。
37 : >>36 なにもフォルダもつくらずに save "c:\hello"としたらセーブできました(ロードもちゃんとできました) いろいろ手間取らせちゃってすいません。 ありがとうございました。
38 : あいあい。 良かったでつ。
39 : ブロック崩しをつくりたいです。安西先生・・。
40 : 検索してみますた。 BASIC海にようこそ http://www.sic.shibaura-it.ac.jp/~p02078/index3.html
41 : >>40 あ、ありがとうございます!
42 : 今日の講師 1 (ID:c1wTVCJh) 今日の生徒 名無し(ID:VIxObihF) 1名
43 : >1さんは>15あたりの意見に対しては何も言わないんですね スルーですか?
44 : >>43 一応>>26 で一度レスはしてますけど。 >>15 の意見のどのような部分に対してどのようなレスをすれば良かったんですかねー。 BASICの現状も展望もお好きなように考えて下さい、としか言いようがないですね。 役割を終えたと思うのは個人的な意見ですが、 僕はプログラムの楽しさを知る取っ掛かりとしては ”いまさら”だろうが何だろうがBASICが一番良いと思ったんですよ。 HSPとかが良い人は自由にそちらに行けば良い訳で、別に強制している訳じゃないですから。 BEEP音は昔のBASICでも出る訳で、ワザワザ鳴らさなければ鳴るようなものでも無いと思うのですが 自分で鳴らしておいて「止めて欲しい」などと仰るのは、なんだかなあ、って感じです。 こんな感じのレスしかできませんが、何か問題ありますか。
45 : >>43 は注意力散漫
46 : >44 あ、しまった見逃してた >1さんスミマセンです
47 : >>1 で紹介されてたのはいまいちそそられないんで(スマソ) ゲーム専用機と化してたMSXでチャレンジしようと思ってるけど 良いですか? と言っても行番号系は触ったことないのでしばらくROMりますが。
48 : >>14 は無視かよ。 立派なBASICなのに。
49 : いやー、せっかくこういうスレが立ったから、Mファンの1画面プログラム みたいなのを組んで晒してみたいなと思い立っただけなので。 (そしてハードを突っつくのにちょっと興味があったから) ちなみにそれ系スクリプトは、以前にYGSを愛用していましたよ。
50 : 次に、代入って奴をやってみましょう。 中学生になって、算数が数学と名前を変えた時に この辺ですっころんだ人も多いかと思います。 まー、僕がそうなんですけどぅー。 だいたい代とか名前につくのが良くないですね。 田代まさ(略)とか代々木アニメー(略)とか ・・・それはともかく やって見ましょう! a=1 と入れます OK これでaと言う箱の中に1と言う数字が入った事になります。 いきなり箱とか言われても「はぁ?」と思う方もいるかと思いますので、説明しましょう。
51 : 同じ内容を let a=1 と書く事ができまして、 let と言うのは貸家と言う意味だそうで(エキサイト翻訳でもそう言ってたしー) なんと言いますか、コンちゃんの頭の中はだだっ広い荒野で、 そこに家畜である所の1くんを放牧しても、 どこにいるのかわからなくなっちゃうのです。 なので、1くんを監禁というか、ぶちこんでおく檻、っていうか家が必要なのです。 永住させる訳でもないので、貸家を用意して、そこに1くんを入れておきましょう。 他にも家畜をぶちこんでおく家が欲しかったりもするので、 貸家には名前をつけておきます。 ここではaと言う名前の家に入れて置きましょう。 「貸家 aに1くんをぶちこんでおくよ。」 と言う意味なのです。 今は貸家と説明しましたが、要するに物を入れると言う イメージさえつかめれば貸家でも箱でも山崎ハコでも どのようにイメージされてもかまいません。 要するにイメージが掴めりゃあ良いんですから。
52 : で、aの中に1くんを入れた所で、次に b=2 と入れましょう。 あれ?「let」が無くなってますね。 実はこのletは書かないでも全然かまいません。 一々「貸家 let」なんて書いておくのは面倒ですね。 人間だって一々要らない物を書くのは面倒ですし、さらには実はコンちゃんまでも面倒がってしまいますので、 むしろ書かない方が良いです。 これで、aの中には1が、bの中には2が入った事になります。 これを代入と言います。 で、代入した所で、次は計算式も作ってみましょう。 c=a+b と書きます。 なんで a+b=cと書いちゃ駄目なのかと言うと、そう言う文法上のルールがあるから、って感じですかね。 文法のルールや細かい部分を間違えると意味を取り違えてしまったり、 プログラムそのものが動かなくなってしまう事があります。 これは日本語でも同じですね。 「僕は昨日女性の姿を描きました」が 「僕は昨日女性の姿でカキました」となったら 意味が違ってしまいます。 気を付けましょう。
53 : で、c の中身はa+bになった事になりますので、 print c と入れると 計算結果の 3 OK が表示される事になります。 今日はこの辺でおしまいです。 明日はやるかどうか微妙ですが、次回は 行とかgotoとかをやる予定です。
54 : ほんっとに冗長な文章だね。
55 : まあ好みですからー。 冗長なのが嫌なら、そうでない講義をお願いします。
56 : 暇なのでこんなのを書いて見た。 文句を言う人はこれででも遊んでて下ちい。 10 input "クマー!が現れた!どうする?(1:戦う 2:逃げる) ";a 20 if a=1 then color2:print "ヌッ殺されますた":goto 50 30 if a=2 then print"しかし回り込まれてしまった!":goto 10 40 print "選びなおしてね":goto 10 50 print "ゲームオーバー:color 7:end
57 : 今日の講師 1 (ID:IOCnedLT) 今日の生徒 … 0名
58 : >だいたい代とか名前につくのが良くないですね。 >田代まさ(略)とか代々木アニメー(略)とか 冗長でもなんでもいいけどさ、こういう事とか、あまりにも寒いギャグとかは止めようぜ。 好きで書いていることかもしれんけど、荒らされる原因にもなりかねないからね。 個人的には応援しようと思うスレなので、面倒になって逃げ出さない事を祈っとくよ。 文句だけ書くのもなんだから、QBASICだけど、ここまでできるってHPを紹介しとく。 ttp://www.yamagame.com/
59 : すまん、いつのまにかsageのチェックボタン外れてた・・・・・・。 吊って来る。
60 : どう考えてもプログラム初心者向けじゃないね
61 : 今日は行番号とgoto命令文をやります。 「ぬるぽ」 「ガッ」 と書きたいとして、 print "ぬるぽ""ガッ" と書いてみます。 ぬるぽガッ と続けて表示されてしまいました。 改行されないでそのまま続けて表示されてしまいました。 微妙に考えていた事とは違うようです。 そこで以下のように書きなおしてみます。 10 print "ぬるぽ" 20 print "ガッ" さて、ここでエンターキーを押せば、今まででしたらすぐにプログラムが実行されてしまいましたが、 今回の場合エンターキーをどれほど押しても、ひたすら改行されるだけになってしまいます。 どうやってプログラムの実行をすれば良いのかと言うと、 run と入れて見てください。 ぬるぽ ガッ と実行されたはずです。よくプログラムを走らせる、などと言うのはこのrunから来てるんですね。
62 : 左側に10とか20とか数字が入ってますね。 これが行番号と言うもので、プログラムは基本的にこの数字の順番に実行されて行きます。 数が1,2,,,,と細かく区切らないのは、後で追加する項目が出ても安心なようにです。 これで多い日も安心ですね! 次に 10 print "ぬるぽ" 20 print "ガッ" 30 goto 10 と、入れてみる前に!注意点があります。 このプログラムはいわゆる”無限ループ”と言うものになっております。 実行してると、ひたすら ぬるぽ ガッ ぬるぽ ガッ ぬるぽ ガッ と繰り返し続けるようになっています。 これはプログラムの流れが 10行目 ぬるぽ と書くよ 20行目 ガッ と書くよ 30行目 10行目に 行ってね と言う流れになってて、いつまで経ってもこの流れから抜け出す事ができないからです。 仕方がないので慌てず騒がず、ctrl + c を押してプログラムを終了させましょう (ブレイクって言います、プログラムの流れの中で組んだりもします) 今日はおしまいです。明日は何をしましょうね。
63 : >>58 それは単にあなたが止めさせたいだけの話のようなので、寒かろうがなんだろうが却下します。 まぁ、プログラムに触った事がない人の為に、と思って、色々と概念を説明するとなると、 どうしても文章が長くなってしまう物だと思いますが、 段々とそう言った話はしないように(って言うかできないように)なって行くと思うので心配しないように。 そもそも、こんな過疎板で荒らしをするのは暇人の私怨程度の物なので恐れるに足りませんな。 それと何度も言ってますが、文句を言うなら、文句の出ないような文章で、あなたが講義して下さい。 文句を言うだけじゃつまらないでしょう。 あなたが講義をすれば、とても素晴らしいものになるんでしょうから、僕も冗長な文章で講義なんてしないで済みますし。 是非お願いしますね。 >>60 誰がどう考えてもプログラム初心者向けの講義をして下さい。頼みましたよ。
64 : 俺はおもしろいと思うよ
65 : >>64 ありがとう!
66 : 今日はこんな感じの事をやりましょう。 モナー1が現れた! モナー2が現れた! (中略) モナー10が現れた! と書く方法です。 実は、これまでの講義の内容で、既にやろうと思えばできるようになっています。 10 print "モナー1が現れた!" 20 print "モナー2が現れた!" 30 print "モナー3が現れた!" と言う風に書けば良いのですから。 だけど一々全部書いて行くのは面倒ですね。 そこで、for 〜 next と言う命令文を使います。 以下の文章を書いてみて下さい。 10 fot i=0 to 10 20 print "モナーが現れた!" 30 next i モナーが現れた! モナーが現れた! モナーが現れた! と表示されたはずです。
67 : 数を数えてみましょう。 1,2,3・・・ あれ?11匹のモナーがいる事になりますね。 表示したいのは10匹です。 これは「for の後の i=0が出発点となって順番にゴールが10で、その数字になるまで繰り返せ。」 と言う命令文でして、0,1,2,3,と続けている訳ですから、 1から10ではなくて、0から10の数だけ繰り返しをしているので、 11の数がある事になります。 出発点かゴールの数を変えれば良い訳です。今回はゴールの数を変えますね。 10 for i=0 to 9 20 print "モナーが現れた!" 30 next i これで、ちょうど10匹になりました。 そうそう、next i ってのはfor とセットになっている物なので、あまり気にしないで良いです。 だけど無いとエラーになっちゃいますので、付けておきましょう。
68 : 次にモナーに番号を振りましょう。 番号を連続で表示させる方法として、 10 for i=0 to 9 20 a=a+1 30 print a 40 next i と書きます。 これで1から10までの数字が表示される事になりました。 a=a+1と言うのは、aと言う小屋の中に、1を足すぞ。と言う表示です。 イコールだからと言って同じ数字と言うわけではなく、代入していくんだぞ、と言う事なんです。 aに1を足す、1になる→繰り返し1を足す、2になる→繰り返し1を足す、3になる→10になるまで繰り返す で、その結果を30行目で表示させる。 と言う命令文になっております。 この二つの文字を10回表示させる命令文と数字を順番に10回表示させる命令文を合体させれば、 考えていたような結果が得られそうですね。合体してみると以下のようになります。 10 for i=0 to 9 20 a=a+1 30 print"モナー"a"が現れた!" 40 next i 30行目のprint の中身が少しわかりづらいですかね? "(チョンチョン)で囲まれた所は文字を表示する部分で、aは計算の結果を表示している訳ですね。 "ここから文字を表示する、ここまで→"aは計算の結果"ここから文字を表示する、ここまで→" と言う感じになっております。自分で色々試してみて、理解を深めてくださいね。 今日はこの辺で。
69 : 10 for i=0 to 9 20 print "モナー",i+1,"が現れた!" 30 next i の方がスッキリ …それはそうと printって型が変わるとき,が必要だった気が…まあ僕がN88互換BASICなのが悪いのかもしれません
70 : >>69 なるほど、そっちの方がすっきりしますね。 ( , )とか( ; )で囲った方が良いのかなー、と思いましたが、 >>68 のままで走っちゃったので、 なんで囲むのか、とか説明するのが面倒になっちゃったので、 無しでやっちゃいました。 >>69 のようにする場合だと、ちゃんと囲まないと走りませんね。 フォローありがとうございます。
71 : 先生!!このスレ見てBASICでプログラミングをしたくなってきますた!!
72 : 前回は10匹のモナーが出てきましたね。 さてどうしましょう?逃げましょうか?皆ひっぱたきますか? 今回は何らかの選択肢を作りましょう。 10 input "1か2を選んで押して下さい";a 20 if a=1 then print "1を押したね":goto 50 30 if a=2 then print "2を押したね":goto 50 40 print "1か2以外を押しやがったな!やり直しだ!":goto 10 50 end こんな感じが基本でしょうか。 inputはキーボードの何を押したか判定する命令文です。 10行目の内容を説明します。 「 " 」チョンチョンをつける事で、同時にprintみたいに文字を表示させる事ができます。 で、表示の内容は、これから何を選択したら良いのか、と言う事を表示します。 今回は1か2を選択させます。 更に「 a 」と言う空き部屋を作りました。 20行目では「if」と言う命令文も出てきましたね。 これは「もしも」って事ですので、以下の内容と併せて もしも「 a 」 の中身が1だったら と言う事になってます。 で、「 a 」の中身が1だとしたら、"1を押したね"と表示して 50行目に行け。 って書いてある訳です。 大丈夫ですかね。 30行目の内容は20行目とほとんど変わりませんね。
73 : 40行目ですが、 「 a 」の中身が1でも2でも無かった時にここに来ます。 実は20行目や30行目の最後に「50行目に行く」と言う指令が出ていない場合は、 1や2を選んでもここに来てしまうんですけどね。 とにかく、40行目に来てしまうと言う事は、 1や2以外の数字を押してしまった時と言う事になります。 想定外の答えを入れられた時にはどうするのか、と言う事も一応考えている訳ですね。 で、想定外の答えなので、やりなおしをさせる事にしました。 50行目のendでこのプログラムを終了します。 今までは無しにしておりましたが、プログラムは「ここから始まりだよ」「ここで終わるよ」 と言う事をちゃんと命令しておくものなのです。 これからはちゃんと終わりを書いておきましょうね。
74 : 説明を忘れていましたが、:(コロン、点々とか呼んでもよし、キョンシーズみたいですが)をつけるとある程度続けてプログラムを実行する事ができます。 ではでは、今やったプログラムをちょっと変えるだけで選択肢とその結果の表示ができますね。 10 input "モナー達をどうしますか?(1:全員ひっぱたく 2:逃げるよ!)";a 20 if a=1 then print "モナー達は「逝ってよし!」と叫んで、泣きながら家に帰っていきました":goto 50 30 if a=2 then print "しかし回り込まれてしまった!":goto 10 40 print "1か2以外を押しやがったな!やり直しだ!":goto 10 50 print "あなたは「さあ!殺伐と牛丼でも食いにいくか!」と言いましたとさ" 60 end 今日の所はお終いです。 次は何をやりましょうね。 他の講師の方が来てくれると本当に助かるんですけど。
75 : >>71 頑張って下さい!
76 : 更に補足です。 「 ; 」(セミコロン、点とチョン)と「 : 」(コロン、点々とか呼んでもいいですが、スイカ頭とか呼ぶと他の人たちにわかりにくいのでちょっと駄目かも) は似てますがちょっと違います。 気をつけてくださいね。
77 : LOCATEを使い 簡単なテキストアドベンチャー はどうでしょうか?
78 : >>1 >10 input "1か2を選んで押して下さい";a それだとreturnが必要だから、こうじゃないの?↓ 1 for i=0 to 255:i$=inkey$:next 2 print "1か2を選んで押して下さい"; 3 i$=inkey$:if i$="" then 3 4 a=val(i$) 昔はよくやったなぁ
79 : まだ、inkey$は早いだろ… 256回も解放してるが…初心者には何の事やら解らないだろうし… 最初のは 1 if ""<>inkey$ then 1 の方が機能的
80 : >>77 おお、良いっすね。 フォントのカラーを変えるとかgosub辺りも 使って行くと良い感じな気がします。 実は今から出張してしまうので、代わりに講義してくれたりすると助かりますです。 >>78 一応初心者にもわかりやすい部分から説明してますです。 inkey$も当然、そのうち触れるとは思いますけど、 受験生さんのおっしゃるとおり、まだちょっと早いかと。
81 : 一応定期的にそれまでやった講義の内容をまとめました。 ・print "" ・基礎の計算、加減乗除 ・代入の基礎、letは省略可能 ・行の概念、goto命令文 ・for 〜 next ・input ・if 〜 then ・end 次回辺りからはフォントの色変更、locate、gosub等を使って 簡単なテキストアドベンチャーを作りながら、BASICプログラムへの理解を深める。 と言う流れになる予定ですが、 「これをやった方がわかりやすいんじゃない?」 と言うのがありましたら、講義をお願いします。 講義をして下さる方は誰でも先生ですから。 宜しくお願いします。
82 : >>80 了解しました。 では…基本の文字色変更から 例文: 10 for a=1 to 7 20 color a:print "代理講師を任された!" 30 next a さて…新しい命令が有るのが解りますか? そう、color命令です。 このcolor命令は多様な使い方が有りますが、取り合えずは color 色番号で文字色が変更出来ることを覚えて下さい。 色番号は 0が黒 1が青 2が赤 3が紫 4が緑 5が水 6が黄 7が白 となっています。
83 : 色番号の秘密 次のようにイメージしてください 3つのスイッチがあります スイッチは左から緑赤青の順でならんでいます さらに緑=4、赤=2、青=1というなぞの数値を持っています ここから紫の番号が何番か知ることができます 紫は赤と青の合成色です スイッチにすると緑OFF赤ON青ONです ここでONになったスイッチのなぞの数値を足してみます 赤と青がONなので2+1=3ですね そう紫は3です 試しに黄色はどうでしょう 黄色は緑と赤の合成色です 緑ON赤ON青OFF なぞの数値をスイッチにあわせて足していきます 4+2=6 黄色は6ですね こういったルールで色番号というのは決められています 丸暗記でもいいですけど、豆知識程度に覚えておくといいと思います
84 : 教えたい人しかいないスレってここですか?
85 : おれ教わりたい
86 : おなじく教わりたい。 BASIC、ポケコン使って子供の遊戯王カード用プログラムとか書いてるけど、ほんとに基本的な文法使うだけで冗長なプログラムになってるし。もっとまとまった感じのカッコイイプログラム書きたいので、講師のかたがたよろしくです!
87 : ソースさらせば誰かがきっと助言してくれるよ。 85とかいまさらBASICで何やりたいの?
88 : 特に何がやりたいとかはない でもなんか楽しい
89 : 色々な意見が有るようですが 私は代理講師なので……何とも言えません ただ、恐らくスレ主様は見てくれている方がいらっしゃる限り止めないと思うので、私も止めません。 さて、本日はlocate命令です 例: 10 width 80,20 '画面のサイズをN88BASICに合わせる 20 for loops=0 to 19 30 locate loops*4,loops '位置確定 40 for wait=0 to 999:next wait 50 print "ニヤ" 60 next loops 実行してみて下さい ニヤが画面を斜めに切るはずです 新しい命令は二つ width命令は画面サイズを変更する為の命令です。N88BASIC環境に合わせるため よこ80文字、たて20文字の設定にしています。 locate命令は文字を表示する位置を指定します。上記の設定にすると左上の座標が0,0となり右下の座標が79,19となりますね。
90 : とりあえずノルマを終わらしちゃいますか。 と言うことでgosub命令もやりましょう これでだいぶ冗長的なコードから脱却できますよ。 例: 10 width 80,20:cls '画面を綺麗に 20 '階乗(m!)を求める 30 *main 'メイン 40 input "入力値の階乗を行います。整数m=";m 50 gosub *factorial 60 print "結果は";Ans;"になりました。" 70 goto *main 100 *factorial 110 Ans=1 120 for loops=m to 1 step -1 130 Ans=Ans*loops 140 next loops 150 return コードが長めなので詳しくは次に書きますが、重要なのはgosub 〜 returnです。 このようにして、N88BASICは見かけ上、コードを分割する事が出来ます。 gosubラベルでプログラムは指定されたラベルへ飛び、return命令でgosubが実行された所に返ってきます。
91 : >>89 嘘を教えちゃいかん
92 : あれ? 80,25でしたっけ?
93 : ああ!画面サイズ! いや…あの〜 N88互換BASICではwidthを変更すると文字サイズでなくウィンドウがリサイズされるんですよ。 う〜済みません。
94 : ども、ただ今戻りました。 受験生さん、講義ありがとうございました。 文字色の変更、とてもわかりやすかったです。 一応受験生さんの講義に補足をさせて頂きますと、 コメントと言いまして、プログラム中で、何を行っているのかを わかりやすくする為に書き込む時に使うのが 「 ' 」チョン、これです。 改行するまでが、コメントとして扱われます。 あまりに細かくコメントを書くこともありませんが、 ある程度何をやっているのか、大雑把でかまいませんので、コメントを書くと良いです。 次に僕なりのlocate の説明を。 locateは文字の座標の位置を示す命令文で、 座標の基本は受験生さんの仰る通り、ウィンドウの一番左上の角っちょがX軸(横軸)0、Y軸(縦軸)0になります。 数学とかで習ったのとはちょっと違う部分がありまして、X軸は、数字が増える度に1つ分づつ右に増えるので、わかりやすいのですが、 Y軸は数字が増えるほど、上ではなく、 ” 下 ” に向かって行く事になります。 わかりやすいように以下のプログラムを書いてみました。 10 for i=0 to 9 20 x=i:y=i 30 locate x,y 40 print "x"x,"y"y 50 next i わかりづらい人の為に下のように書いておきました、要するにやってる事はこう言う事です。 10 locate 0,0 20 print "x 0""y0" 10 locate 1,1 20 print "x 1""y1" 'これを10まで繰り返す
95 : えーと、 x 0 y0 x 1 y1 x 2 y2 みたいに表示されたはずです。 x の位置が 横。 y の位置は 縦。 どうでしょう?少しわかりづらいですかね? 自分で試してみるとわかりやすいかもしれません。 ともあれ、locateを使うと文字の位置を自由に変えることができると言うことがわかりましたね。 今日はこの辺で。 明日は、受験生さんのやって下さったgosubと、ウィンドウのサイズ変更等をやるかもです。 受験生さんは、受験生さんで、お好きなように講義を進めて下さって結構ですので、どうかお願いします。
96 : >>1 はもういいよ。 文書がだらだら長くて判りにくいし。
97 : >>94 の下の部分の行数が失敗でしたね。 10 locate 0,0 20 print "x 0""y0" 30 locate 1,1 40 print "x 1""y1" 60 locate 2,2 70 print "x 2""y2" 80 locate 3,3 90 print "x 3""y3" こんな感じですね。 場所を指定して、XとYの場所がわかるようにしてあります。 0、X1,X2,X3,X4,X5 Y1 Y2 Y3 Y4 Y5 みたいになるほうがわかりやすかったですかね。
98 : >>96 だから、なんであなたが文章のまとまったわかりやすい講義をしてくれないのかが、不思議で仕方ないのですが。 あなたが講義してくれれば皆が幸せなはずなのに。
99 : 別に文章が長いと感想抱いたからって、 文章が書けるわけないだろうて
100read 1read 1read 100read TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
RPGコンストラクションソフトを作りたい (113)
WinXPでのネットやろうぜの動かし方について (103)
ゲ製作技術に「愛」は必要か? (141)
Selene/Lue/Luna ライブラリ Trial-Version 4.00 (137)
おい貴様ら!園芸シュミレーションって作れますか? (184)
【ADVP】アドベンチャープレイヤー05.adv【アドプレ (138)
--log9.info------------------
赤い公園 (518)
[Champagne] [8] (211)
POLYSICS 61 (120)
ザ・クロマニヨンズ Part87 (818)
10-FEET 26% (192)
★ポルノ414「LAに行くよ」 (512)
クリープハイプ part.1 (905)
DEEN Break80 (104)
THE BOOM vol.25 (881)
THE BAWDIES vol.13 (871)
SCANDAL part70 (295)
Buffalo Daughter (162)
ORANGE RANGE 総合スレ101* (911)
【SHINKIBA】SPARKS GO GO【JUNCTION】 (199)
TRF 20TH Anniversary PART.37 (105)
The Birthday part93 (703)
--log55.com------------------
50歳以上のライダー108
50歳以上のライダー108
【擬態過少申告】ホワイトベース256【脱税屑屋】
【法規に無知】懐かしの限定解除 2【口は達者】
お前らが笑ったコピーをぺーinバイク板 299
40歳以上のライダー 187
【戒め】今日見た事故を語るスレ75【予防策】
【まだまだシーズン】北海道ツーリング総合スレ 19-14