<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="et">
	<id>http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=Tikum%C3%A4ngu_%C3%BClesanne</id>
	<title>Tikumängu ülesanne - Redigeerimiste ajalugu</title>
	<link rel="self" type="application/atom+xml" href="http://www.lambda.ee/w/index.php?action=history&amp;feed=atom&amp;title=Tikum%C3%A4ngu_%C3%BClesanne"/>
	<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tikum%C3%A4ngu_%C3%BClesanne&amp;action=history"/>
	<updated>2026-10-28T09:19:46Z</updated>
	<subtitle>Selle lehekülje redigeerimiste ajalugu</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Tikum%C3%A4ngu_%C3%BClesanne&amp;diff=7767&amp;oldid=prev</id>
		<title>Tammet – 11. september 2007, kell 09:29</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tikum%C3%A4ngu_%C3%BClesanne&amp;diff=7767&amp;oldid=prev"/>
		<updated>2007-09-11T09:29:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;et&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←Vanem redaktsioon&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Redaktsioon: 11. september 2007, kell 11:29&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l249&quot;&gt;249. rida:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;249. rida:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;võiks. Otsib ta faili kõigepealt sealtsamast kataloogist,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;võiks. Otsib ta faili kõigepealt sealtsamast kataloogist,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kus sinu programmifail asub.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kus sinu programmifail asub.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;NB! AK arvutiklassides kasuta nii kompilaatori javac kui &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;interpretaatori java jaoks lisaparameetrit -cp .&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(javac -cp . minuprogramm.java), muidu ei leita .class&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;faile sinu hetkekataloogist üles.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kuidas hoida hetkeseisu, vastase tehtud käiku jne?&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kuidas hoida hetkeseisu, vastase tehtud käiku jne?&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tammet</name></author>
	</entry>
	<entry>
		<id>http://www.lambda.ee/w/index.php?title=Tikum%C3%A4ngu_%C3%BClesanne&amp;diff=1782&amp;oldid=prev</id>
		<title>Tammet – 28. august 2005, kell 23:33</title>
		<link rel="alternate" type="text/html" href="http://www.lambda.ee/w/index.php?title=Tikum%C3%A4ngu_%C3%BClesanne&amp;diff=1782&amp;oldid=prev"/>
		<updated>2005-08-28T23:33:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uus lehekülg&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Praktikumitöö tuleb teha vastavalt siin failis&lt;br /&gt;
antud täpsustustele. Kõigepealt seletan,&lt;br /&gt;
kuidas tikumäng käib, siis seda, kuidas&lt;br /&gt;
seal võita, ning seejärel annan&lt;br /&gt;
juhendid ja soovitused programmeerimiseks.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas tikumängu mängitakse&lt;br /&gt;
---------------------------&lt;br /&gt;
&lt;br /&gt;
Vaatame kõigepealt hästi lihtsat&lt;br /&gt;
varianti, siis kirjeldame selle väikest&lt;br /&gt;
üldistust, st natuke keerulisemat varianti.&lt;br /&gt;
&lt;br /&gt;
Lihtsas variandis on algseisus laual kümme tikku:&lt;br /&gt;
&lt;br /&gt;
| | | | | | | | | |&lt;br /&gt;
&lt;br /&gt;
Kaks mängijat võtavad vaheldumisi laualt tikke&lt;br /&gt;
ära. Kumbki võib võtta kas ühe, kaks või kolm&lt;br /&gt;
tikku. Võtmata jätta ei tohi ja üle kolme võtta&lt;br /&gt;
ei või. &lt;br /&gt;
&lt;br /&gt;
Kes võtab viimase tiku, on võitnud.&lt;br /&gt;
&lt;br /&gt;
Näiteks võib mäng käia nii:&lt;br /&gt;
&lt;br /&gt;
Mängija A võtab kaks tikku. Lauale jääb kaheksa:&lt;br /&gt;
&lt;br /&gt;
| | | | | | | | &lt;br /&gt;
&lt;br /&gt;
Mängija B võtab kolm tikku. Lauale jääb viis:&lt;br /&gt;
&lt;br /&gt;
| | | | |&lt;br /&gt;
&lt;br /&gt;
Mängija A võtab ühe tiku. Lauale jääb neli:&lt;br /&gt;
&lt;br /&gt;
| | | |&lt;br /&gt;
&lt;br /&gt;
Mängija B võtab ühe tiku. Lauale jääb kolm:&lt;br /&gt;
&lt;br /&gt;
| | | &lt;br /&gt;
&lt;br /&gt;
Mängija A võtab kõik kolm tikku, lauale ei&lt;br /&gt;
jää enam ühtegi ja mängija A on võitnud.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keerukamas variandis on põhimõte sama, kuid:&lt;br /&gt;
&lt;br /&gt;
- Laual võib algseisus olla suvaline arv tikke&lt;br /&gt;
  (st päris palju, kasvõi sada) &lt;br /&gt;
  &lt;br /&gt;
