1. 程式人生 > >(2)硬幣遊戲—— 代碼分析與改進

(2)硬幣遊戲—— 代碼分析與改進

res () 遊戲 xlabel lis plot time 運行 mage

1、將你的倉庫Game.git clone到本地, 運行Python 程序,截圖

技術分享

2、修改代碼

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import random
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import mlab
from matplotlib import rcParams


# 初始參數設置
Box_sum =500 # 箱子中剩余硬幣數量,初始值
People_Flag= random.randint(1,10) # flag 模擬人們取硬幣或放硬幣的概率 1~10
Threshold = 3.3 # 閾值,可調: 1~Threshold 為取硬幣,Threshold+1 ~10 為放硬幣
Max_TakeCoin=3 # 最多可取硬幣數量
Max_DonateCoin=1 # 最多可放硬幣數量

delata=0 # 取、放硬幣數量
Box_per_remain= [500] # 每次箱子中硬幣余額,list


# 算法模擬
for x in range(1,5000): # 循環次數表示參與人數
flag= random.randint(1,10) # flag 模擬人們取硬幣或放硬幣的概率
if flag > Threshold:
# 放硬幣
delta=random.randint(1,Max_DonateCoin)
delta=random.randint(1,delta) # 模擬了人們捐款可能性,有偏少的傾向
Box_sum =Box_sum + delta
Box_per_remain.append(Box_sum)
else:
# 取硬幣
delta=random.randint(1,Max_TakeCoin)
delta=random.randint(delta,Max_TakeCoin) # 模擬了人 取硬幣的可能性,偏多的傾向
if Box_sum < delta:
Box_sum =0 # 如果不夠取,則取光
else:
Box_sum =Box_sum - delta
Box_per_remain.append(Box_sum)

print(Box_per_remain)


# 繪圖區
fig = plt.figure()

## 1. 標題、X、Y 軸 label
plt.title(‘Subway testing‘)
plt.xlabel(‘Time‘)
plt.ylabel(‘Money remained‘)

x= np.arange(len(Box_per_remain))

## 2. data

plt.plot(x,Box_per_remain,color=‘r‘)
plt.bar(x,Box_per_remain,alpha=.5,color=‘g‘)

plt.show()

修改後的截圖如下:

技術分享

3、代碼修改地址

https://gitee.com/lunaonlyone/Game/blob/master/src/GameMain.py

(2)硬幣遊戲—— 代碼分析與改進