by konisi » 2007年11月24日(土) 08:56
ソースコードはやや見にくいですが、「入力するところなどで見ずらくなったりして遊びにくい」という症状はこちらでは出ませんでした。
バグがあったのと少し読みにくかったので暇つぶしにソースコードに手を加えました。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
dim kane As Long,kake As Long
dim com As Long,you As Long
dim kati As Long,make As Long
dim rank As String
#N88BASIC
Randomize'乱数の初期化はプログラムの最初で呼び出すだけでいい。
print "------------------------------------"
print "------じゃんけんゲーム V2.11+ ------"
print "------------------------------------"
Sleep(500)
print"シフトキーを押してください"
Do 'シフトキーで抜ける
if GetAsyncKeyState(16) or GetAsyncKeyState(31) Then Exit Do
Loop
kane = 30
Do
color 7
print ""
print "---------------------"
print "GAME",kati + make + 1
print ""
print "ポイント P ",kane
if (kane-1) and &H80000000 then
'if kane<=0 then
print ""
print "ゲームオーバー"
Sleep(3000)
End
End if
Do
kake = 0
input "BET = " ; kake
if kake <= 0 Then
print ""
print "0以下にしないでください"
Beep(1000,800)
Elseif (kane-kake) and &H80000000 then
'Elseif kake > kane then
print ""
print "掛けPが多すぎます"
Beep(1000,800)
Else
Exit Do
End if
Loop
kane = kane - kake
print "---------------------"
*te
com = Int(Rnd()*3)+1
print "じゃんけん・・・ グー(1) チョキ(2) パー(3)"
Do
you=Asc(Input$(1))-49
If you and &H80000000 then continue
If (you-3) and &H80000000 then you=you+1:Exit Do
Loop
print""
If you = 1 Then
print "グー"
ElseIf you = 2 Then
print "チョキ"
Else
print "パー"
End If
Sleep(500)
If com = 1 Then
print "相手はグーです"
ElseIf com = 2 Then
print "相手はチョキです"
Else
print "相手はパーです"
Endif
print""
Sleep(500)
If you = com Then
color 6
print "あいこです。"
color 7
print ""
goto *te
ElseIf com-you=1 or (com=1 and you=3) then
'ElseIf (com=2 and you=1) or (com=3 and you=2) or (com=1 and you=3) then
color 2
print "あなたの勝ちです"
kati = kati + 1
kake = kake * 2
Else
color 1
print "あなたの負けです"
make = make + 1
kake = 0
End If
color 7
Sleep(1000)
kane = kake + kane
Loop Until kati + make = 10
print""
Color 7
print"10ゲーム終了です"
Beep(5000,50)
Beep(5000,50)
print""
Sleep(500)
print "-----------------------------"
print "あなたの結果は P",kane
print kati,"勝",make,Ex"敗"
print "-----------------------------"
Sleep(500)
if kane >= 500 then
rank = "SSS"
Elseif kane >= 250 Then
rank = "SS"
Elseif kane >= 100 Then
rank = "S"
Elseif kane >= 75 Then
rank = "A"
Elseif kane >= 55 then
rank = "B"
Elseif kane >= 40 Then
rank = "C"
Elseif kane >= 30 Then
rank = "D"
Elseif kane >= 20 then
rank = "E"
Elseif kane >= 11 Then
rank = "F"
Else
rank = "G"
End If
print "RANK" ,rank
Sleep(-1)
バグの内容:賭け値に-10000等入れると所持金が上がる
ソースコードはやや見にくいですが、「入力するところなどで見ずらくなったりして遊びにくい」という症状はこちらでは出ませんでした。
バグがあったのと少し読みにくかったので暇つぶしにソースコードに手を加えました。[hide][code]dim kane As Long,kake As Long
dim com As Long,you As Long
dim kati As Long,make As Long
dim rank As String
#N88BASIC
Randomize'乱数の初期化はプログラムの最初で呼び出すだけでいい。
print "------------------------------------"
print "------じゃんけんゲーム V2.11+ ------"
print "------------------------------------"
Sleep(500)
print"シフトキーを押してください"
Do 'シフトキーで抜ける
if GetAsyncKeyState(16) or GetAsyncKeyState(31) Then Exit Do
Loop
kane = 30
Do
color 7
print ""
print "---------------------"
print "GAME",kati + make + 1
print ""
print "ポイント P ",kane
if (kane-1) and &H80000000 then
'if kane<=0 then
print ""
print "ゲームオーバー"
Sleep(3000)
End
End if
Do
kake = 0
input "BET = " ; kake
if kake <= 0 Then
print ""
print "0以下にしないでください"
Beep(1000,800)
Elseif (kane-kake) and &H80000000 then
'Elseif kake > kane then
print ""
print "掛けPが多すぎます"
Beep(1000,800)
Else
Exit Do
End if
Loop
kane = kane - kake
print "---------------------"
*te
com = Int(Rnd()*3)+1
print "じゃんけん・・・ グー(1) チョキ(2) パー(3)"
Do
you=Asc(Input$(1))-49
If you and &H80000000 then continue
If (you-3) and &H80000000 then you=you+1:Exit Do
Loop
print""
If you = 1 Then
print "グー"
ElseIf you = 2 Then
print "チョキ"
Else
print "パー"
End If
Sleep(500)
If com = 1 Then
print "相手はグーです"
ElseIf com = 2 Then
print "相手はチョキです"
Else
print "相手はパーです"
Endif
print""
Sleep(500)
If you = com Then
color 6
print "あいこです。"
color 7
print ""
goto *te
ElseIf com-you=1 or (com=1 and you=3) then
'ElseIf (com=2 and you=1) or (com=3 and you=2) or (com=1 and you=3) then
color 2
print "あなたの勝ちです"
kati = kati + 1
kake = kake * 2
Else
color 1
print "あなたの負けです"
make = make + 1
kake = 0
End If
color 7
Sleep(1000)
kane = kake + kane
Loop Until kati + make = 10
print""
Color 7
print"10ゲーム終了です"
Beep(5000,50)
Beep(5000,50)
print""
Sleep(500)
print "-----------------------------"
print "あなたの結果は P",kane
print kati,"勝",make,Ex"敗"
print "-----------------------------"
Sleep(500)
if kane >= 500 then
rank = "SSS"
Elseif kane >= 250 Then
rank = "SS"
Elseif kane >= 100 Then
rank = "S"
Elseif kane >= 75 Then
rank = "A"
Elseif kane >= 55 then
rank = "B"
Elseif kane >= 40 Then
rank = "C"
Elseif kane >= 30 Then
rank = "D"
Elseif kane >= 20 then
rank = "E"
Elseif kane >= 11 Then
rank = "F"
Else
rank = "G"
End If
print "RANK" ,rank
Sleep(-1)[/code][/hide]バグの内容:賭け値に-10000等入れると所持金が上がる