c语言边界条件的设置,求解能不能用c或c++语言实现下面的约束条件
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Life Simulator
body {
margin: 10px;
}
#title {
text-align: center;
margin: auto;
position: absolute;
left: 0;
right: 0;
}
#myGraph {
height: 1000px;
margin-top: 50px;
width: 100%;
border: solid;
border-width: 1px;
}
Size:
Life Chance:
Refresh frequence:
Start Simulation
Stop Simulation
Continue Simulation
Save Data
let cp = document.getElementById('myGraph')
let ctx = cp.getContext('2d')
let width = document.getElementById('board').offsetWidth;
let height = document.getElementById('board').offsetHeight;
let size = document.getElementById('size')
let sizeVal = +size.value;
let rffVal = 500;
let arr = [];
let myInterval;
function initCanvas() {
let dpr = window.devicePixelRatio || 1;
let bsr = ctx.webkitBackingStorePixelRatio ||
ctx.mozBackingStorePixelRatio ||
ctx.msBackingStorePixelRatio ||
ctx.oBackingStorePixelRatio ||
ctx.backingStorePixelRatio || 1;
let PIXEL_RATIO = dpr / bsr;
cp.style.width = width + "px";
cp.style.height = height + "px";
cp.width = width * PIXEL_RATIO;
cp.height = height * PIXEL_RATIO;
ctx.scale(PIXEL_RATIO, PIXEL_RATIO)
}
function paint() {
ctx.save();
ctx.clearRect(0, 0, width, height);
let lineNum = arr.length;
let colNum = arr[0].length;
for (let i = 0; i < lineNum; i += 1) {
for (let j = 0; j < colNum; j += 1) {
if (arr[i][j] === 0) {
ctx.fillStyle = '#000000'
} else {
ctx.fillStyle = '#FFFFFF'
}
ctx.fillRect(j*sizeVal, i*sizeVal, sizeVal, sizeVal)
}
}
ctx.restore();
}
function initData(lifeChance) {
arr = [];
let sumVal = 0;
let aliveVal = 0;
for (let j = 0; j < height; j += sizeVal) {
let oneLine = [];
for (let i = 0; i < width; i += sizeVal) {
let a = Math.random();
if (a >= lifeChance) {
oneLine.push(0)
} else {
aliveVal += 1;
oneLine.push(1)
}
sumVal += 1;
}
arr.push(oneLine)
}
console.log((aliveVal/sumVal*100).toFixed(2) + '% chance to live!')
}
function updateData() {
let lineNum = arr.length;
let colNum = arr[0].length;
let newArr = []
for (let i = 0; i < lineNum; i += 1) {
let oneLine = [];
for (let j = 0; j < colNum; j += 1) {
let neighborLifeNum = 0;
for (let left = j-1; left <= j+1; left += 1) {
for (let top = i-1; top <= i+1; top += 1) {
if (left < 0 || top < 0 || left >= colNum || top >= lineNum) {
continue;
}
if (left === j && top === i) {
continue;
}
neighborLifeNum += arr[top][left];
}
}
if (neighborLifeNum === 3) {
oneLine.push(1)
} else if (neighborLifeNum === 2) {
oneLine.push(arr[i][j]);
} else {
oneLine.push(0)
}
}
newArr.push(oneLine)
}
arr = newArr;
}
function startSimulation() {
paint();
myInterval = setInterval(d=>{
updateData();
paint();
}, rffVal)
}
function saveData() {
var content = JSON.stringify(arr);
var blob = new Blob([content], {type: "text/plain;charset=utf-8"});
if(navigator.appVersion.toString().indexOf(".NET")>0){
window.navigator.msSaveBlob(blob, "lifeSimulationData.json");
}
else{
var a = document.createElement("a");
a.href =window.URL.createObjectURL(blob);
a.download = "lifeSimulationData.json";
a.click();
document.body.appendChild(a);
}
}
function loadData() {
var file = document.getElementById("uploadFile").files[0];
var reader = new FileReader();
reader.onload = function(event) {
let content = event.target.result;
arr = JSON.parse(content)
startSimulation();
}
reader.readAsText(file,"UTF-8");
}
function init() {
initCanvas();
document.getElementById('go').addEventListener('click', d=>{
sizeVal = +size.value;
let lifeChance = +document.getElementById('lfc').value * 0.01;
rffVal = +document.getElementById('rff').value*100;
initData(lifeChance);
startSimulation();
});
document.getElementById('stop').addEventListener('click', d=>{
console.log('stop')
clearInterval(myInterval)
});
document.getElementById('continue').addEventListener('click', d=>{
startSimulation();
});
document.getElementById('save').addEventListener('click', d=>{
saveData();
})
document.getElementById('uploadFile').onchange = function() {
loadData();
}
}
init();
c语言边界条件的设置,求解能不能用c或c++语言实现下面的约束条件相关推荐
- android代码打开语言和输入法设置,Android默认输入法勾选多国语言,并默许其中一种语言...
Android默认输入法勾选多国语言,并默认其中一种语言 1.首先在设备上调整输入法 设置>语言输入法>Android键盘(AOSP),在输入语言里勾选要选择的语言,比如选"英语 ...
- r语言plot函数设置y轴的范围及刻度_R语言之简单绘图
一:引例 plot()是R中为对象作图的一个泛型函数(它的输出将根据所绘制对象类型的不同而变化). 本例中,plot(x, y, type="b")将x置于横轴,将y置于纵轴,绘制 ...
- 线性规划编程求解C语言,C语言大作报告线性规划求解基科3字班.doc
C语言大作报告线性规划求解基科3字班.doc C语言大作业选题设计报告线性规划求解程序一. 概述运筹学(OR)作为强有力的数学工具,在管理科学.决策科学中起到了举足轻重的作用.当最优化的约束条件是线性 ...
- c语言填数字游戏求解过程解读,c语言编程--数字游戏.doc
c语言编程--数字游戏 计算机实习报告 面向过程编程 用C语言求解实际问题 一.问题描述 游戏类第15个任务--猜数字游戏 计算机从0-9这10个数字中任意选择n个不重复数字(n≤10)组成一个5位数 ...
- OpenFoam收缩扩张喷管(拉瓦尔喷管)边界条件的设置
简介 收缩扩张喷管(也成拉瓦尔喷管)广泛应用于火箭推进.将其流动特性定性描述如下: (1)当入口流量较小时,不出现雍塞,流速先增大后减小,全程为亚声速.出口压力即为大气压,入口压力由出口压力决定. ( ...
- R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:display only integer values on axis
R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:display only integer values on axis 目录 R语言ggplot2可视化设置轴坐标上的数值全部为整数实战:d
- R语言ggplot2可视化设置不同的图像主题(theme):使用各种不同的主题(theme)可视化数据、单的黑白主题theme_bw主题(theme)、默认的主题(theme)可视化数据
R语言ggplot2可视化设置不同的图像主题(theme):使用各种不同的主题(theme)可视化数据.单的黑白主题theme_bw主题(theme).默认的主题(theme)可视化数据 目录
- R语言应用uniroot函数求解方程的根(一元解):仿真数据(方程式可视化、并添加y=0的水平横线)、uniroot函数求解方程的根(并添加方程根对应的垂直竖线)
R语言应用uniroot函数求解方程的根(一元解):仿真数据(方程式可视化.并添加y=0的水平横线).uniroot函数求解方程的根(并添加方程根对应的垂直竖线) 目录
- R语言ggplot2可视化设置数据点的大小、设置数据点的颜色、设置数据点边缘线条的厚度(point border thickness)实战
R语言ggplot2可视化设置数据点的大小.设置数据点的颜色.设置数据点边缘线条的厚度(point border thickness)实战 目录
最新文章
- LoadRunner11录制脚本出现的问题
- qemu模拟Cortex-A57运行Linux4.5.1
- centos 打包某个目录_Linux目录基础,带你了解Linux神秘面纱
- 关于jetbrains系列产品2018.1.5以后的使用(crack)方法
- uwsgi 的app变量名称必须为application
- Ajax — 第四天
- CentOS7设置自定义开机启动,添加自定义系统服务
- 从服务器检索时出错dfdferh01_基于客户端-服务器的网络编程模型
- python中narc是什么意思_python中@是什么意思
- SQL Server 2016 SP1 标准版等同企业版?!
- python中的排序方法都有哪些_有没有办法在python中对列表进行排序,直到找到第一个排序的k元素?...
- python控制安捷伦频谱仪_安捷伦频谱仪使用说明
- 大学生 生活小技巧:利用插件(Tampermonkey )学习网课 | 查题
- Win7系统怎么强制格式化U盘
- win的反义词_133个英语单词反义词,小学生必须要掌握!为孩子收藏吧
- qduoj 分辣条2
- 【免费】Linux命令行与Shell脚本编程大全 第3版 PDF全本 21MB 百度网盘下载
- 上大学的四年---以此结束四年的时光
- 单烤FPU怎么操作 单烤FPU多少度可以稳定使用
- 计算机网络(第7版) - 第五章 运输层 - 习题
热门文章
- 未给员工足额缴纳公积金!董明珠曾豪言:每人一套房不需要公积金
- 3月3日发布!realme V25正式官宣:超大内存的国潮手机
- 罗永浩将重返高科技行业创业 将涉足AR/VR/MR领域
- 男子趁前女友熟睡翻开眼皮,刷脸转走15万!支付宝:几率很小
- 三天内出现多次晃动,华强北最高楼今日起已被封闭了
- 2020魔幻“商战”:抢公章、发黄图、半夜翻工厂...最烂的小说都不敢这么写
- 奥飞娱乐:贝肯熊和镇魂街盲盒产品计划于2021年下半年上市
- 提前为小米11让路?小米10高配版官网已缺货
- 2020年天猫双11官宣:分两波购买 比往年多3天
- 索尼收购挪威公司Nevion 进一步增强其业务组合