Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
1f9ff5a
Revert "merge from master"
bulent2k2 Mar 20, 2023
eee0e37
Merge pull request #16 from bulent2k2/revert-15-master
bulent2k2 Mar 20, 2023
a482fe9
Merge branch 'turkish_keywords_2.13.x'
bulent2k2 Jul 31, 2023
3344327
Merge branch 'master' of https://github.com/bulent2k2/kojo
bulent2k2 Jul 31, 2023
9a31893
merge to sync
bulent2k2 Jul 31, 2023
da68c83
fix merge errors and add improvement to the turkish scala tutorial
bulent2k2 Jul 31, 2023
763f332
install4j files use hardcoded paths. so we keep two:
bulent2k2 Jul 31, 2023
82f4614
Merge pull request #20 from litan/master
bulent2k2 Aug 3, 2023
f9b7f9e
prog lesson in turkish using duvar-tenisi sample from the scala tutorial
bulent2k2 Aug 3, 2023
fecbb19
Update release name: 2.9.25-tr-2023-08-a (done in August)
bulent2k2 Aug 13, 2023
4fa3a64
Initial support for running on Java 21.
litan Aug 12, 2025
e994292
Some experiments.
litan Aug 12, 2025
41f6ac1
Warm up compiler after it initializes. The first run for users gets f…
litan Aug 13, 2025
b7e2332
Revert "Some experiments."
litan Aug 14, 2025
b4de749
Bump up revision number.
litan Aug 14, 2025
40e348b
Tweak installer.
litan Aug 14, 2025
8658178
Merge branch 'turkish_keywords_2.13.x'
bulent2k2 Sep 24, 2025
003eb7e
fix merge problems
bulent2k2 Oct 8, 2025
2a9ddd2
minor updates to samples in turkish
bulent2k2 Oct 11, 2025
ae2eab0
Work related to better support for hi-res monitors.
litan Nov 30, 2025
5e5bfaa
Merge pull request #85 from litan/java-21
litan Nov 30, 2025
26ae791
Don't bump up Script Editor font size by extra amount, just let the s…
litan Nov 30, 2025
bd40587
Allow FlatLAF to scale toolbar icons.
litan Dec 1, 2025
9bc5f95
UI scaling refinements.
litan Dec 3, 2025
8273f2c
Tweaks
litan Dec 4, 2025
6322398
Fix "$ in method name" triggered issue after Scala upgrade, for the c…
litan Jan 2, 2026
afd53a3
Reduce compiler warning that show up after Scala upgrade.
litan Jan 2, 2026
cd29d3e
Bump up Kojo version to 2.9.34
litan Jan 2, 2026
4bebec1
Merge branch 'master' of https://github.com/litan/kojo into litan-mas…
bulent2k2 Mar 31, 2026
dc2a329
Merge branch 'litan-master-20260331'
bulent2k2 Mar 31, 2026
2dcab9f
new turkish release
bulent2k2 Apr 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
// this is using latest from 2.13.x which is going to result in 2.13.9 soon (after now: 2022.09.05)
// However, to get the right dependencies, we pretend that we are using 2.13.8.
lazy val scalaVer = "2.13.15"
lazy val scalaVer = "2.13.18"
name := "Kojo"
version := "2.9"
scalaVersion := scalaVer
Expand Down
5 changes: 3 additions & 2 deletions installer.i4j/koco.install4j
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<install4j version="10.0.6" transformSequenceNumber="10">
<directoryPresets config="/Users/ben/src/kojo/git/kojo/installer/icons" />
<application name="Koco Öğrenim Ortamı" applicationId="0071-0523-9450-8404" mediaDir="/Users/ben/src/kojo/git/kojo/installer.i4j" mediaFilePattern="${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}${compiler:sys.withJre}" shortName="Koco" publisher="Kogics Foundation" publisherWeb="www.kogics.net/kojo" version="2.9.31-r2-tr-1-20250628" macVolumeId="41bac862080108f9" javaMinVersion="1.8" javaMaxVersion="17" jdkMode="jdk" jdkName="JDK 1.8">
<application name="Koco Öğrenim Ortamı" applicationId="0071-0523-9450-8404" mediaDir="/Users/ben/src/kojo/git/kojo/installer.i4j" mediaFilePattern="${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}${compiler:sys.withJre}" shortName="Koco" publisher="Kogics Foundation" publisherWeb="www.kogics.net/kojo" version="2.9.34-r3-tr1-20260331" macVolumeId="41bac862080108f9" javaMinVersion="1.8" javaMaxVersion="21" jdkMode="jdk" jdkName="JDK 1.8">
<languages>
<principalLanguage id="tr" />
</languages>
<searchSequence>
<registry />
<envVar name="JAVA_HOME" />
</searchSequence>
<jreBundles jdkProviderId="JBR" release="17/17.0.7-b829.16">
<jreBundles jdkProviderId="JBR" release="21/21.0.9-b1038.76">
<modules>
<module name="java.base" />
<module name="java.compiler" />
Expand Down Expand Up @@ -95,6 +95,7 @@
</property>
<property name="frameHeight" type="int" value="500" />
<property name="frameWidth" type="int" value="700" />
<property name="useCustomIcon" type="boolean" value="true" />
</serializedBean>
<startup>
<screen id="1" beanClass="com.install4j.runtime.beans.screens.StartupScreen" rollbackBarrierExitCode="0">
Expand Down
6 changes: 3 additions & 3 deletions installer.i4j/kojo.install4j
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<install4j version="10.0.6" transformSequenceNumber="10">
<install4j version="10.0.9" transformSequenceNumber="10">
<directoryPresets config="/home/lalit/work/kojo/installer/icons" />
<application name="Kojo Learning Environment" applicationId="0071-0523-9450-8404" mediaDir="/home/lalit/kojo_installers/install4j" mediaFilePattern="${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}${compiler:sys.withJre}" shortName="Kojo" publisher="Kogics Foundation" publisherWeb="www.kogics.net/kojo" version="2.9.32" macVolumeId="41bac862080108f9" javaMinVersion="1.8" javaMaxVersion="17" jdkMode="jdk" jdkName="JDK 1.8">
<application name="Kojo Learning Environment" applicationId="0071-0523-9450-8404" mediaDir="/home/lalit/kojo_installers/install4j" mediaFilePattern="${compiler:sys.shortName}_${compiler:sys.platform}_${compiler:sys.version}${compiler:sys.withJre}" shortName="Kojo" publisher="Kogics Foundation" publisherWeb="www.kogics.net/kojo" version="2.9.34" macVolumeId="41bac862080108f9" javaMinVersion="1.8" javaMaxVersion="21" jdkMode="jdk" jdkName="JDK 1.8">
<searchSequence>
<registry />
<envVar name="JAVA_HOME" />
</searchSequence>
<jreBundles jdkProviderId="JBR" release="17/17.0.7-b829.16">
<jreBundles jdkProviderId="JBR" release="21/21.0.9-b1038.76">
<modules>
<module name="java.base" />
<module name="java.compiler" />
Expand Down
6 changes: 3 additions & 3 deletions installer/jarlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
../dist/jssc.jar
../dist/flatlaf-3.4.jar -> flatlaf.jar
../dist/libtiled.jar
../dist/scala-reflect.jar -> scala-reflect.jar
../dist/scala-reflect-2.13.18.jar -> scala-reflect.jar
../dist/akka-actor_2.13-2.6.16.jar -> akka-actors.jar
../dist/scala-swing_2.13-2.1.1.jar -> scala-swing.jar
../dist/scala-xml_2.13-1.2.0.jar -> scala-xml.jar
Expand All @@ -26,8 +26,8 @@
../dist/h2-1.3.168.jar -> h2.jar
../dist/scalatest_2.13-3.0.8.jar -> scalatest.jar
../dist/scalactic_2.13-3.0.8.jar -> scalactic.jar
../dist/scala-library.jar -> scala-library.jar
../dist/scala-compiler.jar -> scala-compiler.jar
../dist/scala-library-2.13.18.jar -> scala-library.jar
../dist/scala-compiler-2.13.18.jar -> scala-compiler.jar
../dist/config-1.4.0.jar -> config.jar
../dist/scala-java8-compat_2.13-1.0.0.jar -> scala-java8-compat.jar
../dist/activation-1.1.jar -> activation.jar
Expand Down
5 changes: 5 additions & 0 deletions scala-tr/README
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
* Merging Lalit's changes for 2.13.18 to installer/jarlist.txt:
Add in ../dist
ln -s scala-reflect.jar scala-reflect-2.13.18.jar
ln -s scala-library.jar scala-library-2.13.18.jar
ln -s scala-compiler.jar scala-compiler-2.13.18.jar
* Upgrade to 2.13.15:
Got <.gz> from: https://github.com/scala/scala/releases/tag/v2.13.15