- Maksimaalne võetav tikkude arv ei pruugi olla kolm,&lt;br /&gt;
  vaid võib olla suvaline number kahest alates.&lt;br /&gt;
  &lt;br /&gt;
Keerukamas mänguvariandis on seega vaja enne mängu&lt;br /&gt;
algust kokku leppida:&lt;br /&gt;
&lt;br /&gt;
- Algseisus olevate tikkude arv N&lt;br /&gt;
- Maksimaalne võetavate tikkud arv M.&lt;br /&gt;
&lt;br /&gt;
Näiteks, M võib olla kaks - siis tohib võtta&lt;br /&gt;
kas ühe või kaks tikku. Kui M on viis, tohib&lt;br /&gt;
võtta kas 1,2,3,4 või 5 tikku.&lt;br /&gt;
&lt;br /&gt;
Mängu käigus loomulikult M-i ei muudeta,&lt;br /&gt;
M lepitakse kokku enne mängu algust.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas tikumängus võita&lt;br /&gt;
-----------------------&lt;br /&gt;
&lt;br /&gt;
Üks viis tikumängus võitmiseks oleks&lt;br /&gt;
mõelda ette oma võimalikud käiguvariandid,&lt;br /&gt;
vastase võimalikud käiguvariandid, seejärel&lt;br /&gt;
tekkivad oma käiguvariandid jne jne, justnagu&lt;br /&gt;
males või kabes.&lt;br /&gt;
&lt;br /&gt;
Õnneks on tikumängu võimalik võita ka palju&lt;br /&gt;
lihtsamini: nii, et üldse pole vaja midagi&lt;br /&gt;
ette mõelda!&lt;br /&gt;
&lt;br /&gt;
Vaatame näiteks lihtsat tikumängu: 10 tikku&lt;br /&gt;
algseisus (N=10) ja maksimaalselt kolm võetavat&lt;br /&gt;
tikku (M=3). Selge, et kui vastasel on tema&lt;br /&gt;
käigukorra ajal ees neli tikku:&lt;br /&gt;
| | | |&lt;br /&gt;
siis on vastane kindlas kaotusseisus: mina&lt;br /&gt;
saan igal juhul viimase tiku. &lt;br /&gt;
&lt;br /&gt;
Kuidas teha nii, et vastasele jääks ette neli&lt;br /&gt;
tikku? Kui vastasel on ees kaheksa tikku:&lt;br /&gt;
| | | | | | | |&lt;br /&gt;
siis saan ma igal juhul tekidada olukorra,&lt;br /&gt;
kus peale tema käiku ja seejärel minu käiku&lt;br /&gt;
on temal ees neli tikku, ning seega saan&lt;br /&gt;
lõpuks võita.&lt;br /&gt;
&lt;br /&gt;
Üldpõhimõte on järgmine: &lt;br /&gt;
&lt;br /&gt;
- mängija on kaotusseisus, kui&lt;br /&gt;
  jääk(N/(M+1))=0&lt;br /&gt;
  see tähendab: kui jagan laual olevate&lt;br /&gt;
  tikkude arvu arvuga M+1 ja võtan jäägi &lt;br /&gt;
  (näiteks, 5/3 annab jäägi 2), siis seis&lt;br /&gt;
  on kaotusseis, kui jääk on 0.&lt;br /&gt;
  &lt;br /&gt;
- igal muul juhul on mängija võiduseisus ning&lt;br /&gt;
  võidukäigu saab ta arvutada sama põhimõtte&lt;br /&gt;
  järgi:&lt;br /&gt;
  võidukäik=jääk(N/(M+1))&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas tikumängu praktikumis programmeerida&lt;br /&gt;
