by konisi » 2005年10月14日(金) 04:26
			
			
			僕も独学でBASIC言語(古い本があったので読み漁りましたがおそらくN88系かと。)を覚えました。
確か一番最初に作ったオリジナルプログラムの内容は「キーボードを叩いた回数をカウントして、指定回数以上になったらプログラムを終了させる」だったかなぁ。何百行(実際には30行ほど。)と書いたのを今でも覚えてます。
因みにそのプログラムはまだ動かしていません。要するに小さなノートにチマチマと書いておいてほうったらかしっていう話になるんですが、色々知識が身に付いた後で見直したけどバグもエラーになりそうなところも特にありませんでしたねぇ。
あのノート、どこに行ったかなぁ・・・。
それでパソコンで実際に作り始めたのは中2の春からかなぁ。最初に動かしたプログラムの内容は忘れましたが、自分が作ったプログラムで現存する中で最古のプログラムのコードはまだあるので載せます。
N88系BASIC用(元code)
コード: 全て選択
40  '初期設定
50  CLS 3
60  COLOR 0,7,0,7,1
70  CLS 3
80  ON ERROR GOTO *ERROR1
90  LOCATE 0,0
100  PRINT "このプログラムはフリーです。"
103  FOR I=1 TO 2000  '表示時間 約1秒
106  NEXT I
109  CLS 3
110  PRINT "どのゲームで遊びますか?"
120  PRINT "ルーレット=1,数当て=2,"
140  INPUT "どれ";N
150  if N=1 then goto 240
160  if N=2 then goto 520
170  if N=3 then goto 240 else goto 140
190  *END SUB
191  CLS 3
200  END
210  *ERROR1  
220  LINE (0,0)-(530,300),7,BF
223  COLOR 2
225  PRINT "エラーが起きました。"
230  goto 100
240  CLS 3'ルーレット メイン プログラム
241  gosub 411
242  C=D
264  gosub 390
265  LOCATE 0,2
267  PRINT "ルーレットを開始します。"
269  LOCATE 0,3
270  INPUT "倍率を入れてください。";B
275  if B<=1 then goto 370
276  LOCATE 0,4
277  PRINT "現在"
278  gosub 470
279  LOCATE 0,5
280  INPUT "掛け金を入れてください。";K
285  if K<=0 then goto 279
286  if K>C then goto 279
290  A=FIX(RND*B)+1
294  LOCATE 0,7
295  INPUT "数を予想してください。";X
296  if X>B then goto 297 else goto 300
297  PRINT "倍率以下で1以上の数にして下さい。"
298  goto 295
300  if A=X then goto 450
301  if A<>X then goto 460
303  if C=0 then goto 360
350  goto 264
360  PRINT "ゲームオーバー...読み込み中..."
361  FOR I=1 TO 6000 '表示時間 約3秒
362  NEXT I
363  goto 50
369  'ルーレット サブ プログラム
370  CLS 3
380  goto 265
390  COLOR 1,6,1,6,1
400  CLS 3
410  RETURN
411  D=1000  '最初の所持金
449  RETURN
450  C=C-K+(B*K)
455  goto 303
460  C=C-K
465  goto 303
470  LOCATE 4,4
480  PRINT ;C
490  LOCATE 11,4
500  PRINT "コイン有ります"
510  RETURN
520  CLS 3  '数当て メインプログラム
530  CONSOLE 0,25,0,1
540  CLS 3
555  gosub 660
550  PRINT "数当てを開始します。"
560  INPUT "1からどのくらいまでの数にしますか";B
565  goto 750
570  PRINT "コンピュータが作った数を当ててください。"
580  PRINT "間違ってれば、もっと多いかもっと少ないかをいいます。"
590  C=INT(RND*B)+1
600  N=1
610  INPUT "数は何でしょうか";K
615  if K<1 then goto 770
620  if C=K then goto 690
630  goto 800
650  '数当て サブ プログラム
660  COLOR 2,5,2,5,1
670  CLS 3
680  RETURN
690  PRINT " - - "
700  PRINT " @ @ "
710  PRINT "  O  "
730  if N<5 then PRINT "大当たり~" else PRINT "当たり"
731  PRINT "スコア";N;"手"
735  INPUT "まだやりますか?(Y/N)";X$
736  if X$="Y" then goto 520
737  if X$="N" then goto 900
738  if X$="y" then goto 520
739  if X$="n" then goto 900
741  goto 735
750  if INT(B)=B then 570 else goto 760
760  if B=1 then goto 780
770  PRINT "正の整数を入れてください。"
777  goto 560
780  PRINT "正の整数で、1以外の数値を入れてください。"
790  goto 560
800  PRINT "   / \"
810  PRINT "    @ @ "
820  PRINT "        "
830  PRINT "     ^  "
840  if C<K then goto 850 else 880
850  PRINT "もっと少ない"
860  N=N+1
870  goto 610
880  PRINT "もっと多い"
888  N=N+1
890  goto 610
900  PRINT "...読み込み中..."
910  FOR I=1 TO 6000
920  NEXT I
930  goto 50
940  '
ちょっとコードを変更してActiveBasicに対応させたコード↓
コード: 全て選択
#N88BASIC
Dim I,N,A,B,C,D,X$ As String,X,K
40  '初期設定
50  Cls 3
60  Color 0,7
70  Cls 3
Paint (0,0),7,7
90  Locate 0,0
100  Print "このプログラムはフリーです。"
103  Sleep(1000)
109  Cls 3
Paint (0,0),7,7
110  Print "どのゲームで遊びますか?"
120  Print "ルーレット=1,数当て=2,"
140  Input "どれ";N
150  if N=1 then goto 240
160  if N=2 then goto 520
170  if N=3 then goto 240 else goto 140
190  '*END SUB
191  Cls 3
Paint (0,0),7,7
200  END
240  Cls 3'ルーレット メイン プログラム
241  gosub 411
242  C=D
264  gosub 390
265  Locate 0,2
267  Print "ルーレットを開始します。"
269  Locate 0,3
270  Input "倍率を入れてください。";B
275  if B<=1 then goto 370
276  Locate 0,4
277  Print "現在"
278  gosub 470
279  Locate 0,5
280  Input "掛け金を入れてください。";K
285  if K<=0 then goto 279
286  if K>C then goto 279
290  A=Fix(Rnd()*B)+1
294  Locate 0,7
295  Input "数を予想してください。";X
296  if X>B then goto 297 else goto 300
297  Print "倍率以下で1以上の数にして下さい。"
298  goto 295
300  if A=X then goto 450
301  if A<>X then goto 460
303  if C=0 then goto 360
350  goto 264
360  Print "ゲームオーバー...読み込み中..."
361  Sleep(3000) '表示時間 約3秒
363  goto 50
369  'ルーレット サブ プログラム
370  Cls 3
380  goto 265
390  Color 1,6
400  Cls 3
Paint (0,0),6,6
410  return
411  D=1000  '最初の所持金
449  return
450  C=C-K+(B*K)
455  goto 303
460  C=C-K
465  goto 303
470  Locate 4,4
480  Print ;C
490  Locate 11,4
500  Print "コイン有ります"
510  return
520  Cls 3  '数当て メインプログラム
555  gosub 660
550  Print "数当てを開始します。"
560  Input "1からどのくらいまでの数にしますか";B
565  goto 750
570  Print "コンピュータが作った数を当ててください。"
580  Print "間違ってれば、もっと多いかもっと少ないかをいいます。"
590  C=Int(Rnd()*B)+1
600  N=1
610  Input "数は何でしょうか";K
615  if K<1 then goto 770
620  if C=K then goto 690
630  goto 800
650  '数当て サブ プログラム
660  Color 2,5
670  Cls 3
Paint (0,0),5,5
680  return
690  Print " - - "
700  Print " @ @ "
710  Print "  O  "
730  if N<5 then Print "大当たり~" else Print "当たり"
731  Print "スコア";N;"手"
735  Input "まだやりますか?(Y/N)";X$
736  if X$="Y" then goto 520
737  if X$="N" then goto 900
738  if X$="y" then goto 520
739  if X$="n" then goto 900
741  goto 735
750  if Int(B)=B then 570 else goto 760
760  if B=1 then goto 780
770  Print "正の整数を入れてください。"
777  goto 560
780  Print "正の整数で、1以外の数値を入れてください。"
790  goto 560
800  Print "   / \"
810  Print "    @ @ "
820  Print "        "
830  Print "     ^  "
840  if C<K then goto 850 else goto 880
850  Print "もっと少ない"
860  N=N+1
870  goto 610
880  Print "もっと多い"
888  N=N+1
890  goto 610
900  Print "...読み込み中..."
910  Sleep(3000)
930  goto 50
しかし懐かしいですね、苦悩しながら一行一行
丁寧にコードを打っていってたあの時代が。
でもビギナーがいきなりメモリ操作してOS落とすのはどうかと。>>たけぽい
あ、滅茶苦茶長い長文失礼。
 
			
			
							僕も独学でBASIC言語(古い本があったので読み漁りましたがおそらくN88系かと。)を覚えました。
