おしえてください

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
井上翔太
記事: 12
登録日時: 2005年10月22日(土) 13:17
お住まい: 京都市
連絡する:

おしえてください

#1 投稿記事 by 井上翔太 »

すいませんこのようなプログラム↓を作っているのですが、アクセス違反がおきて、デバックできません。このソフトは、将棋のゲームをN88BASICで作ろうと思ったものです。解決策があれば、返事のほうよろしくおねがいします。
ソース(大きくなってすみません)

コード: 全て選択

#include "ghj.idx"

#N88BASIC



Dim a As string
Dim b As string
Dim c As string
Dim d As string
Dim e As string
Dim f As string
Dim g As string
Dim h As string
Dim i As string
Dim j As string
Dim k As string
Dim l As string
Dim m As string
Dim n As string
Dim o As string
Dim p As string
Dim q As string
Dim r As string
Dim s As string
Dim t As string  
Dim u As string
Dim v As string
Dim w As string
Dim x As string
Dim y As string
Dim z As string
Dim aa As string
Dim ab As string
Dim ac As string
Dim ad As string
Dim ae As string
Dim af As string
Dim ag As string
Dim ah As string
Dim ai As string
Dim aj As string
Dim ak As string
Dim al As string
Dim am As string
Dim an As string
Dim ao As string
Dim ap As string
Dim aq As string
Dim ar As string
Dim at As string
Dim au As string
Dim av As string
Dim aw As string
Dim ax As string
Dim ay As string
Dim az As string
Dim ba As string
Dim bb As string
Dim bc As string
Dim bd As string
Dim be As string
Dim bf As string
Dim bg As string
Dim bh As string
Dim bi As string
Dim bj As string
Dim bk As string
Dim bl As string
Dim bm As string
Dim bn As string
Dim bo As string
Dim bp As string
Dim bq As string
Dim br As string
Dim bs As string
Dim bt As string
Dim bu As string
Dim bv As string
Dim bw As string
Dim bx As string
Dim by As string
Dim bz As string
Dim ca As string
Dim cb As string
Dim cc As string
Dim cd As string
Dim ce As string
Dim cf As string
Dim cg As string
Dim ch As string
Dim ci As string
Dim cj As string
Dim ck As string
Dim cl As string
Dim cm As string
Dim cn As string 
Dim co As string
Dim cp As string
Dim cq As string
Dim cr As string
Dim cs As string

'相手の駒
a="香"
b="桂"
c="銀"
d="金"
e="王"
f="金"
g="銀"
h="桂"
i="香"
k="飛"
q="角"
s="歩"
t="歩"
u="歩"
v="歩"
w="歩"
x="歩"
y="歩"
z="歩"
aa="歩"
'相手の「無」設定
j="○"
l="○"
m="○"
n="○"
o="○"
p="○"
r="○"
'共用陣地の 「無」設定
ab="○"
ac="○"
ad="○"
ae="○"
af="○"
ag="○"
ah="○"
ai="○"
aj="○"
ak="○"
al="○"
am="○"
an="○"
ao="○"
ap="○"
aq="○"
ar="○"
at="○"
au="○"
av="○"
aw="○"
ax="○"
ay="○"
az="○"
ba="○"
bb="○"
bc="○"
bd="○"
be="○"
bf="○"
bg="○"
bh="○"
bi="○"
bj="○"
'自分の駒
bk="歩"
bl="歩"
bm="歩"
bn="歩"
bo="歩"
bp="歩"
bq="歩"
br="歩"
bs="歩"
bu="角"
ca="飛"
cc="香"
cd="桂"
ce="銀"
cf="金"
cg="玉"
ch="金"
ci="銀"
cj="桂"
ck="香"
'自分の「無」設定
bt="○"
bv="○"
bw="○"
bx="○"
by="○"
bz="○"
cb="○"