===========================================&lt;br /&gt;
&lt;br /&gt;
Kõigepealt, sinu programm peab vastama järgmistele&lt;br /&gt;
nõuetele:&lt;br /&gt;
&lt;br /&gt;
- Programm läheb käima käsurealt ja trükkimine ning&lt;br /&gt;
  käikude lugemine toimub samuti lihtsalt käsurea&lt;br /&gt;
  viisil, st mingeid eraldi aknaid programm ei tee.&lt;br /&gt;
  &lt;br /&gt;
- Programm suudab võiduseisust alati võita.&lt;br /&gt;
  &lt;br /&gt;
- Kaotusseisus teeb programm juhusliku reeglitega&lt;br /&gt;
  lubatud käigu (näiteks, lihtsas tikumängus valib&lt;br /&gt;
  programm nelja tikuga seisus käiguks juhuslikult&lt;br /&gt;
  kas 1, 2 või 3).&lt;br /&gt;
  &lt;br /&gt;
- Enne mängu algust peab programm kasutajalt küsima&lt;br /&gt;
  ja endale meelde jätma:&lt;br /&gt;
  - algseisus olevate tikkude arvu N&lt;br /&gt;
  - maksimaalse võetavate tikkude arvu M&lt;br /&gt;
  - mängu alustaja (masin või inimene)&lt;br /&gt;
  &lt;br /&gt;
- Programm peab ise mängima vastavalt reeglitele&lt;br /&gt;
  ja ei tohi lubada vastasel teha keelatud&lt;br /&gt;
  käike (vastane ei tohi saada võtta 0&lt;br /&gt;
  tikku või rohkem tikke, kui M). Kui vastane&lt;br /&gt;
  proovib teha keelatud käiku, siis programm teatab,&lt;br /&gt;
  et see pole lubatud käik ja küsib käiku uuesti.&lt;br /&gt;
  &lt;br /&gt;
- Programm peab inimmängijale arusaadavalt iga&lt;br /&gt;
  oma käigu juures trükkima välja &lt;br /&gt;
  - kõigepealt, laual olevate tikkude arvu&lt;br /&gt;
  - seejärel oma käigu&lt;br /&gt;
  - seejärel lauale jäävate tikkude arv&lt;br /&gt;
  - seejärel küsima kas inimmängija käiku või&lt;br /&gt;
    teatama oma võidust.&lt;br /&gt;
&lt;br /&gt;
- Programm peab aru saama, kui programm või&lt;br /&gt;
  inimmängija on võitnud ning selle info ilusti&lt;br /&gt;
  välja trükkima.&lt;br /&gt;
&lt;br /&gt;
- Kui mäng saab läbi, siis peab programm küsima&lt;br /&gt;
  inimmängijalt, et kas too tahab veel mängida või&lt;br /&gt;
  ei. Kui mängija ei taha rohkem mängida, siis&lt;br /&gt;
  programm lõpetab töö.&lt;br /&gt;
  &lt;br /&gt;
- Programmi java koodis peab taande kasutamine&lt;br /&gt;
  olema mõistlik ja ilus, samuti peab seal olema&lt;br /&gt;
  mõistlikus koguses mõistlikke kommentaare!&lt;br /&gt;
  &lt;br /&gt;
  Ilma kommentaarideta ja/või nõmeda taandega&lt;br /&gt;
  programmi ei pruugi praktikumijuhendaja vastu võtta.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
Järgnevalt mõned soovitused programmeerimiseks&lt;br /&gt;
==============================================&lt;br /&gt;
  &lt;br /&gt;
