むるおか君のPythonパチンコシミュレーション

Pythonを使ってパチンコの新台解析やってます。たまに自分が処理したい作業のGUIも作ったり

CR真花の慶次2、漆黒、P花の慶次蓮のPythonによる連荘シミュレーション

CR真花の慶次2漆黒しみゅれーしょん


import random
import statistics 
import collections
import matplotlib.pyplot as plt
import seaborn as sns


#花の慶次漆黒の連荘の関数定義
def renchan(kakuhen):
    dedama = 840
    ren =  1
    suru = 0
#    kakuhen =  0
    jitan = 0
    while  suru  < 1:
        #転落抽選
        tyusen = random.random()
        jitan  +=  1
        #転落してないとき
        if  kakuhen  ==  0:
            if tyusen <= (1/270.8):
                kakuhen  +=  1
                #既に時短100消化済み
                if  jitan  >=  104:
                    suru  +=  1
            else:
                tyusen2  =  random.random()
                if  tyusen2  <=  (1/145.31):
                    ren  +=  1
                    dedama  +=  2240
                    kakuhen  =  0
                    jitan  =  0
        #既に転落してかつ時短100回消化してない
        else:
            #引き戻し抽選
            if  jitan  >=  104:
                suru  +=  1
            else:
                tyusen3 =  random.random()
                if  tyusen3  <=  (1/319.68):
                    ren  +=  1
                    dedama  +=  2240
                    kakuhen  =  0
                    jitan  =  0
#    print ("ren=",ren)          
    return  ren,dedama
"""ここからラッシュ評価"""
#連荘性能の評価
#ラッシュ突入回数
sikou  =  100000
#連荘回数
ren1 = []
#ラッシュの出玉数
dedama1 = []
for  sim  in  range(1,sikou+1):
#初当たりの振り分け処理
    furiwake1  =  random.randint(1,100)
    if  furiwake1 >= 1  and  furiwake1  <= 45:
        ren,dedama = renchan(1)
    else:
        ren,dedama  =  renchan(0)
    dedama1.append(dedama)
    ren1.append(ren)
#連荘平均数
m1 = statistics.mean(ren1)
m2 = statistics.mean(dedama1)
#連荘と出玉の整理
ren1.sort() 
dedama1.sort() 
print ("連荘数=",ren1)
#print ("出玉数=",dedama1)
print('連荘平均: {0:.2f}'.format(m1))
print('出玉平均: {0:.1f}'.format(m2))

ren_bunpu = collections.Counter(ren1)
dedama_bunpu = collections.Counter(dedama1)
#print(ren_bunpu)
#出玉の円グラフ作表用定義
x1 = sum( x1 <=  1000 for x1 in dedama1)
x2 = sum(  1000 < x2 <=  5000 for x2 in dedama1) 
x3 = sum(  5000 < x3 <=  10000 for x3 in dedama1)
x4 = sum(  10000 < x4  for x4 in dedama1) 
Xgraph = ["{0:.1f}".format(x1/sikou*100),"{0:.1f}".format(x2/sikou*100),
          "{0:.1f}".format(x3/sikou*100),"{0:.1f}".format(x4/sikou*100)]
label = ["tan","ika","manti","manpatu"]
colors2 = ["0.3", "0.5", "0.7", "0.9", "1.1"]
plt.pie(Xgraph, labels=label, counterclock=False, startangle=90, colors=colors2,autopct="%1.1f%%")
plt.axis('equal')


d = list(ren_bunpu.keys())
e = list(ren_bunpu.values())
sns.set()
sns.set_style("darkgrid", {'grid.linestyle': '--'})
sns.set_context("paper", 1.0, {"lines.linewidth": 1})
sns.set_palette("winter_r", 2, 1)
sns.set('talk', 'darkgrid', 'dark', font_scale=1.0,
        rc={"lines.linewidth": 10, 'grid.linestyle': '--'})
fig, ax = plt.subplots(figsize = (10,5))
ax.set(xlabel ='ren', ylabel='occcurs', xlim=(0,30), ylim=(0,1000))
ax.bar(d,e)
plt.show()