Expand Down
20 changes: 0 additions & 20 deletions src/main/resources/net/kogics/kojo/lite/Bundle_fr.properties
Original file line number Diff line number Diff line change
Expand Up @@ -280,23 +280,3 @@ S_TicTacToe=Tic Tac Toe
S_Othello=Othello
S_HypnoticSquares=Carr�s hypnotiques
S_Radiance=Radiance

S_PulsatingLamp=Lampe Puls�e
S_PulsatingLamp2=Lampe Puls�e 2
S_DesertTree=Arbre du d�sert
S_StoryTellerIntroP1=<span>Ex�cutez une histoire en chargeant/�crivant votre script d'histoire dans � l'�diteur de script �, puis en cliquant sur le bouton � Ex�cuter �.</span>
S_StoryTellerIntroP2=Vous pouvez contr�ler une histoire en cours d'ex�cution via les boutons qui apparaissent au bas de ce volet.
S_StoryTellerIntroP3=Bonne histoire � raconter !
S_Anagrams=Anagrammes
S_UnitCircle=Cercle unitaire et vagues
S_DynamicSquare=Carr� dynamique
S_Fireworks=Feux d'artifice
S_Fireworks2=Feux d'artifice 2

S_File_Format=Format de fichier
S_Landscape=Paysage
S_Portrait=Portrait
S_Dimension_Height=Hauteur
S_Dimension_Width=Largeur
S_WorksheetPragma=feuille de travail
S_IncludePragma=inclure
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,6 @@ S_Radiance=Bagliore
S_CubicDisarray=Disordine cubico
S_CrazySquare=Quadrati pazzi
S_DragonCurve=Curva del drago

