preset for 1D CA initial state
This commit is contained in:
@ -9,7 +9,7 @@
|
||||
</main>
|
||||
</template>
|
||||
<script>
|
||||
import { evolve2d, initialState1d, initialState2d, conwayRules, createBoard } from '../modules/automata.js'
|
||||
import { create1dState, create1dStateOneCell, create2dState, createBoard, conwayRules, evolve2d } from '../modules/automata.js'
|
||||
import { getRandomInt, sleep } from '../modules/common.js'
|
||||
import {mapGetters} from 'vuex'
|
||||
export default {
|
||||
@ -27,8 +27,19 @@ export default {
|
||||
drawing: 'isDrawing',
|
||||
canvasWidth: 'getCanvasWidth',
|
||||
canvasHeight: 'getCanvasHeight',
|
||||
refreshRate: 'getRefreshRate'
|
||||
})
|
||||
refreshRate: 'getRefreshRate',
|
||||
initial1dState: 'getInitial1dState'
|
||||
}),
|
||||
boardWidth: function() {
|
||||
return Math.floor(
|
||||
this.canvas.width /
|
||||
this.cellProperties.size)
|
||||
},
|
||||
boardHeight: function() {
|
||||
return Math.floor(
|
||||
this.canvas.height /
|
||||
this.cellProperties.size)
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.canvas = this.$refs['canvas']
|
||||
@ -56,24 +67,25 @@ export default {
|
||||
)
|
||||
})
|
||||
},
|
||||
compute1dInitialState() {
|
||||
if(this.initial1dState === "onecell")
|
||||
return create1dStateOneCell(this.boardWidth)
|
||||
return create1dState(this.boardWidth, getRandomInt, [0, 2])
|
||||
},
|
||||
async draw1d() {
|
||||
const initialState = initialState1d(
|
||||
Math.floor(this.canvas.width / this.cellProperties.size),
|
||||
getRandomInt,
|
||||
[0, 2],
|
||||
)
|
||||
const initialState = this.compute1dInitialState()
|
||||
const board = createBoard(
|
||||
initialState,
|
||||
this.rules,
|
||||
Math.floor(this.canvas.height / this.cellProperties.size)
|
||||
this.boardHeight
|
||||
)
|
||||
this.drawCanvas(board)
|
||||
},
|
||||
async draw2d() {
|
||||
if (this.drawing === 0) return
|
||||
const initialState = initialState2d(
|
||||
Math.floor(this.canvas.width / this.cellProperties.size),
|
||||
Math.floor(this.canvas.height / this.cellProperties.size),
|
||||
const initialState = create2dState(
|
||||
this.boardWidth,
|
||||
this.boardHeight,
|
||||
getRandomInt,
|
||||
[0, 2],
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user