Я пытаюсь выучить JavaScript с помощью немецкой книги Стефана Эльтера "Programmieren Lernen mit Javascript".
В столице у меня возникла проблема с написанием небольшой игры под названием "Хаммурапи".
Это довольно популярное старое моделирование, в котором вы являетесь правителем страны и должны управлять своим продовольственным хранилищем / населением / акрами, чтобы прокормить все свое население и позволить ему расти.
Я пыталсянапишите код, как я его вижу в коде.
Когда я открываю свой HTML-сайт, он показывает только пустой белый экран.
Вот код.
Кто-нибудь знает, что я сделал не так?
Извините за немецкие имена переменных.
Как я уже сказал, я скопировал это из книги.
<html>
<head>
<title>Hamumrabi</title>
<meta charset="UTF-8">
</head>
<body>
<script>
var jahr = 0; // year
var buerger = 100; // people
var korn = 6000; // Food
var land = 400; // land
var ende = false; //game over
var landPreis = 5; //price per land (acre)
var ernteProAcker; // harves per acre
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
function spieleEineRunde()
{
if(ende ==false)
{
jahr = jahr+1;
bestimmeErnteErfolg();
verarbeiteBefehle();
bestimmeLandPreis();
erstelleBericht();
pruefeEnde();
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
function bestimmeLandPreis()
{
landPreis = Math.round(Math.random()*10+0.5);
if(Math.random()>0.9)
{
landPreis = Math.round(Math.random()*15+0.5);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
function bestimmeErnteErfolg()
{
ernteProAcker = Math.round(Math.random() * 5 + Math.random()*5+0.5);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
function verarbeiteBefehle()
{
var eingabe = prompt("Erteilt Eure Befehle, hoher Herrscher", "Nahrung, Aussaat, Landhandel");
var befehle = eingabe.split(",");
var verteileKorn = parseInt(befehle[0]);
var saeheKorn = parseInt(befehle[1]);
var landKauf = parseInt(befehle[2]);
if (isNaN(verteileKorn) || verteileKorn < 0)
{
verteileKorn = 0;
}
if (isNaN(saeheKorn) || saeheKorn < 0)
{
saeheKorn = 0;
}
if (isNaN(landKauf))
{
landkauf = 0;
}
bevoelkerung(verteileKorn);
aussaat(saeheKorn);
handel(landKauf);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
function bevoelkerung(nahrung)
{
if(nahrung>korn)
{
nahrung = korn;
}
korn = korn - nahrung;
var ausreichendNahrung = Math.round(nahrung/20) - buerger;
var neueBuerger = 0;
if (ausreichendNahrung >0)
{
neueBuerger = ausreichendNahrung /2;
}
var verstorbeneBuerger = 0;
if (ausreichendNahrung<0)
{
verstorbeneBuerger = -ausreichendNahrung;
}
buerger = Math.round(buerger+neueBuerger-verstorbeneBuerger);
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
function aussaat(saat)
{
var geerntetesKorn;
if (saat>korn)
{
saat = korn;
}
korn = korn - saat;
var moeglicheSaat = parseInt(saat/2);
if(moeglicheSaat>buerger*10)
{
moeglicheSaat=buerger*10;
}
if(moeglicheSaat>land)
{
moeglicheSaat=land;
}
geerntetesKorn = ernteProAcker*moeglicheSaat;
korn = korn + geerntetesKorn;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
function handel(kauf)
{
if(kauf<0)
{
var verkauf = Math.abs(kauf);
if(kauf>land)
{
return;
}
land = land - verkauf;
korn = korn + verkauf * landPreis;
}
//KAUFE LAND/////////////////////////////////////////////////
if(kauf>0)
{
if (kauf*landPreis>korn)
{
alert("Nicht genug Korn für den Landkauf!");
return;
}
land = land+kauf;
korn = korn - kauf* landPreis;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
function erstelleBericht()
{
var ernte;
switch (ernteProAcker)
{
case 1:
ernte = "Unwetter vernichteten Teile der Ernte.";
break;
case 2:
case 3:
ernte = "Das Wetter war schlecht.";
break;
case 6:
case 7:
ernte = "Das Wetter war gut. Die Ernte war reichlich.";
break;
case 8:
case 9:
case 10:
ernte = "Das Wetter war hervorragend. Die Ernte war riesig.";
break;
case 4:
case 5:
default:
ernte = "Das Wetter war normal.";
break;
}
var info = "Weiser Herrscher!<br>";
info += "Wir schreiben das Jahr " + jahr + "Eurer Herrschaft.<br>";
info += buerger + " treue Buerger zählt Euer Reich.<br>";
info += ernte + "<br>" + korn + " Scheffel Korn lagern in Euren Kammern. <br>";
info += land + " Acker Land besitzt Ihr.<br>";
info += landPreis + " Scheffel Korn kostet ein Stück Land.";
monitor.innerHTML = info;
return;
}
function pruefeEnde
{
var abbruchGrund = "<br>";
if (buerger < 1)
{
ende = true;
abbruchGrund += "Ihr habt zu wenig Untertanen.";
}
if (korn < 1)
{
ende = true;
abbruchGrund += "Eure Kornkammern sind leer.";
}
if (land<1)
{
ende = true
abbruchGrund+="Ihr habt kein Land";
}
if (jahr>20&&ende=false)
{
ende = true;
abbruchGrund = "Nach 20 Jahren ist Eure Herrschaft vorbei. Ihr seid gepriesen.";
}
if (ende)
{
abbruchGrund = "<br><br>Eure Herrschaft ist beendet." + abbruchGrund;
monitor.innerHTML = monitor.innerHTML + abbruchGrund;
}
}
</script>
</body>
</html>