S_PulsatingLamp=Lampada pulsante
S_PulsatingLamp2=Lampada pulsante 2
S_DesertTree=Albero del deserto
Expand Down
20 changes: 0 additions & 20 deletions src/main/resources/net/kogics/kojo/lite/Bundle_sv.properties
Original file line number Diff line number Diff line change
Expand Up @@ -281,23 +281,3 @@ S_TicTacToe=Tic Tac Toe
S_Othello=Othello
S_HypnoticSquares=Hypnotiska kvadrater
S_Radiance=Str�lglans

S_PulsatingLamp=Pulserande lampa
S_PulsatingLamp2=Pulserande lampa 2
S_DesertTree=�kentr�d
S_StoryTellerIntroP1=<span>K�r en ber�ttelse genom att ladda/skriva program i Skripteditorn och klicka sedan p� den gr�na K�r-knappen.</span>
S_StoryTellerIntroP2=Du kan styra en p�g�ende ber�ttelse via knapparna som framkommer i denna ruta.
S_StoryTellerIntroP3=Ha s� kul!
S_Anagrams=Anagram
S_UnitCircle=Enhetscirkel och v�gor
S_DynamicSquare=Dynamisk kvadrat
S_Fireworks=Fyrverkeri
S_Fireworks2=Fyrverkeri 2

