simulate without store
This commit is contained in:
@@ -33,7 +33,7 @@ const hasQualityIssue = ({
|
|||||||
return quality > qualityProbability / multiplicator
|
return quality > qualityProbability / multiplicator
|
||||||
}
|
}
|
||||||
|
|
||||||
export const newBoard = () => shuffleArray(initialFeatures)
|
export const newBacklog = () => shuffleArray(initialFeatures)
|
||||||
|
|
||||||
export const initBoard = (
|
export const initBoard = (
|
||||||
steps: FeatureStep[],
|
steps: FeatureStep[],
|
||||||
@@ -212,7 +212,10 @@ const getQualityProbability = (
|
|||||||
return probabilityOfGoodQuality
|
return probabilityOfGoodQuality
|
||||||
}
|
}
|
||||||
|
|
||||||
export const nextDay = (state: State, strategy: Strategy): State => {
|
export const nextDay = (
|
||||||
|
state: Omit<State, 'dashboards'>,
|
||||||
|
strategy: Strategy
|
||||||
|
): Omit<State, 'dashboards'> => {
|
||||||
state.meta.totalDays++
|
state.meta.totalDays++
|
||||||
state.meta.strategy[strategy]++
|
state.meta.strategy[strategy]++
|
||||||
|
|
||||||
@@ -268,7 +271,10 @@ export const meanQualityIssue = (features: Feature[]) => {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const simulate = (state: State, strategy: Strategy): State => {
|
export const simulate = (
|
||||||
|
state: Omit<State, 'dashboards'>,
|
||||||
|
strategy: Strategy
|
||||||
|
): Omit<State, 'dashboards'> => {
|
||||||
let i = 0
|
let i = 0
|
||||||
|
|
||||||
while (!isProjectFinished(state.features) && i++ < HARD_STOP) {
|
while (!isProjectFinished(state.features) && i++ < HARD_STOP) {
|
||||||
|
|||||||
@@ -35,9 +35,8 @@ export const useFeatureStore = defineStore('feature', {
|
|||||||
}),
|
}),
|
||||||
actions: {
|
actions: {
|
||||||
async initBoard() {
|
async initBoard() {
|
||||||
const newBoard = await instance.newBoard()
|
const newBacklog = await instance.newBacklog()
|
||||||
|
this.backlog = newBacklog
|
||||||
this.backlog = newBoard
|
|
||||||
this.steps = featureSteps
|
this.steps = featureSteps
|
||||||
this.features = await instance.initBoard(
|
this.features = await instance.initBoard(
|
||||||
clone(this.steps),
|
clone(this.steps),
|
||||||
@@ -57,9 +56,19 @@ export const useFeatureStore = defineStore('feature', {
|
|||||||
this.features = newState.features
|
this.features = newState.features
|
||||||
},
|
},
|
||||||
async simulate(strategy: Strategy) {
|
async simulate(strategy: Strategy) {
|
||||||
await this.initBoard()
|
const backlog = await instance.newBacklog()
|
||||||
|
const steps = featureSteps
|
||||||
|
const features = await instance.initBoard(steps, backlog)
|
||||||
|
|
||||||
const newState = await instance.simulate(clone(this.$state), strategy)
|
const newState = await instance.simulate(
|
||||||
|
{
|
||||||
|
backlog,
|
||||||
|
steps,
|
||||||
|
features,
|
||||||
|
meta: resetMeta()
|
||||||
|
},
|
||||||
|
strategy
|
||||||
|
)
|
||||||
|
|
||||||
const [worstFeature] = newState.features.sort((a, b) =>
|
const [worstFeature] = newState.features.sort((a, b) =>
|
||||||
a.qualityIssue > b.qualityIssue ? -1 : 1
|
a.qualityIssue > b.qualityIssue ? -1 : 1
|
||||||
@@ -78,7 +87,6 @@ export const useFeatureStore = defineStore('feature', {
|
|||||||
)[0][0]
|
)[0][0]
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
await this.initBoard()
|
|
||||||
},
|
},
|
||||||
clearDashboard() {
|
clearDashboard() {
|
||||||
this.dashboards = []
|
this.dashboards = []
|
||||||
|
|||||||
Reference in New Issue
Block a user