深緑の女魔術師の私的なブログ★彡

Welcome to my blog!

【スロット?】【Go言語?】Go言語で遊んでみた その1 設定判別ツールを焼き直してみた(てきとーなソース付)

2018/07/28
その他言語 0
深緑の女魔術師 Go言語
深緑の女魔術師です。

久しぶりに、
プログラミングっぽい記事でも上げる??



@Go言語(Golang)



ちらっと名前は聞いてたけど、
結果として触ったことなかった言語です。

Goってことで、
「Google」が作った開発言語みたいです。

ざっくりググった感じで、
すんごい人が作った言語な模様。

てきとーだね。


とりあえず、
2時間くらいしか触ってないけど、

ある程度知識がある人なら、
仕様書片手にすぐにプログラミングが可能かと。


いろいろ書くとボロがでるので、
そんな言語があるんだよ。

ってことで留めますね。



@設定判別ツールを作ってみた



すんごい前に私的に作った、
判別ツールを焼き直しただけです。

(元のロジックはほぼ変えてない)


これも結構前だけど、
日本のなでしこという言語で、
同じように判別ツールを焼き直したっけ?

【スロット?】【なでしこ?】なでしこで設定判別ツールを焼き直してみた その1 なでしこのコーティングって慣れると他言語より楽じゃない? - 独自調査

深緑の女魔術師です。宣言してから作ってなかったので作ってみた・・というわけで作ってみたレベルなので、端数調整等の問題は山積みです。計算方法等を最低限学んでレッツコーティング!いやー簡単です。まさかものの10分ぐらいで終わるとは・・・ほぼ使わないだろうけど、ピエロのBB確率の判別ツールになってます。以下実行結果1.BB回数を入力させる2.ゲーム数を入力させる3.判別結果を表示させる参考に以前Java...



判別ツールぐらいしか、
とっさに作るものが無いって言うのが本音ですが、

設定判別ツールって、
最低限な処理の集まりなので、
学習用のサンプルとしては悪くないんですよ。



作った判別ツールは、

・マイジャグ4のバケ回数より設定推測するツール

・サンプルは回転数3000G、バケ10を設定判別してる
(ブラウザでしか起動させてないので、
 推測値の手入力に対応してないので固定値となっている)

・適当に作ったので端数処理が適当
(判別精度はかなり低いです)

ってことで、
線より下がソースとなります。





/*--------------------------
名 称 GO言語で判別ツールを作ってみた?
作成者 深緑の女魔術師
作成日 2018/07/26
項番 更新日   更新内容
0001 2018/07/27 コメントを追記
--------------------------*/
package main

//-------------------------
//パッケージを読込
//-------------------------
import (
"fmt"
"strconv"
)

//-------------------------
// メインメソッド
//-------------------------
func main() {

//-----------------------
//変数
//-----------------------

//判別用データ
/*
回転数、判別入賞回数(バケ)を変更すれば、
それっぽく判別を行うことが可能
*/
//ゲーム数
var G_Cnt int = 3000
//判別入賞回数
var Flg_Cnt int = 10

//設定別の入賞確率を格納(配列)
Lot_Rt := []float64{0, 1 / 431.0, 1 / 364.0, 1 / 341.0, 1 / 293.0, 1 / 276.0, 1 / 241.0}

//設定別の発生確率を格納(配列)
W_Rt := []float64{0, 1, 1, 1, 1, 1, 1}

//その他変数
var Miss_Rt float64 = 0 //ハズレ確率ワーク
var Sum_Rt float64 = 0 //計算ワーク
var Out_Txt string = "" //出力用

//-----------------------
//メイン処理
//-----------------------

//設定1~6までループ
for Settei := 1; Settei < 7; Settei++ {

//ハズレ確率を算出する
//ハズレ確率=1-判別確率
Miss_Rt = 1 - Lot_Rt[Settei]

//ゲーム数分ループさせる
for Lp := 1; Lp < G_Cnt; Lp++ {

//-----------------
//確率計算式
//-----------------
// 確率 =
// 試行回数 combination 失敗回数 (組み合わせ)
// * (成功確率) ^ 成功回数
// * (失敗確率) ^ 失敗回数

//↓上記を自力で計算してる

if Lp <= Flg_Cnt {
//回転数が入賞回数以下ならば
//率=率÷回転数
//率=率×(入賞回数+1-回転数)
//率=率×判別確率
W_Rt[Settei] = W_Rt[Settei] / float64(Lp)
W_Rt[Settei] = W_Rt[Settei] * float64((Flg_Cnt + 1 - Lp))
W_Rt[Settei] = W_Rt[Settei] * Lot_Rt[Settei]

} else {
//違えば
//率=率×ハズレ確率
W_Rt[Settei] = W_Rt[Settei] * Miss_Rt

}

}
//ゲーム数ループここまで

//率合計算出
Sum_Rt += W_Rt[Settei]

}
//設定ループここまで


//-----------------------
//出力処理
//-----------------------

//判別要素を加工
Out_Txt += "設定推測データ・・・\n"
Out_Txt += "判別入賞回数は" + strconv.Itoa(Flg_Cnt) + "回" + "\n"
Out_Txt += "ゲーム数は" + strconv.Itoa(G_Cnt) + "G" + "\n\n"

//判別結果を加工
Out_Txt += "判別結果は・・・\n"

//設定1~6までループ
for Settei := 1; Settei < 7; Settei++ {
//設定XはY%です。
Out_Txt += "設定" + strconv.Itoa(Settei) + "は"
Out_Txt += strconv.FormatFloat(W_Rt[Settei]/Sum_Rt*100, 'f', 2, 64) + "%" + "\n"
}

//備考
Out_Txt += "\n"+"※端数処理適当なので合計しても100%にならいと思う・・・"

//結果を出力する
fmt.Println(Out_Txt)

}





package main は本当は変えられる??
(ブラウザのエディタだと怒られる)

どのみち冒頭の記述が特殊ですね。


んで、

上記は、
以下サイトのエディタにて作りました。

https://play.golang.org/

ブラウザ上で書けるって素敵ですね。


ちなみに上記ソースは、
以下リンクとして保存しました。

https://play.golang.org/p/zAsS8lsCyFf

WindowsPhoneのedgeで動いたので、
他のブラウザでもたぶん動く?

さくっと共有できたりと、
なかなか楽しいですね。


とりあえず、
Go言語を触った感じですが、
ブラウザ上でデバッグできて楽しいね。

っても、

ブラウザだけでなくて、
PCにちゃんとした開発キット入れれば、
exe形式のアプリとして出力も出来る模様。



だからどーした?

って記事でした。



以上。

関連記事
スポンサーサイト



最後まで読んでくれてありがとう!

一応ランキングに参加?

にほんブログ村 スロットブログ スロット日記へ

Comments 0

There are no comments yet.