ベストプレープロ野球…エクセルVBAでツール作成⑥投手作成

ベスプレ画面 ゲーム

  

 

この記事は

一生遊べる野球ゲーム 【ベストプレープロ野球】

をエクセルVBAでオリジナルリーグを作成するツールを作り、自分だけの世界を楽しんでもらえる参考になればと思い書いております。

すでに自作ツールで運用している方にも良い刺激になればと思っております。

 

この記事で紹介する ツールのダウンロードはこちらから

前 回 まで

・野手シートと投手シートの選手名を自動で作成しました。

・リーグ運営の設定表作成(選手の能力・成長 決定)

・野手の初期パラメータ作成(16歳)

・野手のプロ入り後パラメータ作成(現在)

 

⇓出来上がったプログラム

・メインモジュール  プログラム Test・
・共通モジュール  プログラム Saikoro・Get_Name・Get_SeityoType・Get_Nouryoku・NouryokuUp・NouryokuDown・年齢加算
・野手編モジュール  プログラム 野手作成・Get_Daseki・Get_Type・Get_Sinrai・Get_KillLeft・Get_Daritu・野手成長

 

前回で野手の最終能力を決定、野手の作成は完了しましたので

 

今回から投手の作成に入っていきます。

野手と同じく、16歳時点のパラメータを作っていきます。

 

まずは投手モジュールを標準モジュールに追加(挿入)します。

投手モジュール

【投手シート】

野手シートと同じ構成の考え方です。↓

 

名前の行…ベスプレで実際に使う各パラメータ

 

名前の下の行…このツール内での各能力指数(前回の設定表を参照して、ベスプレで実際に使う各パラメータを割り出す為の指数)

 

さらにその下の行…その選手独自の各能力の成長補正値です。(能力Upのみ確率に加算します。)

成長確率が、

9で9-5=4%アップします。ダウン確率が5-9=4%ダウンします。

1で1-5=4%ダウンします。ダウン確率が5-1=4%アップします。

 

今回作成するプログラムは  ・投手作成 ・Get_Touho ・Get_PType ・Get_Kyusoku ・Get_Kaifuku の5つです。

 

↓のプログラムを投手編ジュールに作成します。

‘Newleague True:新規球団作成 False:2年目以降の新人・外人作成
Public Sub 投手作成(SName As String, Optional Newleague As Boolean = True)

Dim i As Integer ‘ループ回数
Dim j As Byte ‘投手の作成開始:新規=0 2年目以降=36
Dim y As Byte ‘野手数
Dim Low As Byte ‘ワークシートの行
Dim Col As Byte ‘ワークシートの列
Dim PStyle As String ‘投法
Dim Hosei(2) As Byte ‘成長タイプにおける初期補正値0:(心),1:(技),2:(体)
Dim Point As Byte ‘一時格納変数(成長の補正ポイント:特徴のポイント)
Dim Jinsyu As String ‘人種
Dim Bk_Sisu(1) As Byte ‘能力値決定時一時保管用

Worksheets(SName).Activate

‘選手名を作成
‘選手名を作成
If Newleague = True Then
Call Get_Name(SName, True, True)
j = 0
Else
Call Get_Name(SName, False, True)
j = 36
End If

For y = j To 45

‘変数初期設定
Low = 3
Low = Low + (y * 3) ‘選手数分だけ行をずらす。
Col = 3
i = 0
Point = 0

‘名前部分を選択
Cells(Low – 1, 1).Select
Selection.Font.ColorIndex = 0

‘外人対策
If Newleague = False And Cells(Low, 2) > 1 Then
Else

‘今季年齢決定
Select Case y
Case Is <= 35 ‘既存選手
Cells(Low, Col – 1) = 18 + (Saikoro(17)) + 1
Case Is >= 41 ‘新人
Cells(Low, Col – 1) = 18 + ((Saikoro(4) * 2) – 2) + 1
Case Else ‘外人
Cells(Low, Col – 1) = 25 + (Saikoro(9)) + 1
End Select

‘初期年齢設定
Cells(Low – 1, Col – 1) = 16