確か一番最初に作ったオリジナルプログラムの内容は「キーボードを叩いた回数をカウントして、指定回数以上になったらプログラムを終了させる」だったかなぁ。何百行(実際には30行ほど。)と書いたのを今でも覚えてます。
因みにそのプログラムはまだ動かしていません。要するに小さなノートにチマチマと書いておいてほうったらかしっていう話になるんですが、色々知識が身に付いた後で見直したけどバグもエラーになりそうなところも特にありませんでしたねぇ。
あのノート、どこに行ったかなぁ・・・。
それでパソコンで実際に作り始めたのは中2の春からかなぁ。最初に動かしたプログラムの内容は忘れましたが、自分が作ったプログラムで現存する中で最古のプログラムのコードはまだあるので載せます。
N88系BASIC用(元code)
[code]
40  '初期設定
50  CLS 3
60  COLOR 0,7,0,7,1
70  CLS 3
80  ON ERROR GOTO *ERROR1
90  LOCATE 0,0
100  PRINT "このプログラムはフリーです。"
103  FOR I=1 TO 2000  '表示時間 約1秒
106  NEXT I
109  CLS 3
110  PRINT "どのゲームで遊びますか?"
120  PRINT "ルーレット=1,数当て=2,"
140  INPUT "どれ";N
150  if N=1 then goto 240
160  if N=2 then goto 520
170  if N=3 then goto 240 else goto 140
190  *END SUB
191  CLS 3
200  END
210  *ERROR1  
220  LINE (0,0)-(530,300),7,BF
223  COLOR 2
225  PRINT "エラーが起きました。"
230  goto 100
240  CLS 3'ルーレット メイン プログラム
241  gosub 411
242  C=D
264  gosub 390
265  LOCATE 0,2
267  PRINT "ルーレットを開始します。"
269  LOCATE 0,3
270  INPUT "倍率を入れてください。";B
275  if B<=1 then goto 370
276  LOCATE 0,4
277  PRINT "現在"
278  gosub 470
279  LOCATE 0,5
280  INPUT "掛け金を入れてください。";K
285  if K<=0 then goto 279
286  if K>C then goto 279
290  A=FIX(RND*B)+1
294  LOCATE 0,7
295  INPUT "数を予想してください。";X
296  if X>B then goto 297 else goto 300
297  PRINT "倍率以下で1以上の数にして下さい。"
298  goto 295
300  if A=X then goto 450
301  if A<>X then goto 460
303  if C=0 then goto 360
350  goto 264
360  PRINT "ゲームオーバー...読み込み中..."
361  FOR I=1 TO 6000 '表示時間 約3秒
362  NEXT I
363  goto 50
369  'ルーレット サブ プログラム
370  CLS 3
380  goto 265
390  COLOR 1,6,1,6,1
400  CLS 3
410  RETURN
411  D=1000  '最初の所持金
449  RETURN
450  C=C-K+(B*K)
455  goto 303
460  C=C-K
465  goto 303
470  LOCATE 4,4
480  PRINT ;C
490  LOCATE 11,4
500  PRINT "コイン有ります"
510  RETURN
520  CLS 3  '数当て メインプログラム
530  CONSOLE 0,25,0,1
540  CLS 3
555  gosub 660
550  PRINT "数当てを開始します。"
560  INPUT "1からどのくらいまでの数にしますか";B
565  goto 750
570  PRINT "コンピュータが作った数を当ててください。"
580  PRINT "間違ってれば、もっと多いかもっと少ないかをいいます。"
590  C=INT(RND*B)+1
600  N=1
610  INPUT "数は何でしょうか";K
615  if K<1 then goto 770
620  if C=K then goto 690
630  goto 800
650  '数当て サブ プログラム
660  COLOR 2,5,2,5,1
670  CLS 3
680  RETURN
690  PRINT " - - "
700  PRINT " @ @ "
710  PRINT "  O  "
730  if N<5 then PRINT "大当たり~" else PRINT "当たり"
731  PRINT "スコア";N;"手"
735  INPUT "まだやりますか?(Y/N)";X$
736  if X$="Y" then goto 520
737  if X$="N" then goto 900
738  if X$="y" then goto 520
739  if X$="n" then goto 900
741  goto 735
750  if INT(B)=B then 570 else goto 760
760  if B=1 then goto 780
770  PRINT "正の整数を入れてください。"
777  goto 560
780  PRINT "正の整数で、1以外の数値を入れてください。"
790  goto 560
800  PRINT "   / \"
810  PRINT "    @ @ "
820  PRINT "        "
830  PRINT "     ^  "
840  if C<K then goto 850 else 880
850  PRINT "もっと少ない"
860  N=N+1
870  goto 610
880  PRINT "もっと多い"
888  N=N+1
890  goto 610
900  PRINT "...読み込み中..."
910  FOR I=1 TO 6000
920  NEXT I
930  goto 50
940  '
[/code]
ちょっとコードを変更してActiveBasicに対応させたコード↓
[code]
#N88BASIC
Dim I,N,A,B,C,D,X$ As String,X,K
40  '初期設定
50  Cls 3
60  Color 0,7
70  Cls 3
Paint (0,0),7,7
90  Locate 0,0
100  Print "このプログラムはフリーです。"
103  Sleep(1000)
109  Cls 3
Paint (0,0),7,7
110  Print "どのゲームで遊びますか?"
120  Print "ルーレット=1,数当て=2,"
140  Input "どれ";N
150  if N=1 then goto 240
160  if N=2 then goto 520
170  if N=3 then goto 240 else goto 140
190  '*END SUB
191  Cls 3
Paint (0,0),7,7
200  END
240  Cls 3'ルーレット メイン プログラム
241  gosub 411
242  C=D
264  gosub 390
265  Locate 0,2
267  Print "ルーレットを開始します。"
269  Locate 0,3
270  Input "倍率を入れてください。";B
275  if B<=1 then goto 370
276  Locate 0,4
277  Print "現在"
278  gosub 470
279  Locate 0,5
280  Input "掛け金を入れてください。";K
285  if K<=0 then goto 279
286  if K>C then goto 279
290  A=Fix(Rnd()*B)+1
294  Locate 0,7
295  Input "数を予想してください。";X
296  if X>B then goto 297 else goto 300
297  Print "倍率以下で1以上の数にして下さい。"
298  goto 295
300  if A=X then goto 450
301  if A<>X then goto 460
303  if C=0 then goto 360
350  goto 264
360  Print "ゲームオーバー...読み込み中..."
361  Sleep(3000) '表示時間 約3秒
363  goto 50
369  'ルーレット サブ プログラム
370  Cls 3
380  goto 265
390  Color 1,6
400  Cls 3
Paint (0,0),6,6
410  return
411  D=1000  '最初の所持金
449  return
450  C=C-K+(B*K)
455  goto 303
460  C=C-K
465  goto 303
470  Locate 4,4
480  Print ;C
490  Locate 11,4
500  Print "コイン有ります"
510  return
520  Cls 3  '数当て メインプログラム
555  gosub 660
550  Print "数当てを開始します。"
560  Input "1からどのくらいまでの数にしますか";B
565  goto 750
570  Print "コンピュータが作った数を当ててください。"
580  Print "間違ってれば、もっと多いかもっと少ないかをいいます。"
590  C=Int(Rnd()*B)+1
600  N=1
610  Input "数は何でしょうか";K
615  if K<1 then goto 770
620  if C=K then goto 690
630  goto 800
650  '数当て サブ プログラム
660  Color 2,5
670  Cls 3
Paint (0,0),5,5
680  return
690  Print " - - "
700  Print " @ @ "
710  Print "  O  "
730  if N<5 then Print "大当たり~" else Print "当たり"
731  Print "スコア";N;"手"
735  Input "まだやりますか?(Y/N)";X$
736  if X$="Y" then goto 520
737  if X$="N" then goto 900
738  if X$="y" then goto 520
739  if X$="n" then goto 900
741  goto 735
750  if Int(B)=B then 570 else goto 760
760  if B=1 then goto 780
770  Print "正の整数を入れてください。"
777  goto 560
780  Print "正の整数で、1以外の数値を入れてください。"
790  goto 560
800  Print "   / \"
810  Print "    @ @ "
820  Print "        "
830  Print "     ^  "
840  if C<K then goto 850 else goto 880
850  Print "もっと少ない"
860  N=N+1
870  goto 610
880  Print "もっと多い"
888  N=N+1
890  goto 610
900  Print "...読み込み中..."
910  Sleep(3000)
930  goto 50
[/code]
しかし懐かしいですね、苦悩しながら一行一行[u]丁寧に[/u]コードを打っていってたあの時代が。
でもビギナーがいきなりメモリ操作してOS落とすのはどうかと。>>たけぽい
あ、滅茶苦茶長い長文失礼。