Alusta programmeerimist sellest, et kirjuta ise või&lt;br /&gt;
kopeeri endale HelloWorld programm, kompileeri&lt;br /&gt;
ja lase käima:&lt;br /&gt;
&lt;br /&gt;
public class HelloWorld {&lt;br /&gt;
            &lt;br /&gt;
  // A program to display the message&lt;br /&gt;
  // &amp;quot;Hello World!&amp;quot; on standard output&lt;br /&gt;
&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    System.out.println(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
                 &lt;br /&gt;
}   // end of class HelloWorld&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seejärel kopeeri see fail &amp;quot;päris&amp;quot; tikumängu&lt;br /&gt;
failiks nimega Tikumang.java ja asenda tema&lt;br /&gt;
sees klassi nimi &amp;quot;HelloWorld&amp;quot; nimega &amp;quot;Tikumang&amp;quot;.&lt;br /&gt;
NB! Jutumärke ära muidugi pane, täpitähti ära&lt;br /&gt;
kasuta, ning arvesta, et faili nimi ja &lt;br /&gt;
klassi nimi peavad olema samad (välja arvatud&lt;br /&gt;
.java lõpp) ja suured/väikesed tähed on erinevad.&lt;br /&gt;
&lt;br /&gt;
Kompileeri see uus fail ka ära ja pane käima.&lt;br /&gt;
Nüüd hakka programmi kirjutama &amp;quot;main&amp;quot; funktsiooni&lt;br /&gt;
sisse, kus esialgu on ainult rida&lt;br /&gt;
System.out.println(&amp;quot;Hello World!&amp;quot;);&lt;br /&gt;
(selle rea võid ära ka kustutada).&lt;br /&gt;
&lt;br /&gt;
Mingeid muid funktsioone pole vaja teha.&lt;br /&gt;
Programmi saab kokku panna lihtsalt if-dest,&lt;br /&gt;
tsüklitest, arvutustest, lugemisest ja&lt;br /&gt;
trükkimisest.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas trükkida:&lt;br /&gt;
----------------&lt;br /&gt;
&lt;br /&gt;
Kasuta lihtsalt System.out.println&lt;br /&gt;
funktsiooni. Sellega saad trükkida nii&lt;br /&gt;
stringe kui arve.&lt;br /&gt;
&lt;br /&gt;
Kui tahad, et trükitava lõpuks poleks&lt;br /&gt;
reavahet, kasuta hoopis&lt;br /&gt;
System.out.print funktsiooni (nime&lt;br /&gt;
lõpus puudub ln).&lt;br /&gt;
&lt;br /&gt;
Kuidas lugeda inimmängija käike ja algseisu jne&lt;br /&gt;
-----------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Loe kõigepealt Ecki õpikust peatükk&lt;br /&gt;
2.4 (URL: http://math.hws.edu/javanotes/c2/s4.html)&lt;br /&gt;
Seal on õpetus, kuidas seda mugavalt teha.&lt;br /&gt;
Sinul läheb vaja funktsiooni TextIO.getInt(),&lt;br /&gt;
muid polegi otseselt vaja.&lt;br /&gt;
&lt;br /&gt;
NB! Selleks, et kasutada TextIO.getInt()&lt;br /&gt;
funktsiooni, peab sinu arvutis sellesamas&lt;br /&gt;
kataloogis, kus on tikumängu programmi fail,&lt;br /&gt;
asuma Ecki kirjutatud programmifail&lt;br /&gt;
TextIO.java. Selle faili saad võrgust&lt;br /&gt;
tõmmata URL-ilt &lt;br /&gt;
http://math.hws.edu/javanotes/source/TextIO.java&lt;br /&gt;
ning ta oma kataloogi kirjutada.&lt;br /&gt;
&lt;br /&gt;
Proovi ta ära ka kompileerida. Käima see&lt;br /&gt;
TextIO programm ise ei lähe, sest tal pole&lt;br /&gt;
main funktsiooni sees.&lt;br /&gt;
&lt;br /&gt;
Idee selles, et kui Java kompilaator/mootor näeb&lt;br /&gt;
funktsiooni TextIO.getInt(), siis ta asub&lt;br /&gt;
otsima faili TextIO, kust seda funktsiooni leida&lt;br /&gt;
võiks. Otsib ta faili kõigepealt sealtsamast kataloogist,&lt;br /&gt;
kus sinu programmifail asub.&lt;br /&gt;
&lt;br /&gt;
Kuidas hoida hetkeseisu, vastase tehtud käiku jne?&lt;br /&gt;
--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
See on väga lihtne: iga selline info on lihtsalt&lt;br /&gt;
üks täisarv ja teda saab hoida ühes täisarvu&lt;br /&gt;
tüüpi muutujas.&lt;br /&gt;
&lt;br /&gt;
Näiteks, mänguseisu saabki hoida muutujas nimega n.&lt;br /&gt;
&lt;br /&gt;
Deklareeri programmi algul:&lt;br /&gt;
&lt;br /&gt;
int n;&lt;br /&gt;
&lt;br /&gt;
ja hiljem muuda seda n-i. Las n sisaldab&lt;br /&gt;
alati laual olevate tikkude arvu.&lt;br /&gt;
&lt;br /&gt;
NB! Muutujate nimedes (nagu ka mujal) on väikesed&lt;br /&gt;
ja suured tähed erinevad asjad.&lt;br /&gt;
&lt;br /&gt;
Mulle endale meeldib aga kasutada pikemaid&lt;br /&gt;
muutujate nimesid, sest siis saan muutujat&lt;br /&gt;
nähes alati aru, mis seal sees peaks olema.&lt;br /&gt;
&lt;br /&gt;
Mina kasutaksin mänguseisu hoidmiseks pigem&lt;br /&gt;
näiteks muutujat nimega table. Näiteks nii:&lt;br /&gt;
&lt;br /&gt;
int table;&lt;br /&gt;
&lt;br /&gt;
table=10;&lt;br /&gt;
&lt;br /&gt;
Muuseas, soovitan kirjutada programmi sees&lt;br /&gt;
muutujate nimed, kommentaarid jms alati inglise&lt;br /&gt;
keeles! See on hea edaspidises päris-töös,&lt;br /&gt;
kus väga tihti on vaja teha koostööd inimestega,&lt;br /&gt;
kes eesti keelt ei mõista. Programmi koodi&lt;br /&gt;
loetavus on programmeerimise-alase koostöö&lt;br /&gt;
jaoks hädavajalik.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas jäägiga jagada&lt;br /&gt;
----------------------&lt;br /&gt;
&lt;br /&gt;
Nagu C keeles, nii ka javas on olemas täisarvude&lt;br /&gt;
jäägiga jagamise tehe % (protsendimärk).&lt;br /&gt;
&lt;br /&gt;
Näiteks, 8 % 3 annab tulemuseks kahe: kaheksa&lt;br /&gt;
jäägi kolmega jagamisel.&lt;br /&gt;
&lt;br /&gt;
Kuidas arvutada juhuslikku arvu&lt;br /&gt;
-------------------------------&lt;br /&gt;
&lt;br /&gt;
Juhusliku arvu leidmiseks on Java teegis spetsiaalne&lt;br /&gt;
funktsioon juba olemas:&lt;br /&gt;
Math.random()&lt;br /&gt;
See funktsioon annab juhusliku suurusega, komaga&lt;br /&gt;
arvu 0-i ja 1-e vahel. (0 võib tulla, 1 ei tule).&lt;br /&gt;
&lt;br /&gt;
Kuidas saada juhuslik täisarv 1-e ja X-i vahel&lt;br /&gt;
(st lubatud väärtused oleks 1,2,...,X):&lt;br /&gt;
&lt;br /&gt;
korruta Math.random() tulemus arvuga X &lt;br /&gt;
(siis saad arvu vahemikus 0,...,X kus X ei&lt;br /&gt;
saa siiski tulla) liida tulemusele 1 (et&lt;br /&gt;
ei tuleks 0 ja saaks tulla X) ja võta saadud &lt;br /&gt;
arvust täisosa tüübiteisendust tegeva&lt;br /&gt;
nn &amp;quot;cast&amp;quot;-i (int) abil:&lt;br /&gt;
&lt;br /&gt;
tulemus = (int)((Math.random()*X)+1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kuidas programmi kirjutamisega hakkama saada&lt;br /&gt;
--------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Kui asi tundub veidi keeruline, siis järgi neid&lt;br /&gt;
põhimõtteid, mis on programmeerimise juures&lt;br /&gt;
alati abiks (eriti veel suuremate ja tõsisemate&lt;br /&gt;
programmide puhul, kus nende põhimõtete eiramine&lt;br /&gt;
viib üldiselt fiaskoni):&lt;br /&gt;
&lt;br /&gt;
- Ära proovi kõike kohe valmis kirjutada.&lt;br /&gt;
  &lt;br /&gt;
  Selle asemel kirjuta algul hoopis lihtne&lt;br /&gt;
  variant programmist, näiteks lihtne tikumäng,&lt;br /&gt;
  kus alati N on algul 10, M on alati 3, &lt;br /&gt;
  inimmängija käike ei kontrollita, mäng&lt;br /&gt;
  toimub ainult ühe korra (uuesti ei alustata).&lt;br /&gt;
  &lt;br /&gt;
  Proovi see lihtsam programm korralikult&lt;br /&gt;
  käima saada.&lt;br /&gt;
  &lt;br /&gt;
  Kui selle lihtsama programmi kirjutamine läheb&lt;br /&gt;
  kah aeglaselt, siis tee hakatuseks veel lihtsam:&lt;br /&gt;
  &lt;br /&gt;
  Tee algul näiteks programm, kus arvuti võtab&lt;br /&gt;
  alati ühe tiku ja vastane üldse ei käi. Selge,&lt;br /&gt;
  et kümne käiguga on siis masin võitnud. Las&lt;br /&gt;
  programm trükib iga sammu järel oma käigu&lt;br /&gt;
  ja seisu ka. Kui see programm töötab, alles&lt;br /&gt;
  siis asu lisama vastase käigu lugemist. Ära&lt;br /&gt;
  kontrolle esialgu kohe peale pane ja ära esialgu&lt;br /&gt;
  pane arvutit juhuslikku käiku arvutama (las&lt;br /&gt;
  võtab alati ühe tiku). Enne, kui programmiga&lt;br /&gt;
  edasi lähed, kompileeri ja pane käima ja testi,&lt;br /&gt;
  et lisandusega lihtne variant käib OK.&lt;br /&gt;
  &lt;br /&gt;
- Kui see lihtsam programm käib OK, alles siis&lt;br /&gt;
  asu lisandusi tegema: &lt;br /&gt;
  &lt;br /&gt;
  - juhusliku käigu leidmine&lt;br /&gt;
  - M ja N valik,&lt;br /&gt;
  - inimmängija käikude kontroll, &lt;br /&gt;
  - inimmängija võidu / kaotuse tuvastamine&lt;br /&gt;
    ja väljatrükk&lt;br /&gt;
  - mängu uuesti alustamine&lt;br /&gt;
  - jne&lt;br /&gt;
  &lt;br /&gt;
  ning iga lisanduse järel kompileeri ja paranda&lt;br /&gt;
  ja testi, kuni see lisandus töötab OK. Alles&lt;br /&gt;
  seejärel asu programmeerima uut lisandust!&lt;br /&gt;
  &lt;br /&gt;
  &lt;br /&gt;
 - Küsimus inimmängija käigu kontrollimisest.&lt;br /&gt;
 &lt;br /&gt;
   Kuna inimmängija võib püüda vale käiku teha&lt;br /&gt;
   mitte ainult ühe korra, vaid näiteks sada&lt;br /&gt;
   korda järjest, siis kuidas seda kontrollida?&lt;br /&gt;
&lt;br /&gt;
   Vastus: inimmängija käigu lugemine tuleb panna&lt;br /&gt;
   omaette väikesesse tsüklisse, mis lõpeb siis,&lt;br /&gt;
   kui anti OK, reeglipärane käik.&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 - Küsimus mängu uuesti alustamisest: kuidas&lt;br /&gt;
   päris algusse tagasi minna?&lt;br /&gt;
&lt;br /&gt;
   Mängu enda tsükli ümber tuleb teha veel&lt;br /&gt;
   üks tsükkel, kus iga tsükli kord tähendab&lt;br /&gt;
   ühte täismängu. Tsükkel lõpeb siis, kui&lt;br /&gt;
   inimmängija enam uut mängu mängida ei taha.&lt;br /&gt;
   &lt;br /&gt;
   NB! Kui olemasoleva tsükli ümber uue paned,&lt;br /&gt;
   siis ära unusta sisemise programmiteksti&lt;br /&gt;
   taanet igal pool kenasti paremale nihutamast!&lt;br /&gt;
   &lt;br /&gt;
Disclaimer&lt;br /&gt;
==========&lt;br /&gt;
&lt;br /&gt;
Kui mõni soovitus või nõuanne siin tekstis tundub&lt;br /&gt;
mitte aitavat või tundub otseselt vale, siis&lt;br /&gt;
seda nõuannet ei pea arvestama! Lõppkokkuvõttes&lt;br /&gt;
loeb ainult see, et programm oleks&lt;br /&gt;
tehtud vastavalt alguses toodud nõuetele ja&lt;br /&gt;
töötaks OK. Vajadusel eksperimenteeri ja&lt;br /&gt;
katseta ise, loe õpikut ja juhendeid, vaata&lt;br /&gt;
näiteid jne.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Tammet</name></author>
	</entry>
</feed>