‘基本能力値決定(項目分だけ作成):i=0心:i=12回復
For i = 0 To 12
‘球速から回復までは(1~128
‘球速と切れと球質とスタミナと回復は2回の内どちらか良い方を選択
If i = 5 Or i = 6 Or i = 9 Or i = 11 Or i = 12 Then
Bk_Sisu(0) = Saikoro(128)
Bk_Sisu(1) = Saikoro(128)
If Bk_Sisu(0) > Bk_Sisu(1) Then
Cells(Low, Col + i) = Bk_Sisu(0)
Else
Cells(Low, Col + i) = Bk_Sisu(1)
End If
ElseIf i = 3 Or i = 4 Then
Cells(Low, Col + i) = Saikoro(100)
Else
Cells(Low, Col + i) = Saikoro(128)
End If

Next i

‘人種判定:行により決定:外人は外人枠から移動しない為
If y > 36 And y < 42 Then
Jinsyu = “外人”
Else
Jinsyu = “日本人”
End If

‘成長タイプ確定
For i = 0 To 2
Cells(Low – 1, Col + i) = Get_SeityoType(Cells(Low, Col + i).Value, i, Point, Jinsyu)
‘成長タイプにおける初期補正値獲得
Hosei(i) = Point
Next i

‘変数の値変更
Col = Col + 3
‘投法確定
Cells(Low – 1, Col) = Get_Touho(Cells(Low, Col))
PStyle = Right(Cells(Low – 1, Col), 1)

‘変数の値変更
Col = Col + 1
‘タイプ確定
Cells(Low – 1, Col) = Get_PType(Cells(Low, Col))

‘変数の値変更
Col = Col + 1
‘球速確定
Cells(Low – 1, Col) = Get_Kyusoku(Cells(Low, Col), PStyle)

‘変数の値変更
Col = Col + 1
‘切れ確定
Cells(Low, Col) = (Cells(Low, Col) + Hosei(1))
Cells(Low – 1, Col) = Get_Nouryoku(Cells(Low, Col))

‘変数の値変更
Col = Col + 1
‘制球確定
Cells(Low, Col) = (Cells(Low, Col) + Hosei(1))
Cells(Low – 1, Col) = Get_Nouryoku(Cells(Low, Col))

‘変数の値変更
Col = Col + 1
‘安定確定
Cells(Low, Col) = (Cells(Low, Col) + Hosei(0))
Cells(Low – 1, Col) = Get_Nouryoku(Cells(Low, Col))

‘変数の値変更
Col = Col + 1
‘球質確定
Cells(Low, Col) = (Cells(Low, Col) + Hosei(2))
Cells(Low – 1, Col) = Get_Nouryoku(Cells(Low, Col))

‘変数の値変更
Col = Col + 1
‘技術確定
Cells(Low, Col) = (Cells(Low, Col) + Hosei(0))
Cells(Low – 1, Col) = Get_Nouryoku(Cells(Low, Col))

‘変数の値変更
Col = Col + 1
‘体力確定
Cells(Low, Col) = (Cells(Low, Col) + Hosei(2))
Cells(Low – 1, Col) = Get_Nouryoku(Cells(Low, Col))

‘変数の値変更
Col = Col + 1
‘回復確定
Cells(Low, Col) = (Cells(Low, Col) + Hosei(1))
Cells(Low – 1, Col) = Get_Kaifuku(Cells(Low, Col))

End If
Next y

End Sub

Public Function Get_Touho(Atai As Byte) As String

Select Case Atai
Case Is <= Sheets(“設定表”).Range(“AC3”)
Get_Touho = Sheets(“設定表”).Range(“AD3”)
Case Is <= Sheets(“設定表”).Range(“AC4”)
Get_Touho = Sheets(“設定表”).Range(“AD4”)
Case Is <= Sheets(“設定表”).Range(“AC5”)
Get_Touho = Sheets(“設定表”).Range(“AD5”)
Case Is <= Sheets(“設定表”).Range(“AC6”)
Get_Touho = Sheets(“設定表”).Range(“AD6”)
Case Is <= Sheets(“設定表”).Range(“AC7”)
Get_Touho = Sheets(“設定表”).Range(“AD7”)
Case Else
Get_Touho = Sheets(“設定表”).Range(“AD8”)
End Select

End Function

Public Function Get_PType(Atai As Byte) As String

Select Case Atai
Case Is <= Sheets(“設定表”).Range(“AC11”)
Get_PType = Sheets(“設定表”).Range(“AD11”)
Case Is <= Sheets(“設定表”).Range(“AC12”)
Get_PType = Sheets(“設定表”).Range(“AD12”)
Case Is <= Sheets(“設定表”).Range(“AC13”)
Get_PType = Sheets(“設定表”).Range(“AD13”)
Case Is <= Sheets(“設定表”).Range(“AC14”)
Get_PType = Sheets(“設定表”).Range(“AD14”)
Case Is <= Sheets(“設定表”).Range(“AC15”)
Get_PType = Sheets(“設定表”).Range(“AD15”)
Case Else
Get_PType = Sheets(“設定表”).Range(“AD16”)
End Select

End Function

Public Function Get_Kyusoku(Atai As Integer, PStyle As String) As Integer

Get_Kyusoku = Int(Atai / 10) + 128

If PStyle = “o” Then
Get_Kyusoku = Get_Kyusoku + 2
ElseIf PStyle = “u” Then
Get_Kyusoku = Get_Kyusoku – 2
End If

If Get_Kyusoku > 158 Then
Get_Kyusoku = 158
End If

If Get_Kyusoku < 128 Then
Get_Kyusoku = 128
End If

End Function

Public Function Get_Kaifuku(Atai As Integer)

Get_Kaifuku = Int(Atai / 15) + 15

End Function

↑ここまでです。

 

・ここでは、選手の成長タイプや能力指数を書き込んでます。

また球速や回復などを計算式で計算しています。(球速 MAX:158 MIN:128)

 

・設定表を参照して投法やタイプを決定しています。それに伴い能力の変動もあります。

※この変動は表では確認できませんが、各能力判定に内部的に処理してます。

 

プログラム を 動かして 確認する。

これで 初期の投手選手(成長前)のデータが出来上がりました。

 

開発画面、一番下のイミティエイト ウィンドウ に

野手作成(”T_投手”)

と打ち込んで ENTER キーを打ち込めば

投手④4初期能力入り

各パラメータの入ったシートが出来上がります。

 

【投手シート】

野手シートと同じ構成の考え方です。↓

 

名前の行…ベスプレで実際に使う各パラメータ

 

名前の下の行…このツール内での各能力指数(前回の設定表を参照して、ベスプレで実際に使う各パラメータを割り出す為の指数)

 

さらにその下の行…その選手独自の各能力の成長補正値です。(能力Upのみ確率に加算します。)

成長確率が、

9で9-5=4%アップします。ダウン確率が5-9=4%ダウンします。

1で1-5=4%ダウンします。ダウン確率が5-1=4%アップします。

 

⇐前の記事 【目次】 次の記事⇒

 

ベストプレープロ野球を知りたい方は

ベストプレープロ野球…自由度が最強で一生遊べる野球ゲーム

 

ベストプレープロ野球 ソフトのお求めは⇓の画像から(Win,GBA,PS2)

  

タイトルとURLをコピーしました