CR真花の慶次2しみゅれーしょん

import random
import statistics 
import collections
import matplotlib.pyplot as plt
import seaborn as sns


#花の慶次2の連荘の関数定義
def renchan(kakuhen):
    dedama = 720
    ren =  1
    suru = 0
#    kakuhen =  0
    jitan = 0
    while  suru  < 1:
        #転落抽選
        tyusen = random.random()
        jitan  +=  1
        #転落してないとき
        if  kakuhen  ==  0:
            if tyusen <= (1/270.8):
                kakuhen  +=  1
                #既に時短100消化済み
                if  jitan  >=  104:
                    suru  +=  1
            else:
                tyusen2  =  random.random()
                if  tyusen2  <=  (1/145.31):
                    ren  +=  1
                    dedama  +=  1910
                    kakuhen  =  0
                    jitan  =  0
        #既に転落してかつ時短100回消化してない
        else:
            #引き戻し抽選
            if  jitan  >=  104:
                suru  +=  1
            else:
                tyusen3 =  random.random()
                if  tyusen3  <=  (1/319.68):
                    ren  +=  1
                    dedama  +=  1910
                    kakuhen  =  0
                    jitan  =  0
#    print ("ren=",ren)          
    return  ren,dedama
"""ここからラッシュ評価"""
#連荘性能の評価
#ラッシュ突入回数
sikou  =  100000
#連荘回数
ren1 = []
#ラッシュの出玉数
dedama1 = []
for  sim  in  range(1,sikou+1):
#初当たりの振り分け処理
    furiwake1  =  random.randint(1,100)
    if  furiwake1 >= 1  and  furiwake1  <= 30:
        ren,dedama = renchan(1)
    else:
        ren,dedama  =  renchan(0)
    dedama1.append(dedama)
    ren1.append(ren)
#連荘平均数
m1 = statistics.mean(ren1)
m2 = statistics.mean(dedama1)
#連荘と出玉の整理
ren1.sort() 
dedama1.sort() 
print ("連荘数=",ren1)
#print ("出玉数=",dedama1)
print('連荘平均: {0:.2f}'.format(m1))
print('出玉平均: {0:.1f}'.format(m2))

ren_bunpu = collections.Counter(ren1)
dedama_bunpu = collections.Counter(dedama1)
#print(ren_bunpu)
#出玉の円グラフ作表用定義
x1 = sum( x1 <=  1000 for x1 in dedama1)
x2 = sum(  1000 < x2 <=  5000 for x2 in dedama1) 
x3 = sum(  5000 < x3 <=  10000 for x3 in dedama1)
x4 = sum(  10000 < x4  for x4 in dedama1) 
Xgraph = ["{0:.1f}".format(x1/sikou*100),"{0:.1f}".format(x2/sikou*100),
          "{0:.1f}".format(x3/sikou*100),"{0:.1f}".format(x4/sikou*100)]
label = ["tan","ika","manti","manpatu"]
colors2 = ["0.3", "0.5", "0.7", "0.9", "1.1"]
plt.pie(Xgraph, labels=label, counterclock=False, startangle=90, colors=colors2,autopct="%1.1f%%")
plt.axis('equal')


d = list(ren_bunpu.keys())
e = list(ren_bunpu.values())
sns.set()
sns.set_style("darkgrid", {'grid.linestyle': '--'})
sns.set_context("paper", 1.0, {"lines.linewidth": 1})
sns.set_palette("winter_r", 2, 1)
sns.set('talk', 'darkgrid', 'dark', font_scale=1.0,
        rc={"lines.linewidth": 10, 'grid.linestyle': '--'})
fig, ax = plt.subplots(figsize = (10,5))
ax.set(xlabel ='ren', ylabel='occcurs', xlim=(0,30), ylim=(0,1000))
ax.bar(d,e)
plt.show()

 

 

P花の慶次蓮連荘しみゅれーしょん


import random
import statistics 
import collections
import matplotlib.pyplot as plt
import seaborn as sns