'将棋盤 描画
'将棋盤の下は3にする
PRINT "     1     2     3     4     5     6     7     8     9" 
PRINT " ・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
PRINT "1・";a;"・";b;"・";c;"・";d;"・";e;"・";f;"・";g;"・";h;"・";i;"・"       
PRINT " ・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
PRINT "2・";j;"・";k;"・";l;"・";m;"・";n;"・";o;"・";p;"・";q;"・";r;"・"
PRINT " ・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
PRINT "3・";s;"・";t;"・";u;"・";v;"・";w;"・";x;"・";y;"・";z;"・";aa;"・"
PRINT " ・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
PRINT "4・";ab;"・";ac;"・";ad;"・";ae;"・";af;"・";ag;"・";ah;"・";ai;"・";aj;"・"
PRINT " ・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
PRINT "5・";ak;"・";al;"・";am;"・";an;"・";ao;"・";ap;"・";aq;"・";ar;"・";ba;"・"
PRINT " ・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
PRINT "6・";bb;"・";bc;"・";bd;"・";be;"・";bf;"・";bg;"・";bh;"・";bi;"・";bj;"・"
PRINT " ・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
PRINT "7・";bk;"・";bl;"・";bm;"・";bn;"・";bo;"・";bp;"・";bq;"・";br;"・";bs;"・"
PRINT " ・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
PRINT "8・";bt;"・";bu;"・";bv;"・";bw;"・";bx;"・";by;"・";bz;"・";ca;"・";cb;"・"
PRINT " ・・・・・・・・・・・・・・・・・・・・・・・・・・・・"
PRINT "9・";cc;"・";cd;"・";ce;"・";cf;"・";cg;"・";ch;"・";ci;"・";cj;"・";ck;"・"
PRINT " ・・・・・・・・・・・・・・・・・・・・・・・・・・・・" 
'将棋盤ここまで----------------------------------------------------------------------
INPUT "No." ,cl
select case cl
	case 7161 or 1716 or 7116 
		bb="歩"
		bk="○"
End Select
		
マティ
記事: 161
登録日時: 2005年8月23日(火) 00:15
お住まい: 沖縄県
連絡する:

#2 投稿記事 by マティ »

コード: 全て選択

select case cl
    case 7161 or 1716 or 7116 
        bb="歩"
        bk="○"
End Select
clは文字列で、比較対照は数値項目になっているのでエラーが発生するようです。
文字列で比較するには、項目を""で囲む必要があります。

コード: 全て選択

select case cl
    case "7161" or "1716" or "7116" 
        bb="歩"
        bk="○"
End Select
hira
記事: 203
登録日時: 2005年5月31日(火) 20:14
お住まい: 兵庫県
連絡する:

#3 投稿記事 by hira »

Caseで複数の条件を並べるときは、orではなくカンマで区切ってください。
※orでもエラーにはなりませんが正常に動作しません

コード: 全て選択

select case cl
    case "7161", "1716", "7116"
        bb="歩"
        bk="○"
End Select
Sinryow
記事: 141
登録日時: 2005年5月31日(火) 09:34
お住まい: 北海道
連絡する:

#4 投稿記事 by Sinryow »

井上さん

基本的なことですが,このように多数の同等なデータを扱う際は配列を使うようにすべきでしょう。
例えば

コード: 全て選択

' ループ用変数
Dim i As Long, j As Long

' 盤面情報
Dim board[ELM(9), ELM(9)] As String

' 盤面の初期化(略)


' 盤面の表示

Print "     1     2     3     4     5     6     7     8     9" 
Print " ・・・・・・・・・・・・・・・・・・・・・・・・・・・・" 
For i=0 To 8
    Print i+1;
    Print "・";
    For j=0 To 8
        Print board[j, i];
        Print "・";
    Next
    Print
Next
自分も,プログラムを始めたばかりで配列の存在を知らない時に,そういう無理矢理なプログラムを作っていました(汗)
' ============================================================
' Sinryow Game Home Page - http://www.sinryow.net/
' Sinryow ActiveBasic Center - http://ab.sinryow.net/
' ============================================================
返信する