S_File_Format=Filformat
S_Landscape=Liggande
S_Portrait=St�ende
S_Dimension_Height=H�jd
S_Dimension_Width=Bredd
S_WorksheetPragma=kalkylblad
S_IncludePragma=inkludera
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@ S_StoryTellerIntroP3=Çalıştıktan sonra sayfanın altında çıkan düğmeler

S_WorksheetPragma=çalışmasayfası
S_IncludePragma=yükle
S_ExecPragma=işlet
S_ScriptStopped=Programın çalışması durduruldu.
S_BreakpointPane_Resume=Devam et

Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/samples/animated-square-creation.kojo
Original file line number Diff line number Diff line change
Expand Up @@ -62,4 +62,4 @@ val anim3 = Transition(

val anim = animPar(anim1, anim2, anim3)

run(anim)
run(anim)
6 changes: 3 additions & 3 deletions src/main/resources/samples/hunted-fp.kojo
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def update(m: Model, msg: Msg): Model = msg match {
val p = m.player
val gameOver =
cd.collidesWithEdge(p.x, p.y, p.w, p.h) ||
newm.hunters.exists { h =>
m.hunters.exists { h =>
cd.collidesWith(p.x, p.y, p.w, p.h, h.x, h.y, h.w, h.h)
}
newm.copy(gameOver = gameOver)
Expand Down Expand Up @@ -97,11 +97,11 @@ def view(m: Model): Picture = {
picStack(viewPics)
}

val tickSub = Subscriptions.onAnimationFrame {
val tickSub: Sub[Msg] = Subscriptions.onAnimationFrame {
Tick
}

val keyDownSub = Subscriptions.onKeyDown { keyCode =>
val keyDownSub: Sub[Msg] = Subscriptions.onKeyDown { keyCode =>
keyCode match {
case Kc.VK_LEFT => MoveLeft
case Kc.VK_RIGHT => MoveRight
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/samples/tr/fireworks-canvas.kojo
Original file line number Diff line number Diff line change
Expand Up @@ -120,5 +120,5 @@ canlandırTuvalÇizimle { tuval =>
// Esin kaynağı:
// https://github.com/CodingTrain/Coding-Challenges/tree/main/027_FireWorks/Processing/CC_027_FireWorks_2D

// Ayrıntılı detay için:
// Ayrıntılı bilgiler:
// https://github.com/litan/kojo-examples/tree/main/fireworks
2 changes: 1 addition & 1 deletion src/main/resources/samples/tr/fireworks.kojo
Original file line number Diff line number Diff line change
Expand Up @@ -127,5 +127,5 @@ canlandır {
// Esin kaynağı:
// https://github.com/CodingTrain/Coding-Challenges/tree/main/027_FireWorks/Processing/CC_027_FireWorks_2D

// Ayrıntılı detay için:
// Ayrıntılı bilgiler:
// https://github.com/litan/kojo-examples/tree/main/fireworks
37 changes: 37 additions & 0 deletions src/main/resources/samples/tr/kojo-kilavuz/duvar-tenisi.kojo
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
silVeSakla()
çiz(götür(-200, -100) -> Resim.dikey(200)) // Üç duvar çizelim. Bu dik ön duvar
çiz(götür(-200, -100) -> Resim.yatay(400)) // Bu alt duvar
çiz(götür(-200, 100) -> Resim.yatay(400)) // Bu da üst duvar
dez rb = 80 // raketin boyu
dez raket = kalemRengi(mavi) -> Resim.düz(0, rb)
dez top = kalemRengi(mavi) -> Resim.daire(5)
dez skor = kalemRengi(siyah) * götür(-50, 150) -> Resim.yazı("Raketi fareyle yönet")
çiz(raket, top, skor)
den x = 0.0; den y = 0 // topun konumu
den dy = 8; den dx = -8.0 // topun hızı: d delta yani değişim ya da derivative yani türev demek
den rx = 0.0; den ry = 0.0 // raketin konumu
den ıska = 0 // top kaç kere kaçtı, saymak için
den vuruş = 0 // kaç kere raketle vurduğumuzu da sayalım
raket.kondur(fareKonumu) // raketi fareyle kontrol ediyoruz
canlandır {
rx = fareKonumu.x; ry = fareKonumu.y
rx = eğer (rx > -150) rx yoksa -150 // ama çok yaklaşmasın duvara!
rx = eğer (rx < 200) rx yoksa 200 // ve çok uzaklaşmasın
ry = eğer (-100 < ry) ry yoksa -100 // çok aşağıya ve çok yukarıya da gitmesin
ry = eğer (ry < 100 - rb) ry yoksa 100 - rb
raket.kondur(rx, ry)
top.kondur(x, y) // topun yerini değiştirelim
// top rakete çarpıyor mu?
dx = eğer ((dx > 0) && (mutlakDeğer(rx - x) < 10) &&
(y > ry) && (y < ry + rb)) {vuruş += 1; -1.1*dx} yoksa dx
// topun konumunu güncelleyelim, duvarlara bakalım
dx = eğer (x + dx < -200) -dx yoksa dx // ön duvardan sekti mi?
dy = eğer ((y + dy < -100) || (y + dy > 100)) -dy yoksa dy // üst ve alt duvarlardan sekti mi?
eğer (x + dx > 200) { x = -200; dx = 8; ıska += 1 } // ıskaladı
x += dx; y += dy // topun gideceği noktayı hesaplayalım
eğer (ıska > 0 || vuruş > 0) { // skoru güncelleyelim
dez mesaj = eğer (vuruş == 0) "Fareyi tuvale getir!" yoksa s"$vuruş kere vurdun"
skor.güncelle(s"$mesaj\n$ıska kere ıskaladın")
}
}
oyunSüresiniGeriyeSayarakGöster(60, "Süre bitti", yeşil) // oyun 60 saniye sürsün
32 changes: 32 additions & 0 deletions src/main/resources/samples/tr/kojo-kilavuz/duvar-tenisi0.kojo
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
silVeSakla()
çiz(götür(-200, -100) -> Resim.dikey(200)) // Üç duvar çizelim. Bu dik ön duvar
çiz(götür(-200, -100) -> Resim.yatay(400)) // Bu alt duvar
çiz(götür(-200, 100) -> Resim.yatay(400)) // Bu da üst duvar
dez rb = 80 // raketin boyu
dez raket = kalemRengi(mavi) -> Resim.düz(0, rb)
dez top = kalemRengi(mavi) -> Resim.daire(5)
dez skor = kalemRengi(siyah) * götür(-50, 150) -> Resim.yazı("Raketi fareyle yönet")
çiz(raket, top, skor)
den x = 0.0; den y = 0 // topun konumu
den dy = 8; den dx = -8.0 // topun hızı: d delta yani değişim ya da derivative yani türev demek
den rx = 0.0; den ry = 0.0 // raketin konumu
den ıska = 0 // top kaç kere kaçtı, saymak için
den vuruş = 0 // kaç kere raketle vurduğumuzu da sayalım
canlandır {
raket.kondur(fareKonumu) // raketi fareyle kontrol ediyoruz
top.kondur(x, y) // topun yerini değiştirelim
// top rakete çarpıyor mu?
rx = fareKonumu.x; ry = fareKonumu.y
dx = eğer ((dx > 0) && (mutlakDeğer(rx - x) < 10) &&
(y > ry) && (y < ry + rb)) {vuruş += 1; -1.1*dx} yoksa dx
// topun konumunu güncelleyelim, duvarlara bakalım
dx = eğer (x + dx < -200) -dx yoksa dx // ön duvardan sekti mi?
dy = eğer ((y + dy < -100) || (y + dy > 100)) -dy yoksa dy // üst ve alt duvarlardan sekti mi?
eğer (x + dx > 200) { x = -200; dx = 8; ıska += 1 } // ıskaladı
x += dx; y += dy // topun gideceği noktayı hesaplayalım
eğer (ıska > 0 || vuruş > 0) { // skoru güncelleyelim
dez mesaj = eğer (vuruş == 0) "Fareyi tuvale getir!" yoksa s"$vuruş kere vurdun"
skor.güncelle(s"$mesaj\n$ıska kere ıskaladın")
}
}
oyunSüresiniGeriyeSayarakGöster(60, "Süre bitti", yeşil) // oyun 60 saniye sürsün
39 changes: 39 additions & 0 deletions src/main/resources/samples/tr/kojo-kilavuz/duvar-tenisi2.kojo
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
silVeSakla()
nesne duvar { dez (x, yAlt, yÜst) = (-200, -100, 100) } // karşı duvarın koordinatları
dez uzunluk = 400 // yan duvarların uzunluğu
çiz(götür(duvar.x, duvar.yAlt) -> Resim.dikey(duvar.yÜst - duvar.yAlt)) // Bu karşı duvar
çiz(götür(duvar.x, duvar.yAlt) -> Resim.yatay(uzunluk)) // Bu alt duvar
çiz(götür(duvar.x, duvar.yÜst) -> Resim.yatay(uzunluk)) // Bu da üst duvar
dez rb = 80 // raketin boyu
dez raket = kalemRengi(mavi) -> Resim.düz(0, rb)
dez top = kalemRengi(mavi) -> Resim.daire(5)
dez skor = kalemRengi(siyah) * götür(-50, duvar.yÜst + 50) -> Resim.yazı("Raketi fareyle yönet")
çiz(raket, top, skor)
den x = 0.0; den y = 0 // topun konumu
den dy = 8; den dx = -8.0 // topun hızı: d delta yani değişim ya da derivative yani türev demek
den rx = 0.0; den ry = 0.0 // raketin konumu
den ıska = 0 // top kaç kere kaçtı, saymak için
den vuruş = 0 // kaç kere raketle vurduğumuzu da sayalım
raket.kondur(fareKonumu) // raketi fareyle kontrol ediyoruz
canlandır {
rx = fareKonumu.x; ry = fareKonumu.y
rx = eğer (rx > duvar.x + 50) rx yoksa duvar.x + 50 // ama çok yaklaşmasın duvara!
rx = eğer (rx < duvar.x + uzunluk) rx yoksa duvar.x + uzunluk // ve çok uzaklaşmasın
ry = eğer (duvar.yAlt < ry) ry yoksa duvar.yAlt // çok aşağıya ve çok yukarıya da gitmesin
ry = eğer (ry < duvar.yÜst - rb) ry yoksa duvar.yÜst - rb
raket.kondur(rx, ry)
top.kondur(x, y) // topun yerini belirleyelim ya da değiştirelim
// top rakete çarpıyor mu?
dx = eğer ((dx > 0) && (mutlakDeğer(rx - x) < 10) &&
(y > ry) && (y < ry + rb)) {vuruş += 1; -1.1*dx} yoksa dx
// topun konumunu güncelleyelim, duvarlara bakalım
dx = eğer (x + dx < duvar.x) -dx yoksa dx // ön duvardan sekti mi?
dy = eğer ((y + dy < duvar.yAlt) || (y + dy > duvar.yÜst)) -dy yoksa dy // üst ve alt duvarlardan sekti mi?
eğer (x + dx > duvar.x + uzunluk) { x = duvar.x; dx = 8; ıska += 1 } // ıskaladı
x += dx; y += dy // topun gideceği noktayı hesaplayalım
eğer (ıska > 0 || vuruş > 0) { // skoru güncelleyelim
dez mesaj = eğer (vuruş == 0) "Fareyi tuvale getir!" yoksa s"$vuruş kere vurdun"
skor.güncelle(s"$mesaj\n$ıska kere ıskaladın")
}
}
oyunSüresiniGeriyeSayarakGöster(60, "Süre bitti", yeşil) // oyun 60 saniye sürsün
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// üçgenden tekerlek olur mu?
sil
canlandırmaHızınıKur(2) // çokHızlı'dan iki kat daha hızlı
// daha önce kullandığımız hızıKur(hız) komutuna benziyor,
// daha önce kullandığımız hızıKur(hız) komutuna benziyor,
// ama daha hassas ayar yapmamıza yarıyor. Girdisi adım atma süresini belirliyor
// onun için de bu iki komut ters çalışıyor:
// hız tarifi ve karşılık gelen adım atma süreleri yaklaşık olarak şöyle:
Expand All @@ -28,4 +28,4 @@ yinele(12) {
ileri(boyu)
}
}
}
}
4 changes: 2 additions & 2 deletions src/main/resources/samples/tr/mandelbrot.kojo
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@

/* çizim çok yavaşsa, örneğin beş on saniyeden çok sürüyorsa
* buradaki değişmez değerleri küçültmeyi dene */
dez kenar = 400 // kümemizin resmi k x k büyüklüğünde bir kare
dez yinelemeSınırı = 2000 // bu da resmin çözünürlüğünü artırıyor
dez kenar = 500 // kümemizin resmi k x k büyüklüğünde bir kare
dez yinelemeSınırı = 3000 // bu da resmin çözünürlüğünü artırıyor
//tümEkran()

/*
Expand Down
15 changes: 8 additions & 7 deletions src/main/scala/net/kogics/kojo/action/actions.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,21 +16,22 @@
package net.kogics.kojo
package action

import java.awt.event.ActionEvent
import java.awt.Color
import java.awt.event.ActionEvent

import javax.swing.AbstractAction
import javax.swing.Action
import javax.swing.JColorChooser

import core.CodeExecutionSupport
import net.kogics.kojo.lite.EditorFileSupport
import net.kogics.kojo.util.Utils

import core.CodeExecutionSupport

class ChooseColor(execSupport: CodeExecutionSupport) extends AbstractAction(Utils.loadString("S_ChooseColor")) {
val ctx = execSupport.kojoCtx
def actionPerformed(e: ActionEvent): Unit = {
val sColor =
JColorChooser.showDialog(execSupport.kojoCtx.frame, util.Utils.stripDots(e.getActionCommand), ctx.lastColor)
val sColor = JColorChooser.showDialog(execSupport.kojoCtx.frame, util.Utils.stripDots(e.getActionCommand), ctx.lastColor)
if (sColor != null) {
val cprint = execSupport.showOutput(_: String, _: Color)
cprint("\u2500" * 3 + "\n", sColor)
Expand All @@ -43,7 +44,7 @@ class ChooseColor(execSupport: CodeExecutionSupport) extends AbstractAction(Util
"Color(%d, %d, %d)".format(sColor.getRed, sColor.getGreen, sColor.getBlue)
}
println(color)
println("Example usage: setPenColor(%s)".format(color))
println("Example usage: setPenColor(%s)" format (color))
cprint("\u2500" * 3 + "\n", sColor)
ctx.lastColor = sColor
}
Expand All @@ -61,7 +62,7 @@ object CloseFile {
}

class CloseFile(fileSupport: EditorFileSupport)
extends AbstractAction(Utils.loadString("S_Close"), Utils.loadIcon("/images/extra/close.gif")) {
extends AbstractAction(Utils.loadString("S_Close"), Utils.loadIcon("/images/extra/close.gif")) {
setEnabled(false)
CloseFile.action = this

Expand All @@ -76,7 +77,7 @@ class CloseFile(fileSupport: EditorFileSupport)
}

class NewFile(fileSupport: EditorFileSupport)
extends AbstractAction(Utils.loadString("S_New"), Utils.loadIcon("/images/extra/new.gif")) {
extends AbstractAction(Utils.loadString("S_New"), Utils.loadIcon("/images/extra/new.gif")) {

val saveAs = new SaveAs(fileSupport)

Expand Down
Loading