Ce qui m'étonne dans l'histoire, c'est qu'un villageois ne mange pas...
Cheche a écrit:Je trouve ta question très marrante car souvent les jeux permettent de se passionner aux maths, à l'informatique, ...
Qu'as-tu esssayé de faire ? Où en es-tu ?
emcee a écrit:bonjour
si par exemple tu décides de créer un villageois dès que tu peux, tu démarres donc avec 7 v et 0 nourriture.
La fonction que tu évoques ressembles probablement à une fonction en escalier pas simple à décrire en une formule succincte.
nodjim a écrit:Dans ce cas, ça ne sert à rien de conserver 1 seule unité de nourriture à l'avance, on achète un villageois dès qu'on a 50 unités de nourriture.
fatal_error a écrit:slt,
alors soit f(t,n) la fonction qui associe à t (le temps) et n (le nombre de villageois) le nombre d'unités de nourriture.
on peut écrire f(t,1) = kt +200
avec k=10/22
de même f(t,2)=2kt+200 et f(t,3)=3kt+200
AOE
Enable tooltip
function f_inv(u, y, sOffset, K){
return (y + K.k*sOffset - (K.C-(u-K.nbPeons)*K.pricePeon))/(K.k*u);
}
function f(u, t, sOffset, K){
return u*K.k*t-K.k*sOffset + K.C-(u-K.nbPeons)*K.pricePeon;
}
function getData(n, k, C, nbPeons, goal, pricePeon, duration){
var K={
nbPeons:nbPeons,
C:C,
pricePeon:pricePeon,
duration:duration,
k:k
};
var data=[];
for(var u=1;utIntersect){tIntersect=tEffectiveOld;}
var effectiveIntersect=tIntersect+duration;
var goalu=f_inv(u, goal, sOffsetOld+effectiveIntersect, K);
data.push({data:[
[tIntersect, f(u-1, tIntersect, sOffsetOld, K)-50],
[effectiveIntersect, f(u, effectiveIntersect, sOffsetOld+effectiveIntersect, K)],
[goalu, goal]]
, label:u+'Paysans'
});
if(goalu>goaluOld){
//break;
}
sOffsetOld+=effectiveIntersect;
tEffectiveOld=effectiveIntersect;
goaluOld=goalu;
}
return data;
}
$(function () {
var data=getData(12, 10/22, 200,3, 500,50,16);
var plot = $.plot($("#placeholder"),
data, {
series: {
lines: { show: true },
points: { show: true }
},
grid: { hoverable: true, clickable: true },
yaxis: { min: 0, max: 520},
xaxis: { min: 0, max: 250}
});
function showTooltip(x, y, contents) {
$('' + contents + '').css( {
position: 'absolute',
display: 'none',
top: y + 5,
left: x + 5,
border: '1px solid #fdd',
padding: '2px',
'background-color': '#fee',
opacity: 0.80
}).appendTo("body").fadeIn(200);
}
var previousPoint = null;
$("#placeholder").bind("plothover", function (event, pos, item) {
if ($("#enableTooltip:checked").length > 0) {
if (item) {
if (previousPoint != item.dataIndex) {
previousPoint = item.dataIndex;
$("#tooltip").remove();
var x = item.datapoint[0].toFixed(2),
y = item.datapoint[1].toFixed(2);
showTooltip(item.pageX, item.pageY,
item.series.label + " of " + x + " = " + y);
}
}
else {
$("#tooltip").remove();
previousPoint = null;
}
}
});
$("#placeholder").bind("plotclick", function (event, pos, item) {
if (item) {
$("#clickdata").text(" - click point " + item.dataIndex + " in " + item.series.label);
plot.highlight(item.series, item.datapoint);
}
});
});
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 35 invités
Tu pars déja ?
Identification
Pas encore inscrit ?
Ou identifiez-vous :