#花の慶次蓮 ラウンド振り分け定義
def furi():
    furir = random.randint(1,100)
    furideda =  0
    if  furir  >=  1  and  furir  <= 70:
        furideda +=  1400
    elif furir  == 71:
        furideda +=  1400
    elif furir  == 72:
        furideda  += 1120
    elif furir  == 73:
        furideda  += 840
    elif furir  >=  74  and  furir  <=  79:
        furideda  += 700
    else:
        furideda  += 560
    return  furideda
    
    
#花の慶次蓮の連荘の関数定義
def renchan(kakuhen):
    dedama = 560
    ren =  1
    suru = 0
#    kakuhen =  0
    jitan = 0
    while  suru  < 1:
        #転落抽選
        tyusen = random.random()
        jitan  +=  1
        #転落してないとき
        if  kakuhen  ==  0:
            if tyusen <= (1/520.12):
                kakuhen  +=  1
                #既に時短100消化済み
                if  jitan  >=  104:
                    suru  +=  1
            else:
                tyusen2  =  random.random()
                if  tyusen2  <=  (1/129.77):
                    ren  +=  1
                    dedama  +=  furi()
                    kakuhen  =  0
                    jitan  =  0
        #既に転落してかつ時短100回消化してない
        else:
            #引き戻し抽選
            if  jitan  >=  104:
                suru  +=  1
            else:
                tyusen3 =  random.random()
                if  tyusen3  <=  (1/319.68):
                    ren  +=  1
                    dedama  +=  furi()
                    kakuhen  =  0
                    jitan  =  0
#    print ("ren=",ren)          
    return  ren,dedama
"""ここからラッシュ評価"""
#連荘性能の評価
#ラッシュ突入回数
sikou  =  100000
#連荘回数
ren1 = []
#ラッシュの出玉数
dedama1 = []
for  sim  in  range(1,sikou+1):
#初当たりの振り分け処理
    furiwake1  =  random.randint(1,100)
    if  furiwake1 >= 1  and  furiwake1  <= 50:
        ren,dedama = renchan(1)
    else:
        ren,dedama  =  renchan(0)
    dedama1.append(dedama)
    ren1.append(ren)
#連荘平均数
m1 = statistics.mean(ren1)
m2 = statistics.mean(dedama1)
#連荘と出玉の整理
ren1.sort() 
dedama1.sort() 
print ("連荘数=",ren1)
#print ("出玉数=",dedama1)
print('連荘平均: {0:.2f}'.format(m1))
print('出玉平均: {0:.1f}'.format(m2))

ren_bunpu = collections.Counter(ren1)
dedama_bunpu = collections.Counter(dedama1)
#print(ren_bunpu)
#出玉の円グラフ作表用定義
x1 = sum( x1 <=  1000 for x1 in dedama1)
x2 = sum(  1000 < x2 <=  5000 for x2 in dedama1) 
x3 = sum(  5000 < x3 <=  10000 for x3 in dedama1)
x4 = sum(  10000 < x4  for x4 in dedama1) 
Xgraph = ["{0:.1f}".format(x1/sikou*100),"{0:.1f}".format(x2/sikou*100),
          "{0:.1f}".format(x3/sikou*100),"{0:.1f}".format(x4/sikou*100)]
label = ["tan","ika","manti","manpatu"]
colors2 = ["0.3", "0.5", "0.7", "0.9", "1.1"]
plt.pie(Xgraph, labels=label, counterclock=False, startangle=90, colors=colors2,autopct="%1.1f%%")
plt.axis('equal')


d = list(ren_bunpu.keys())
e = list(ren_bunpu.values())
sns.set()
sns.set_style("darkgrid", {'grid.linestyle': '--'})
sns.set_context("paper", 1.0, {"lines.linewidth": 1})
sns.set_palette("winter_r", 2, 1)
sns.set('talk', 'darkgrid', 'dark', font_scale=1.0,
        rc={"lines.linewidth": 10, 'grid.linestyle': '--'})
fig, ax = plt.subplots(figsize = (10,5))
ax.set(xlabel ='ren', ylabel='occcurs', xlim=(0,80), ylim=(0,1000))
ax.bar(d,e)
plt.show()