From d5b0d4934da24c0415a8f0edc883f63f7181548e Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Thu, 18 Jun 2020 23:16:12 -0400 Subject: [PATCH 001/186] add --- java/greenfoot/bump-babies/Baby.class | Bin 0 -> 1310 bytes java/greenfoot/bump-babies/Baby.ctxt | 15 +++ java/greenfoot/bump-babies/Baby.java | 47 ++++++++ java/greenfoot/bump-babies/Fish.class | Bin 0 -> 1025 bytes java/greenfoot/bump-babies/Fish.ctxt | 9 ++ java/greenfoot/bump-babies/Fish.java | 36 +++++++ java/greenfoot/bump-babies/MyWorld.class | Bin 0 -> 2001 bytes java/greenfoot/bump-babies/MyWorld.ctxt | 11 ++ java/greenfoot/bump-babies/MyWorld.java | 64 +++++++++++ java/greenfoot/bump-babies/README.TXT | 12 +++ java/greenfoot/bump-babies/images/baby2.png | Bin 0 -> 936 bytes .../greenfoot/bump-babies/images/bluerock.jpg | Bin 0 -> 3660 bytes java/greenfoot/bump-babies/images/fish3.png | Bin 0 -> 1736 bytes java/greenfoot/bump-babies/project.greenfoot | 63 +++++++++++ java/greenfoot/race-car/GreenCar.class | Bin 0 -> 1444 bytes java/greenfoot/race-car/GreenCar.ctxt | 15 +++ java/greenfoot/race-car/GreenCar.java | 51 +++++++++ java/greenfoot/race-car/MyWorld.class | Bin 0 -> 2971 bytes java/greenfoot/race-car/MyWorld.ctxt | 21 ++++ java/greenfoot/race-car/MyWorld.java | 100 ++++++++++++++++++ java/greenfoot/race-car/README.TXT | 12 +++ java/greenfoot/race-car/RedCar.class | Bin 0 -> 1572 bytes java/greenfoot/race-car/RedCar.ctxt | 21 ++++ java/greenfoot/race-car/RedCar.java | 52 +++++++++ java/greenfoot/race-car/Score.class | Bin 0 -> 1255 bytes java/greenfoot/race-car/Score.ctxt | 9 ++ java/greenfoot/race-car/Score.java | 27 +++++ java/greenfoot/race-car/images/car02-n.png | Bin 0 -> 5664 bytes java/greenfoot/race-car/images/car03-n.png | Bin 0 -> 5937 bytes java/greenfoot/race-car/project.greenfoot | 75 +++++++++++++ java/greenfoot/zero-program/Bee.class | Bin 0 -> 718 bytes java/greenfoot/zero-program/Bee.ctxt | 7 ++ java/greenfoot/zero-program/Bee.java | 57 ++++++++++ java/greenfoot/zero-program/Bug.class | Bin 0 -> 1141 bytes java/greenfoot/zero-program/Bug.ctxt | 9 ++ java/greenfoot/zero-program/Bug.java | 44 ++++++++ java/greenfoot/zero-program/MyWorld.class | Bin 0 -> 613 bytes java/greenfoot/zero-program/MyWorld.ctxt | 10 ++ java/greenfoot/zero-program/MyWorld.java | 36 +++++++ java/greenfoot/zero-program/README.TXT | 12 +++ java/greenfoot/zero-program/images/bee.png | Bin 0 -> 1768 bytes .../zero-program/images/fingerprint.jpg | Bin 0 -> 3907 bytes .../zero-program/images/ladybug_02.png | Bin 0 -> 6248 bytes java/greenfoot/zero-program/project.greenfoot | 60 +++++++++++ java/greenfoot/zero-program/sounds/ahhh.wav | Bin 0 -> 26998 bytes 45 files changed, 875 insertions(+) create mode 100644 java/greenfoot/bump-babies/Baby.class create mode 100644 java/greenfoot/bump-babies/Baby.ctxt create mode 100644 java/greenfoot/bump-babies/Baby.java create mode 100644 java/greenfoot/bump-babies/Fish.class create mode 100644 java/greenfoot/bump-babies/Fish.ctxt create mode 100644 java/greenfoot/bump-babies/Fish.java create mode 100644 java/greenfoot/bump-babies/MyWorld.class create mode 100644 java/greenfoot/bump-babies/MyWorld.ctxt create mode 100644 java/greenfoot/bump-babies/MyWorld.java create mode 100644 java/greenfoot/bump-babies/README.TXT create mode 100644 java/greenfoot/bump-babies/images/baby2.png create mode 100644 java/greenfoot/bump-babies/images/bluerock.jpg create mode 100644 java/greenfoot/bump-babies/images/fish3.png create mode 100644 java/greenfoot/bump-babies/project.greenfoot create mode 100644 java/greenfoot/race-car/GreenCar.class create mode 100644 java/greenfoot/race-car/GreenCar.ctxt create mode 100644 java/greenfoot/race-car/GreenCar.java create mode 100644 java/greenfoot/race-car/MyWorld.class create mode 100644 java/greenfoot/race-car/MyWorld.ctxt create mode 100644 java/greenfoot/race-car/MyWorld.java create mode 100644 java/greenfoot/race-car/README.TXT create mode 100644 java/greenfoot/race-car/RedCar.class create mode 100644 java/greenfoot/race-car/RedCar.ctxt create mode 100644 java/greenfoot/race-car/RedCar.java create mode 100644 java/greenfoot/race-car/Score.class create mode 100644 java/greenfoot/race-car/Score.ctxt create mode 100644 java/greenfoot/race-car/Score.java create mode 100644 java/greenfoot/race-car/images/car02-n.png create mode 100644 java/greenfoot/race-car/images/car03-n.png create mode 100644 java/greenfoot/race-car/project.greenfoot create mode 100644 java/greenfoot/zero-program/Bee.class create mode 100644 java/greenfoot/zero-program/Bee.ctxt create mode 100644 java/greenfoot/zero-program/Bee.java create mode 100644 java/greenfoot/zero-program/Bug.class create mode 100644 java/greenfoot/zero-program/Bug.ctxt create mode 100644 java/greenfoot/zero-program/Bug.java create mode 100644 java/greenfoot/zero-program/MyWorld.class create mode 100644 java/greenfoot/zero-program/MyWorld.ctxt create mode 100644 java/greenfoot/zero-program/MyWorld.java create mode 100644 java/greenfoot/zero-program/README.TXT create mode 100644 java/greenfoot/zero-program/images/bee.png create mode 100644 java/greenfoot/zero-program/images/fingerprint.jpg create mode 100644 java/greenfoot/zero-program/images/ladybug_02.png create mode 100644 java/greenfoot/zero-program/project.greenfoot create mode 100644 java/greenfoot/zero-program/sounds/ahhh.wav diff --git a/java/greenfoot/bump-babies/Baby.class b/java/greenfoot/bump-babies/Baby.class new file mode 100644 index 0000000000000000000000000000000000000000..372b9ae1669d01f6b123d22975b6d41294cd9afc GIT binary patch literal 1310 zcmZuvTTc^F5dO|~+tOvZNQ)P43P^1iq~1Y6xg#~z2O%iF=u%c#EnQO<1OG%5AAIx0 z7cVV|CjJ0_gz=Y%-)xIEq?_!_oS8E--#2r9{`vL;z!HlU>r9^+=^l%T)l@O$(xMgb`*CM!cR+faYLaa_riW{XLfzJ zka_btxs0eR|2_Wu3X#2er{LQ(_K%E7x9IvT6iH>X+4QP{KId&X3T-*J=sein zUUy0>_IiPyj+~db3#)d?m2=Ih`&;e~vvafd`aWB>Ec&8#9bs6+K*32DlQR?v>@TllH(Mgd!C<}$@^YO!6-U={=Byv zuqT0eh2|Z{mofORSLE($a)?ph-Q@WFKhK4m6olN1#ZmkMb-}zYvB_J#8I8S>0u5 zR!DKvG`ml6 zE&YsI)t(r@AW!TbU{`@9=(WHS{2`pDJr4a4L(rp$E5&z8eMtAwSrh+CBPUr7Az9;^ zp_U$D>npU6G_(M)3NzuG`}P zn%Hy@E!;pCnIw_I1h=?=VLZVIHZWQT+^LOBwiSUs5lh6FKm3nGGT1oK`WRFmM2RB2z{;6v3 zcaYLGyLSBA316sC)kDW~NkykL_$obH5(M{rf#Dv==Q_ojvFRQ7b+ztjswvH8ao0Yy zO$;F|am&PQ+>y9z;vVjs6piK~9tn)-Tji$hHp(xL>S|w4HgOSYj@M&NJjRlVWjqm( z)#G=b-`qB_f~TzODOBowzlaPm&oi&ib{8-kD(ng%FqSX$tkErSm7ex)n$y_+K6<1| z`|v?vAW)%xm9|`oe5ImaaGWxMcgX3AWx$HEXIi%i_m8v z*_A<@_^AkYoYfpA_{!6mjHc#@94EywRy4tx&io0+NyM_Nl5ni>yP(yp9I+!tKUK^m zTS!@@Ul=K!B3UH~;}ip=W$F#v9CAo7)=Vz(uQyASIZmFBX3z3Yn%PNAMf**4W=kqC V%^pFfnuYj-Nl94+F|=~C{{S&!%2)sZ literal 0 HcmV?d00001 diff --git a/java/greenfoot/bump-babies/Fish.ctxt b/java/greenfoot/bump-babies/Fish.ctxt new file mode 100644 index 0000000..9992da2 --- /dev/null +++ b/java/greenfoot/bump-babies/Fish.ctxt @@ -0,0 +1,9 @@ +#BlueJ class context +comment0.target=Fish +comment0.text=\n\ Write\ a\ description\ of\ class\ Fish\ here.\n\ \n\ @author\ (your\ name)\ \n\ @version\ (a\ version\ number\ or\ a\ date)\n +comment1.params= +comment1.target=void\ act() +comment1.text=\n\ Act\ -\ do\ whatever\ the\ Fish\ wants\ to\ do.\ This\ method\ is\ called\ whenever\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\n +comment2.params= +comment2.target=void\ babyHitDetection() +numComments=3 diff --git a/java/greenfoot/bump-babies/Fish.java b/java/greenfoot/bump-babies/Fish.java new file mode 100644 index 0000000..22441af --- /dev/null +++ b/java/greenfoot/bump-babies/Fish.java @@ -0,0 +1,36 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class Fish here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class Fish extends Actor +{ + /** + * Act - do whatever the Fish wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + try { + MouseInfo mouseInfo = Greenfoot.getMouseInfo(); + if (null != mouseInfo) { + setLocation(mouseInfo.getX(), mouseInfo.getY()); + } + } catch (Exception e) { + // swallow exception + } + + babyHitDetection(); + } + + public void babyHitDetection() { + Actor actor = getOneIntersectingObject(Baby.class); + if (actor != null) { + Baby baby = (Baby) actor; + ((MyWorld)getWorld()).remove(actor); + } + } +} diff --git a/java/greenfoot/bump-babies/MyWorld.class b/java/greenfoot/bump-babies/MyWorld.class new file mode 100644 index 0000000000000000000000000000000000000000..c02d7325eda4200ef3cc0ca9c3262baf39b07b84 GIT binary patch literal 2001 zcmah}U3U{z6x}zO>7>b&rjS-j3jzwJX=(UYX&X(em0$`;u%#%%G?}IY$qY^=Nbw7m zC!hQc_~5I8O&4}8e}M14`0B5~2XLQBpa>6Ut(>{{o{zit*=OdDN5B0J;C0-I;}x9h zhKctL6yu0uPBy3GG-t$|74w0Cb8&RHeI*0u)sX+g_PEw8x0-DinHagqPO$!k z_G6JPl=^qCf;~<^JpDjn^f(#`emM95S;#gim;C4d)i;MN6L=ndisAr{uhANMt%Vrf-E_y-kcdtWB~y2?pT3?sh9<@yU`qrGnX$1JdihT> z{*F>VJ^t$#UKPbL+HoXkhiOyj!!E8~Cd56Mz+TLd;z`mgk>C~Xmr3n7qjxj+B)0Q& z{RXK`k?xxzHNwXUW&)G^ClPr}XT*T1fPa`PvAGW6?@3r=)Zu&R6G|;?oop`+E~hrI zZSfvbE%Xl!uVdi!J-l?Fh3zd29{8DAkr4X;Yk*Bou*m~#@qV&7NF;(W)2`mZlb|$j zg%}6O@NKRlj5b3CQ6kD?x`XQ>^SYQ{kp_-Fzz%8PXbVFGm#h$)c4bOj4=}7S{3CKa zkA=s%=y9!I+j$qGBESh babies; + final int numBabies = 20; + /** + * Constructor for objects of class MyWorld. + * + */ + public MyWorld() + { + // Create a new world with 600x400 cells with a cell size of 1x1 pixels. + super(600, 400, 1); + + fish = new Fish(); + addObject(fish, getWidth() / 2, getHeight() / 2); + + babies = new ArrayList(); + for (int i = 0; i < numBabies; i++) { + Baby baby = nextBaby(); + babies.add(baby); + addObject(baby, baby.getX(), baby.getY()); + } + + } + + private Baby nextBaby() { + int x = _rand.nextInt(getWidth()); + int y = _rand.nextInt(getHeight()); + Baby baby = new Baby(_babyCounter.getAndIncrement(), x, y); + System.out.println(baby.getId()); + return baby; + } + + public void remove(Actor actor) { + babies.remove(actor); + removeObject(actor); + + int threshold = _rand.nextInt(100) + 1; + if (babies.size() <= threshold) { + int numToAdd = _rand.nextInt(5) + 1; + for (int i = 0; i < numToAdd; i++) { + Baby baby = nextBaby(); + babies.add(baby); + addObject(baby, baby.getX(), baby.getY()); + } + } + } +} diff --git a/java/greenfoot/bump-babies/README.TXT b/java/greenfoot/bump-babies/README.TXT new file mode 100644 index 0000000..2bea2dd --- /dev/null +++ b/java/greenfoot/bump-babies/README.TXT @@ -0,0 +1,12 @@ +------------------------------------------------------------------------ +This is the project README file. Here, you should describe your project. +Tell the reader (someone who does not know anything about this project) +all he/she needs to know. The comments should usually include at least: +------------------------------------------------------------------------ + +PROJECT TITLE: +PURPOSE OF PROJECT: +VERSION or DATE: +HOW TO START THIS PROJECT: +AUTHORS: +USER INSTRUCTIONS: diff --git a/java/greenfoot/bump-babies/images/baby2.png b/java/greenfoot/bump-babies/images/baby2.png new file mode 100644 index 0000000000000000000000000000000000000000..6f95ce806a9b5ec23851ac7b314c1762f6937199 GIT binary patch literal 936 zcmV;Z16TZsP)KHC;&V0008lNklx+#Qzk|b(z2KkxWzPCj1DC*<3m+k zrF{oPkRNSv-_jknWprC=ezKgoM_O7fo&pg6!~GT@P3IIUjt8lOy@-YtO=isz+T zK*?%lP)Kjm0;c2f9DsWaK)6J*8$>9BcCgmn1#KpJp*HU1C9`W?4i~hT*&(|~Q=Edh zz&dufx~$bzwJ2`vd^L4kbybzQIx_If%V>D~{Z$>$#o&Bp*LexIGg(=-MH^}^C}#xr z>4eTYnF1G7v1{D*{6ZH&dCHg3@@vp=S};70pVEtj9Rc;Bt0e&JQB*h8byd?;g*E9B zx_4d05~2#H?||$^GT5HL*^)TLS$z{wBx{c0{0Q@l!o&K0D*#@VcN12~D@gC;z+aH~ zIV+L{^q(#^<7e}7g($IiUwsIhdF04nHGZ%4n)p-w0{{U3{{sLsX+*|koAE9H0000< KMNUMnLSTY$azGL7+4v8Wv-dOi@UYkjr*o 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 literal 0 HcmV?d00001 diff --git a/java/greenfoot/race-car/GreenCar.ctxt b/java/greenfoot/race-car/GreenCar.ctxt new file mode 100644 index 0000000..7a206ef --- /dev/null +++ b/java/greenfoot/race-car/GreenCar.ctxt @@ -0,0 +1,15 @@ +#BlueJ class context +comment0.target=GreenCar +comment0.text=\n\ Write\ a\ description\ of\ class\ GreenCar\ here.\n\ \n\ @author\ (your\ name)\ \n\ @version\ (a\ version\ number\ or\ a\ date)\n +comment1.params=world +comment1.target=GreenCar(greenfoot.World) +comment2.params= +comment2.target=void\ act() +comment2.text=\n\ Act\ -\ do\ whatever\ the\ GreenCar\ wants\ to\ do.\ This\ method\ is\ called\ whenever\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\n +comment3.params= +comment3.target=void\ checkCollision() +comment4.params= +comment4.target=int\ getX() +comment5.params= +comment5.target=int\ getY() +numComments=6 diff --git a/java/greenfoot/race-car/GreenCar.java b/java/greenfoot/race-car/GreenCar.java new file mode 100644 index 0000000..117ccf3 --- /dev/null +++ b/java/greenfoot/race-car/GreenCar.java @@ -0,0 +1,51 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class GreenCar here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class GreenCar extends Actor +{ + private int x; + private int y; + + public GreenCar(World world) { + int wWidth = world.getWidth(); + int wHeight = world.getHeight(); + int iWidth = getImage().getWidth(); + int iHeight = getImage().getHeight(); + + x = (wWidth / 2) - (iWidth / 2); + y = wHeight - (iHeight / 2); + } + /** + * Act - do whatever the GreenCar wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + if (Greenfoot.isKeyDown("left")) { + x = x - 1; + } else if (Greenfoot.isKeyDown("right")) { + x = x + 1; + } else if (Greenfoot.isKeyDown("up")) { + y = y - 1; + } else if (Greenfoot.isKeyDown("down")) { + y = y + 1; + } + setLocation(x, y); + checkCollision(); + } + + public void checkCollision() { + RedCar redCar = (RedCar) getOneIntersectingObject(RedCar.class); + if (null != redCar) { + Greenfoot.stop(); + } + } + + public int getX() { return x; } + public int getY() { return y; } +} diff --git a/java/greenfoot/race-car/MyWorld.class b/java/greenfoot/race-car/MyWorld.class new file mode 100644 index 0000000000000000000000000000000000000000..070f812168d2b9edb834a6568e6be3c4368fe4a6 GIT binary patch literal 2971 zcmZWqSyU5e6#gcYFk~1JFrY`N`x1hP#fr9oiaR!_6^r6lhh)Ujkl+v~*nQu3yV=%S zwY8g8Z4FY->FG;f+J`>&xoh`Ex~Sn9F?&|WOgtxM&&!U^XX1F? ztU=^2h}w(d?j;>{cv)nx$nvTzuW5K)#BYej$!Ss(uG0ncgM^#XXK?rPrB`0zJOT-&3wRR+7?w1!d#R;&y+QFT)*n zPuk25IF^Fxx4mwT?{F=fR#8zO+MemRvvwv;M+@%Ibn&FjbWeR-I&1Y49F)U4LsbX)y_93%&N5L%x)PHU&k^cG}LaQlLg_Iu!)hWs*cTIc}$|tpmN? zmb26BPEk@3&m_!Lr|H;o_JzUhVVmf}@%G_e87Gw_Y}HI;>A8=;_55)^sUvG9j<%b9 zzERjrCOrs@?zjoFmig2b7>?DO8MN{$CDHsV!B^a4WjhiXsU86{ArZu_K`Z47m{0`; zUW<0;3rL?VM*c*=Av>M4h6s(iV_K9~L~CvqVa;J$82{vgf3L#ql-i!kGFLnv4rnc;|*F9 zoWLe8q7faN4c9}zeVpCY)7DUSeP+O&Eb^F>qSBj!%IG*=c+Q(@_PBE*Gch(C`M48+ zdT}L;CjNOZcnNVRv_Ug9U~M}jNZWjlPvD+VJd@6vw%j(A6LowX#K^>{Xs5HC;*MJi z{80!-x72iE4sX*Hyuvk17k0SUIjQA7$u1~Z#eD#)xsr!t=T@G{&pH1H1V@I07XWzKTGs_$t)0)@umHt|Qbnf}*R?VzC@34^yOf#YRwa z6-MFpq*&|+p83n6)O$?Mp^OUUqFhn-V3{uG9Hv}m$N;u*ZGgeG8YP&5GDJ{`yO{DU zEWm7jU*e?Z=Mvdi^z3T8sw%h|5*6MNlX&48a&9BNoB`FZ)Bxb zU@A#8pS4^f_Y?m%kRnpWDlf7RQ*N)Fc#yaRa50pd*r4&-uAmdUe6;Pf5VYk!!i6rv z92ON?TI%M$h8efArEA9pD)$4?+z+H+H@bY+^>i#;3`uGixbYZLw0Lc>wB=* zH(ur&hiR-9CxZvSz0JYKaSp=1gMeJKzJuTBKzeq74#F;FngcDQ%ZwbNEtF~1*HANx zSO6z){arXqht5M4fooKJ&gH(Qj-pmdLub{aSRBC5sLNrApz_+Ykdp|`piZ6{#1kQf z=aWMXn1N=}u*83!AK=WqR0cZs&aal^2W zjor`29>6q4nZr1Bd^V!ng?bNT&ETI&SV4*EgD#;~w+p(A6P$2CPh(<9GEs#^O_^v< z(n^Uiuo8h=bQRLjs3;nE>EZ@22k++VAwdt14beh37*Kj04P6l|8^QALQ6-#IT<9K& LN_ny=3*gBAPzF)U literal 0 HcmV?d00001 diff --git a/java/greenfoot/race-car/MyWorld.ctxt b/java/greenfoot/race-car/MyWorld.ctxt new file mode 100644 index 0000000..3694aee --- /dev/null +++ b/java/greenfoot/race-car/MyWorld.ctxt @@ -0,0 +1,21 @@ +#BlueJ class context +comment0.target=MyWorld +comment0.text=\n\ Write\ a\ description\ of\ class\ MyWorld\ here.\n\ \n\ @author\ (your\ name)\ \n\ @version\ (a\ version\ number\ or\ a\ date)\n +comment1.params= +comment1.target=MyWorld() +comment1.text=\n\ Constructor\ for\ objects\ of\ class\ MyWorld.\n\ \n +comment2.params= +comment2.target=void\ act() +comment3.params= +comment3.target=void\ addRedCar() +comment4.params=redCar +comment4.target=void\ removeRedCar(RedCar) +comment5.params= +comment5.target=long\ getScore() +comment6.params= +comment6.target=int\ getLevel() +comment7.params= +comment7.target=int\ getRandomXPosition() +comment8.params= +comment8.target=java.util.List\ getXPositions() +numComments=9 diff --git a/java/greenfoot/race-car/MyWorld.java b/java/greenfoot/race-car/MyWorld.java new file mode 100644 index 0000000..bde1877 --- /dev/null +++ b/java/greenfoot/race-car/MyWorld.java @@ -0,0 +1,100 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) +import java.util.List; +import java.util.ArrayList; +import java.util.Random; + +/** + * Write a description of class MyWorld here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class MyWorld extends World +{ + private static final Random _rand = new Random(37L); + GreenCar greenCar; + List redCars; + List xPositions; + List xHistory; + long numRedCarsAdded = 0L; + int maxRedCars = 5; + /** + * Constructor for objects of class MyWorld. + * + */ + public MyWorld() + { + // Create a new world with 600x400 cells with a cell size of 1x1 pixels. + super(600, 600, 1); + Greenfoot.setSpeed(65); + + xHistory = new ArrayList<>(); + xPositions = getXPositions(); + + greenCar = new GreenCar(this); + redCars = new ArrayList<>(); + + addObject(greenCar, greenCar.getX(), greenCar.getY()); + addObject(new Score(this), 85, 10); + addRedCar(); + } + + public void act() { + super.act(); + if (redCars.size() < maxRedCars) { + double p = _rand.nextDouble(); + double t = (numRedCarsAdded < 5) ? 0.995d : 0.99d; + if (p > t) { + addRedCar(); + } + } + } + + private void addRedCar() { + RedCar redCar = new RedCar(getRandomXPosition()); + redCars.add(redCar); + addObject(redCar, redCar.getX(), redCar.getY()); + numRedCarsAdded += 1L; + if (numRedCarsAdded % 50 == 0) { + maxRedCars += 1; + } + } + + public void removeRedCar(RedCar redCar) { + redCars.remove(redCar); + removeObject(redCar); + } + + public long getScore() { return numRedCarsAdded; } + + public int getLevel() { return maxRedCars - 5 + 1; } + + private int getRandomXPosition() { + int numPositions = xPositions.size(); + int index = -1; + while (true) { + index = _rand.nextInt(numPositions); + + if (!xHistory.contains(index)) { + xHistory.add(index); + break; + } + } + + if (xHistory.size() > 5) { + xHistory.remove(0); + } + + return xPositions.get(index); + } + + private List getXPositions() { + int carWidth = (new RedCar()).getWidth(); + int gameWidth = getWidth(); + List positions = new ArrayList<>(); + for (int i = 5; i < gameWidth; i += carWidth) { + positions.add(i); + } + return positions; + } +} diff --git a/java/greenfoot/race-car/README.TXT b/java/greenfoot/race-car/README.TXT new file mode 100644 index 0000000..2bea2dd --- /dev/null +++ b/java/greenfoot/race-car/README.TXT @@ -0,0 +1,12 @@ +------------------------------------------------------------------------ +This is the project README file. Here, you should describe your project. +Tell the reader (someone who does not know anything about this project) +all he/she needs to know. The comments should usually include at least: +------------------------------------------------------------------------ + +PROJECT TITLE: +PURPOSE OF PROJECT: +VERSION or DATE: +HOW TO START THIS PROJECT: +AUTHORS: +USER INSTRUCTIONS: diff --git a/java/greenfoot/race-car/RedCar.class b/java/greenfoot/race-car/RedCar.class new file mode 100644 index 0000000000000000000000000000000000000000..98e6e8da2883284994510bda4f64ba39f1a33d14 GIT binary patch literal 1572 zcmZuwYje|95IxtDBU@44Pnrj5C{(sX90H}3gg}}mVCv8|p-JhNqS$Jp*0DN@Lg0t+ zf&b7i;QJtQZ3L00b1K~TY==(e_f6-ICjGt}{uEWtW^`^Iu@)`~ zP?l~JAhTSlC5@Wf{&7%oH#}*pJFa|QRI)IENekmRXWm3#+?N!&03B%5*4I_mLaQI782`b0~Hxnpws>S`F8$ z!p^(!b0TFtu%R>M!~<2Z0{75=;x-%Vwww1Lx=Hr^+zvkFl^x;j)Tk(xqn8qaqm>$S z%|eOpv{T%zGp@My<=;Z(wKqtK(f*1OrfCPE(+OBsk9#D^9}2$3F^eCan2tCev&qdIqae4wxpr`}>KCJsfLh_s>@+TIAq|iXu zEgEAbA-b;TUm`QvKvvjC^fuyY7)+fY@g#|-*wZvgW-!ZM^0d<5wHW@ihyp&tMUrP3 zzr;dQ%$maI^fcxU!=|S*o;#Jc#)u+PE}wr5O@GYZ#Y@Sq0h6V6zd$b+>mT%R=@rp6 zmI5jvz2#uCoKX}=G)IE@7U6SAVfiRW*<>p4qj;!AuELxaxOiDUQC!X@gVxz^A}t4GpFSI-#h20+w-q>$j@NmRP#%mfjqtM(f?=| W18*_(3K>r&G|6#lliv@uYq2o*((g7$*cJ4o>Yl}j<;jAdXPe}#4}fiz)~Ee>zuYse_f z;EWI8Lph#JqpcSGbF$~0?|kRBo9{o)z5$p)MTLfI30%N+6&Z|6aU(^pTMBL`kVQ_4 zyowkKDxszn+)*&i5dGk|R-GZCuODs8V~HU)Z`!7K#-L??TXS0sk+M_g3`yOz`9`a` z!`)3|$0AEgcWQ>UWw@r)17k$&njV9qS8I;Ti8gH11j($VV&qBbd&Z$rv<$mZtP0n( z8xmwT8w{g*!{yw5?>M5k^6OM-8V$*#R-Kkx|&>Nc1nL%hL-&JVfew_Ir(f;gJNnu_Om!7%7!GHfd2`{pu?VWes7^Ri>t46$vB zT{?Nfumz25I9plEoj10wO3IEUD~YbWSz6kV2|7jkE}CF;QC}#(VwlbLa#ecpJqEeJ zxW|RR5QedA7visN<+cTRpb@<-t2(E&dP{;muEdS{Q?^WKVzR)y8n`|2T}(`_$;^GKA!1rc;Q{Neqx2ByE}W5PjABDOkSn1))zq zMn3m`gh}=xLZ<}9TqJF{jm8izkw$SoE4@MTj0Bu5`Z37JLjE&CCkVGckuyXA{VQT` z3j^t6D94DOBC(#II)U0rnxb?dsv)E?iOa}i)K8pgQwE8L2$3c)4T_SD;tG`&##M?8 XVGJ+*!Wb5*y)vP0k{&1Qgv9>@aEvZL literal 0 HcmV?d00001 diff --git a/java/greenfoot/race-car/Score.ctxt b/java/greenfoot/race-car/Score.ctxt new file mode 100644 index 0000000..ca5ab33 --- /dev/null +++ b/java/greenfoot/race-car/Score.ctxt @@ -0,0 +1,9 @@ +#BlueJ class context +comment0.target=Score +comment0.text=\n\ Write\ a\ description\ of\ class\ Score\ here.\n\ \n\ @author\ (your\ name)\ \n\ @version\ (a\ version\ number\ or\ a\ date)\n +comment1.params=world +comment1.target=Score(MyWorld) +comment2.params= +comment2.target=void\ act() +comment2.text=\n\ Act\ -\ do\ whatever\ the\ Score\ wants\ to\ do.\ This\ method\ is\ called\ whenever\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\n +numComments=3 diff --git a/java/greenfoot/race-car/Score.java b/java/greenfoot/race-car/Score.java new file mode 100644 index 0000000..bf12c8e --- /dev/null +++ b/java/greenfoot/race-car/Score.java @@ -0,0 +1,27 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class Score here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class Score extends Actor +{ + private MyWorld world; + + public Score(MyWorld world) { + this.world = world; + } + + /** + * Act - do whatever the Score wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + String s = "Level " + world.getLevel() + ", Score: " + world.getScore(); + GreenfootImage img = new GreenfootImage(s, 24, Color.GREEN, Color.BLACK); + setImage(img); + } +} diff --git a/java/greenfoot/race-car/images/car02-n.png b/java/greenfoot/race-car/images/car02-n.png new file mode 100644 index 0000000000000000000000000000000000000000..9e5b97f3c2f5eb5cc2bf7b5795458deff80063ba GIT binary patch literal 5664 zcmV+*7T@WKP)?0M35#O>Am+$?+V;YmyRG^ zkRl*p!LDf3=ope`#>>)RG@ZCw&$Z0uB%lr;Kr*ZkE#08iA$#x6^?vB^`0hWpT_q$I@0$0Im681BoK!TWE2gTKE&qNAgcl9Gaq)YPAIV`FcnxwteH`1zS|jbV?? z_-JM2v;##&dk1=YzE2DfM_5>x%urBhNC*@`L5TMBM6|Uv6b1%}ad$^dU?8F*A`s5; zf&?J(JlxduV}E)1>E5g?z2C*WEhA&k@%}~(3{;^kI|+%2iAdrO6ZG^DH+?!HUw8rj z6wbfV6Hg#=+&IL4@Bxz7tU;=q8`3Eel`;!wPbzWZcmuji@~(CyN4@f^%xmN0JNo-m zaQJXOD$|3JW@w05F8GTKe+Naq_8QXGu0_KRYn(al$90oYuZp|fs8IYnh(dq=_O`Y_ zlxN$+TW0}0xZD4f@xM~?`|smIXElztd84T@9QlgiJJn%f&;OHomX+0#l455lgOf!8bK2#3<>jqC!ds$=15*14rOMdE<_t;C00nVuqgT`fKWq&1DPRH5&QahIB}Bg zyYCL!?t_O9NAxSNpp{B`SfxS60shX_FUm@!D0 zJQ^Dq87|%Uq#0Yr5^b!JydMKC&{`t>{ zqS+=#e4Z72W;g%)O=I&~^kpM8en_3Ke>VSx@FL4%VMq9;xi0IDQoNzxR~BIMa;5jI5L zPnIODDvnIH&zy-|hV4>)ebm_4pp8n{#6Xom_e=nFl9?oF30sxV|Ml0027ri+lxX5x zZ^x?_nrUoi$4+VY6f@NgD)O8308#6aa#rdg|f%zxN)L3l?A} zBckwxjjpa}r36}heX)J+Tp@ur$y$<(!UoShgr0Cn&Y#CAyj|L~X~1 zY`PK>&`v3+_?`gzBnL^dc?2N%*Rq|*pnyO9Ne;h>Z@-O9in%~jQ+7PU^xB!u^`)kw zo#|TM>eT{3zqCz~oI*#Ad>S~hF?!{X0r0o5B!#BAC3K00Q7t!{HA^Mk$nCoy1Ea~-`gAAJpcae zY_us9C}A>700WY%B>4-c;YZUM3MV8?I)2h5?D+U&A@W(CJV6_2*87h;8}V<*oS$Q1?g3#ymtC7a?|A9a4N-krmmEg5-lJR~|!c@foyK zokMridF*dGhrJc2P@8uIWof-A3~PqUrydDbx$s+P0r$7xM?019d`kHIXOWRUfTXZKL~UzAh+!f8G~(bnX%_m6i_ycRq=jkv zrm^yS4bC8xbq^atG^_puhHFkQ)Yau|2BGi zZlb;I2AZ0#WB2Z_P*#2o1v|e)rs@mCC!T>K?hIlQ&Li0WC|uSR!gWy;k{7GvfKrK8 zT7~YoaX(5{l2oHl03uia@Z~9p+g6X<+{;{yi`LvgL&FWU?!AfqUAJ-g&>b8KGhd+Ta&-6mdyc5S?%tikJ%sv}%OT zn+uS}u)K?L!Q!pAev)h?shl7%p9(ngnZF=6p&vE1H__aD2kq^5(6j$8jvT&+Qz!1D z|Ij_`=l8a@+uZdn0=$Xx${Q#u`5Jiz*O8_A2RwXwU~S(FTgMJq*|oyms}I{Vzd}~_ zS4dHu#GL0R!I|dS%#z<`;>2$SfSuN2_f*6YBc4Tt>I8RpAAP;|Ddul5aQcD#Jizb! z_T58s%U#qp+`+Ehw^3St3x!2Dk&}M|Svfb5n0f^c&Yf`eJOKaTV~C6yKv?8)Wam*r z<+qWac>$A$kAe-OqX3qC#|7`Au=p;S-y!qc*rB|Iw9H#%-iwg%lSs?>5-I5yke+b?RlDz_ zzTrN~R09}EURrd~0)XX&2{$EM`T+}35i@IjpOGxUAp|`&r_o-18hdDFb%g_{%Ksb{ zRK}8=%P7jb236LVNKW|zeu0PKLxH?f#Ss2@HD;ev=2V`S$ds`=yaA&t69B7Q!KM*F^LFkMJ7F6%C;)R zZ5?F1ArHQ5m2h9V9ac-zU~1VQE1RS9UU>O-B9M+M!FMmxqI(e^--G=8)ASAJ(NJ~* z-L(Vg*>w~v-<=767A0nehOlHboXj#%@>{&Pl*fS2sD!Ppt@w1#Jj6IxBi?Q|BF!ri zU{nfMy`8YtDuB6W4y@Mggq=|(oNb%nN#+6G?FbL-L|j-G(qnp%o!EoYf>Wq0zle_J z%heKlsWIWJinkE_+<}bf|Q~>Z40MzIQY8a`uGJmtRvWBI( z1*{lKotR9z@yzV_6v|`4>c)&ImNDb}rcIk*VqyYAid4Mc%FM@_(a({N#)~PKJLfra zo|A(kT(&vEkK!*YD}&x30Mi#=JSdXVZ34hj(k{m8Sxlw%wUi7h6pU}&ID(twfSDs0}g z3PIjmuz`7CRaF)An5YZ_=#sNy0f1#Xii?UcgSA|JeLBAWx*0$hsTHSBXYg4?D#gv4 z>9}?+1&$5|*r2B;OTot47+0@u=bU(s$(P5SIFZC>gFOHC?FL-G-UO}HtGISOHWIi< z(M-pU+baN=@fe^%%AIlR>^^DkZMMQp4stSwAs0LG$Nr39R&Pj8n(UwOq= zU$|ldNMho+R(%CUuAo+{xZ7sZUhb?FKmXiAIzWYL#+570aCWk03RaAR2M;14CWMOG zOyr$F|NS;8blf;w1KK`|1lf@o z=QeGmASo#n+xKi!_n8bi{nq?&YfP4 zJvwMX-SXV8zAB+~RPgihlJ6W`=&S?)yLaDhlT4m`GQfsGVc}E5;A~?fd%mnJUy4o1 z9XAeYzc9%@Qa^z){q8P?t&JU)En9{KjH1p?_Nb`Hr1Bjk$Wt75QXczoPA8SKnmJ44gb! zMg=>9bLScv?E>KJ=mK$llg4r@A}koLuD0CeJ_0z4FTQA@6ti*QKt4CIpE{$YX)9pB zvrmeNgr%VYPB%3nblSAz(kf|G*L>*(EM{fA%|ss-dO8RU3}9;QPjfV+dtD84^R*;x zE)q&RE`*jAUGSEzP-j$IMZg}e4)lt;Xl&d`U!MjwwK-V0a29C>U9}dK+6L+A$P;HS4ftlR1oxj2IU-LJ<)ND@zM#)4mmoKt?=2`hg@WTs*R~laQL4NYmDV zgWh_$n;5}LM;m8$??&L5G2cr%(z63De|{Fa%ut+c%n%viB|8cYIvGDd8}3R$5$>Q_ z<OG<H^4t*;;vz@MkPsh~l*Dtc3+#1u5ai{C%%lj|>FUXi z3RY!5Nlubw)^KyM zgSV@*Om6mel%5sr3BaDmVsBsodz!NyJ*5*rJLu@bfx6gO6 z!EwJw047Yt>=}!(MqLN1SL#4>`FdzDNnN=_3(FU;#nMGyXES|54Me{VUaIX4e zk)`G;s864Tb1YCh!owc|U@SQNNCF$jjKPAL3-IYowZ~rk_t1vL%VDaq8lUgkBX>=` zB`5$Jw;NxXjI&~g&<}N@r&;D|6FHTid$UP)?NxChXRIQJWAb>SOH6vUd zDT&JCxO@dRaiZ3&PoX(|9@MAJ#mcF3si^a??4$WuI(-4urZ3`iAy!PEkCij#Lw(i) ztem|F>hqaPaw8VZno^jy?N3ZZZ*nqDareh|?v&ek1aMt6shR`;o(G(m7lgd_n%w2u z!9*jMHJoU(7t_8Am@Q{h!}G*>0fFP|}`iW#tIP>Op3 zaa|+Ywu0$#X2qgcB$}g?`V|47Rsir30K`#dW&C7(x(YtzhcVwIfI5 z+Y<3EVdcv2lv-M^%Xi1_Yt}USFe~yK1mHPtoP6yT{0j>CxFnjOV#kFnMg#zHe<*Hd zvaGEe|9O3%tWb>dHZr=BPkYVdKyPZcm@EK1x=Z*^NHoD8wf8$BBhk*1ypnmR(#-5a z#`5JO|KER5q}tiNlp7v?;{Z*h-^&XPqy!czikDx0Xl6{=elKHjsUdDngo(zz`6jCA z_j^4&aGYVeIXU@3p0V+(zxY2S;vWjilai`hii&>fV#=)~>KvBY+v$)}XU|3!6AR%` z#AQS(GimV;Ey6bltrqvg;4h!!#%s)&w8RZI*@6be+URA^$FC2BuW zeC(scY0S;NR~Zu0SnA}o{&z9`wZB4d?-%o3UG+)Mg>G(&A}_C;l7N7k^3c%EitzBB zis0bJa)1AV3UBZDa!*f>3U_y-a%bl$zh~|L1pom5{{sL3vola4)MwrR0000`bJmrz18t7W_ay<^<1yoxdHTqN3RQ+1c4hD^B|%LL4#Vk?E08d8BgrpN1gf zn^1nLJiPNl=QrhD26T`yA z#l^8TuQu=bp`k;Mi;ouMx=?dd{6i4GR8x<}q2od{P7K-R7#Y}S|o{WbEh_#o*6q#j8{$bk^7%UK7-#5Z9dsc>#oAe-0^yQT}q;obOm z!SER@^H?^f`t!Hwzd<@h8vdRB5cP_nR-(q`=2aFE^3K%<} z3851(Cw2~&r!QyqDB@rQtR>d$Z_{|=z8YPl-Iyxc;O)4#S)iq&rDFy(C436rOLz~f zGgm`Vtcaw6BslDIcrkfz<~|vH;z%G5rjgEsigr=xB1{lY7&D+ZBHzG*qy<=?vmQJ5 z?u4*M2*-VnSe&|;PW~wweadJ+t+QfgK}slv#bJxbRDWo{bns1io1k8*j)0B;xU{&i z5@Y8Q`?rrYan70v3 z07GMrxg&vi%pq#>w3CGq3&#v-YWP&lOPGf>S!=Mpcsul~^jRRUb}v?+m>|+_9wR*x z$eTI-X4H%QYC-sdF$1D~ewh3rWO8JnyjK|}wI<-V^WoR&$4ZL{B<&V4D@Ox5`wHm& z$oIzthU(+&nAup8x&)i^H$$UL1DtveJli}G))NNPI#WmmNr73#tRD%)XND-yfZxG~s9VIsO%hB3vzFO163CbNjGE`$5pR## za!revhWUx}u{LWht1kxC2CTUUbOk`zC4_msIo=E-t0K$n7zyOZ{DbZ{V+ll!WMT3` zY{=aJl@b-0)|#^BPWLiVrwEn}mY5Ym_DeZN?R6X}0(6H0&54*ZCNSfKna50_ z!8tY4nPD@>WXae)F=Y{Cb7i4gq6)J*Gq|?8LU=%kv}0*VIhewJUl32Et;E<32U1~X z(jA#q#IPBE8it0eG~8I0whVFwa?mQ*VilNrXBv8BoybDQ;S6}Rc|bZr8q7|HI~>S> zd7Flqw6ixvZ~V4F{l;UW+eA!sC6)W~>OPUZPy3?Fx+-%OwiRuIZlx~ln(W})>5JI@ zST?TCJCX7xSB0Vh~Zzyz}im}N2-(l#9zwO zd#ON{uSu#pWW0A`mGc(NF?kPDIa4v)X*Sjf*1)LJh}D;%?jR%`NrL#S7$wI`Sin`O ztH3A|8y{BOn8nnq(t)RjPW_MR`j5i|=Lwi z6fzvhn^{RMj6%?@gIyB-c+7B}1Njg;n8f6P6JH7E6bS;edJt7~7-{7vQCN2l)h$D4 z?!Jbu!=Iu1$aP41hEUcrh}`;9h^gpBptud5*^SVS7GVir9tJrEsQI)8MaPOD=n-I3 z_9hUw_}Zb7&#a@-A_bWwoP=?H)Y`BW5s>=|IFQK4t2)PAU$x(Wcod5e^5mg5rkr=B3_rO$a zhTJ2$2<;8U*8Hs$D1JDQ8KXSjfBXww37H6Kku1y;N)VEH1VtrZqO9TuDyqIfW8)2U zb=@L^-^1w>_c3_(0Rg&)gMD|<(QzC5n!iPD{WmDD{2GPg8%WQ(j@ZOYq+UUE!Zlb6 zy0F7P2g?Q82;CpbTAWh867|%D!-2FIH7RE)NO_XFMhZqDaY!yYkJ`FhXl}Vn2D^*i z1NR8XeVjS<02c-y;^grMINX09Jw5l()^-PtO}9~9a|@;A-=Ii*6R8=Wf$!fBFQ3DR zN%#zjXL2VoLjhJ|X25Y-z6?p`j)_^HEzG??x5EGA`3fc`24HA^Qn?z@Gq z?guz{kV@ep&YpgROBWvF47naX@(_K!4+!XeG&kQveZw78R^LHM`7IO{e~ZM_>u_}G zgq?FIx%R--qZeseUlFO@#@^CfFb~PXq}h{Dd$JbX76PQn#0&>gCh-UXVqD3QWyTb2 zQP)Io-+i1o{)8;c6I{9Ulw6!{UId#9-yY~KFX`^L0onh1>!r% zDY%UQ!5O%FA12pR2#@|03CUN8#IB*b?g1Jk51`I<#p2bAar*LUI5j&_35C86wEh*) z{6+JzYU4&6J9Q6NhrY*!^WWptsqb*)$W!$8K1FBe6STBGCQI~~z&s)_53#rG0h#>+ zZLTdiH!qB;-FF zXd5wm--(bR&Q48J4NF(9M9aVs>U%Guvg0C3TQ5P}bOpr?*HKjScNA6q14R|Lkec&% z#H3t>EAJqJ!!IB<^)p20Tn0D3oh(%oV&l({CAxts$=4`tCf3)p5v<#W`1Bk0VfY8zo_!hRnElUEs zlv?bGtAKvwUT6vnVQf_gL$iA9RLg;-tpv`l?ZmvRV4qqGzwi#ErJqG5vCf>@lf-cz z!CvAxYY(2oj72jMC->LIQs5~ zXK)Yv!w*6jdl=CvM-iWM6zSsQD6Tq-M#*QyZ{0xOz!zxlxq_nh6Hs%qhIh0#xNclj zHC4f)-hyUuOP!saFIHDqkAJmt6B#e&ISB%w&C!N~lLJ)Lcf&ZU6dtJ+a14or1&;@N zA20YsgutKFpqMa(#z!F{IUcd;$%xHJMpSAdBFL=6;-Vpp3WtAa2!i9{kXlxQtbKOv_9QUS3{s_Ta+Vg$r8;JM!5X zJYODoK0J__z`?-*_V)I$wY9~bJ$rt-+S%E`(b17@SbKYu^?1^L0##}lqzuHgCc z;pOjzjNA;^bM09xqX$Puogj@U9?T=gg@L+>Iy>NoEo-1}tOgCu9njjn6T3*&(^r9^ zkqS&qRKek>gUi*1x|$kvbabGlrHKH4GXkRxTRTnI*l5ApW*5x%sKcD21q-WP#B=X~ znw~uJ^73HgXoJR%Mi|!^(}?ktkwBizT?(XXq{_}xLt`uM-t7T!nA8LK`s;E$dQ?e1 z*N|FDeoG~uS_Cr_6INQLCPpYK^1-cJad`ebpKU|ie)?%Txwf-?+`dhW#N7-91qHBj zu!5vZ0>c_Z5S&p?u3pU76lka6PF6y?y2`kJe}Hs!l7;&A+Xg&&(nvl_$bi*&_%ILM z-H{Lm24d#SnJCOjK}kskB|Lt7jD@;;w;kVox1XKulPA^q_rI%%*N%s$n;WK2 zpN`^!bOIDYq*#c1_liloCbsPtUsRCm0GY%Ic7le6>eySd7aSW7+IrjA;}Mb2!qI^K zL4kJY?_if~>eMOt;fHIue!ZJ?+JQ4?$_dndJb2KIZ@#G@P&F7B$cLw^D^{#nfyB5l zNF+%Fs0v?xSx6*WN!mA|zdsw-u1Rq5qJ&Ih2y51Sgwl#qm|2^l{ZRXh49HgI!x21E zK2kR+&^Fy|aB^~@NhAyn9m3P6Lu7_mSV{fx!!dTY-+#ZK+;3$eJ&1(l|o(Wf~x0UF3S6fSw@|zm93srlPE}3}#kl=osk0uJT<}sYgmk##QDi1(Mg1 zC)UG-y1ER}k!+$XS4f9{Cj$+V4$qR$r%30WxO};WELkqRhVJJs4y3m6)EI?Ke5Oz0)L!s z``|$jf$1a4U5$VJs~)+zuBdISg(1ff2TmM-QGgLhJT_87(q_`%v!2>a8;XjG2n}_{ zjT=-K%E=5nN$q<%>yu=V!?<&2fOJkgwMc|Oe_zDMMj|CSlt|3nks*sc83qGGu_Pzl0o$iBS05N;*Q6#j$altPU;z=&?ku$`U$i*JjjyKU0aPfNI@{441AJElP>M2Y}*&l^pj`Wh)>ExR8$~> zBLxsd1mWm~qcBJ`0JHIR$7syF%eavs-;u$(&1>N6PX_YvAUkz9kwgQTbsLTz%_mjN zD)+;OCyDit4Od4O$w^79Ur9)ahrO*0iLtB5B+d{6I8St@lth?R%56jkyT~CS0+Eqn zuyC?~t-S@x_Lsq3;tocU95aR$Lvp%bF%L|@1T5RI7`a)=*tKgHDl7945@Jb|R-5co zI;83maob@3{vyQ1g}~Ur1U6Py>^`QirweaS4+w=m1hx*Yt`^v~O%@6YGDL!#;pu5Y zj!zkETmLW~)C`qS(p$o2(TGw933Sf{uKqG(@e7;CVbY)MH0+S`k9 z?pz+upU*;dbu@T9S7>W%!@|r8o@B|Wn{alrM`%z0yRW&Dojf~RNS+HLt|5~=lZ4F7 zBnSk-P}f&SZbkxjnW>`mSSj=>^=Js2JRHc9v7TZ%k3E-d(vpFDlr7BcO^Jz`W8+3y zB9R1KxKMzvz7k__FdX6GTz00GW;O^F3dvxZh>4Csm>>w27MAe#c0^5$BTk%%Bvw~S z9BVODRd>M1$Oxuh2Jj6f6Ee|6>FH87vrmB1h67nMHm}a}Yj>|gOlA;Vom}AIk8#CxZQa;N$Har9hkW5gBRe6&3bZdT88GYNsym89LS!reFZexeliqxZHKJ79CoQ0KvRW;w90x= zQ__LT4sGn*wi`+cTG%14iEVNkP}rjWyQ<7KIT+{~!8pJena4BPl;21o2Zr-gF36w3 z3dL1eskq^H5B6K?dZjG{Y7;7tSF*Vxnl>JJly)SZ=x0FkZt_^GBKyArv`%p|Y{Tu) ze7Tv;rqRqV0g8VeNbl!B+*&R;LJl_Re1eS%+r|WBll*pUAjd3AfhAfmx1#=HJ^1_i zFUH)>gbxRDB6|KaAfpl^HX+Ha=0aDbiyd}KkTX!gM$J#KK}{Yqs-HkcSsoj9ZiTF( z0yb^m&en}eq>T#suBrezwe3()Q-YGFD%4EXp&z0T;eH{~kENsdR52>fSFoAcmq3Ey zKrX~n{|snW&@3!WS%`Jn>sYg-NlW^o#H!K?R^_CMtzemN2~IW#=4s~Oq;O!7W&!I= zYuM$IlSiQ=xMD6m>pkJp>H_mRb2bwzUntKeLal49**v3?Sm_mz?{FXwa=I7%2WYbQ zLN`T669rCaDpS3D#)pPcN zAO=$2QkX6nJw5zqD^03W3v+LEXTQtD%fLRzejW3AQ4CbP&pt$#j>lj|(4Wufk5*O0 zDrg#Ng3{g>`eT%Cbaw;{EgD`LJ#z(fUp(l|V5Z+pR-C`22Y;l}{si3uHZ4r`j=sjQ z&asw^3ZxgWw@k-J=Lh-_(Rs}Doyn$$={k=E)T@3ZGg{+ zuZnfFbwW>e`t$RCzL3NPz@dch2hTd=)gJNwE>CRc{t zsh6ZJVgCrXIAt;WpCJ1G4(b5a#p+PbSB6uC6O!wa(NJH3WBVlNZmWG7BZ=7ln_+%l zs;jGKdgplu1{Veo=9c9?tE{Xfkzfs~>#9*$TZq)^RK(WABDp0QvGuXYmSm&0y%s$O zdeGO`M`G)KwDh(7JEb}0NDe zv?Tg?q$ILe)F5gQGzxNq8-l|E>jItmwS0A)4f22e-`Cgc{{R30|NjF3uq_tg TW9i2B00000NkvXXu0mjfCA~=V literal 0 HcmV?d00001 diff --git a/java/greenfoot/race-car/project.greenfoot b/java/greenfoot/race-car/project.greenfoot new file mode 100644 index 0000000..92319bf --- /dev/null +++ b/java/greenfoot/race-car/project.greenfoot @@ -0,0 +1,75 @@ +#Greenfoot project file +class.GreenCar.image=car03-n.png +class.RedCar.image=car02-n.png +dependency1.from=MyWorld +dependency1.to=GreenCar +dependency1.type=UsesDependency +dependency2.from=MyWorld +dependency2.to=RedCar +dependency2.type=UsesDependency +dependency3.from=MyWorld +dependency3.to=Score +dependency3.type=UsesDependency +dependency4.from=Score +dependency4.to=MyWorld +dependency4.type=UsesDependency +dependency5.from=GreenCar +dependency5.to=RedCar +dependency5.type=UsesDependency +dependency6.from=RedCar +dependency6.to=MyWorld +dependency6.type=UsesDependency +editor.fx.0.height=0 +editor.fx.0.width=0 +editor.fx.0.x=0 +editor.fx.0.y=0 +height=785 +package.numDependencies=6 +package.numTargets=4 +project.charset=UTF-8 +publish.hasSource=false +publish.locked=true +publish.longDesc= +publish.shortDesc= +publish.tags= +publish.title= +publish.url= +readme.height=58 +readme.name=@README +readme.width=47 +readme.x=10 +readme.y=10 +simulation.speed=50 +target1.height=50 +target1.name=Score +target1.showInterface=false +target1.type=ClassTarget +target1.width=80 +target1.x=0 +target1.y=0 +target2.height=50 +target2.name=GreenCar +target2.showInterface=false +target2.type=ClassTarget +target2.width=80 +target2.x=0 +target2.y=0 +target3.height=50 +target3.name=RedCar +target3.showInterface=false +target3.type=ClassTarget +target3.width=80 +target3.x=0 +target3.y=0 +target4.height=50 +target4.name=MyWorld +target4.showInterface=false +target4.type=ClassTarget +target4.width=80 +target4.x=0 +target4.y=0 +version=3.0.0 +width=837 +world.lastInstantiated=MyWorld +xPosition=1670 +yPosition=469 diff --git a/java/greenfoot/zero-program/Bee.class b/java/greenfoot/zero-program/Bee.class new file mode 100644 index 0000000000000000000000000000000000000000..d04022a9ce9898e79821d35e04f989ee676bce0e GIT binary patch literal 718 zcmYjP+iuf95IvhXiQ_tL;*fCb{hF9impf8WC0Yck8W18-pbtn}cX14<7dhLOehNPT z&!{LM9{2!0fX_k9nuPGM<2h$%XV01S&)?sF0Jw!47RE7UV%owCW-Syjr^CF71rv)V zmNZ(Wegd$x;T}WgQ3lY7RQh9fM zC1Zy2h9!Ct7T1(&Vb$JwcZ54-6(5&w=jP-xR z9??BUAk>RwKr}NAUSf{MIZh9ef~mDpW@=>#L$g8|3}*;=^kwwTxL?6OC)*W@*@Voa zO1b^F0B3QI5X1R@hksFfeYoSKz9IbqCAavo55qP4$b764r4`_%fm^ zj+xK}H$5cX=WZYQQ&>qdb_!eTOGE2hCsV*AnVKS-)1-5T;w%=)cmwnF5({V&+QbsJ mv5d!9!86>%EBZ47-2Ts3XW;7s^~=JjR;nfPbdgXBlYaoimvwvq literal 0 HcmV?d00001 diff --git a/java/greenfoot/zero-program/Bee.ctxt b/java/greenfoot/zero-program/Bee.ctxt new file mode 100644 index 0000000..2a43262 --- /dev/null +++ b/java/greenfoot/zero-program/Bee.ctxt @@ -0,0 +1,7 @@ +#BlueJ class context +comment0.target=Bee +comment0.text=\n\ Write\ a\ description\ of\ class\ Bee\ here.\n\ \n\ @author\ (your\ name)\ \n\ @version\ (a\ version\ number\ or\ a\ date)\n +comment1.params= +comment1.target=void\ act() +comment1.text=\n\ Act\ -\ do\ whatever\ the\ Bee\ wants\ to\ do.\ This\ method\ is\ called\ whenever\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\n +numComments=2 diff --git a/java/greenfoot/zero-program/Bee.java b/java/greenfoot/zero-program/Bee.java new file mode 100644 index 0000000..8df10a5 --- /dev/null +++ b/java/greenfoot/zero-program/Bee.java @@ -0,0 +1,57 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class Bee here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class Bee extends Actor +{ + static int x, y; + /** + * Act - do whatever the Bee wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + // Add your action code here. + /*if (Greenfoot.isKeyDown("w")) { + setLocation(getX(), getY() - 1); + } else if (Greenfoot.isKeyDown("s")) { + setLocation(getX(), getY() + 1); + } else if (Greenfoot.isKeyDown("a")) { + setLocation(getX() - 1, getY()); + } else if (Greenfoot.isKeyDown("d")) { + setLocation(getX() + 1, getY()); + }*/ + if (Greenfoot.isKeyDown("w")) { + setRotation(-90); + move(5); + } else if (Greenfoot.isKeyDown("s")) { + setRotation(90); + move(5); + } else if (Greenfoot.isKeyDown("a")) { + setRotation(180); + move(5); + } else if (Greenfoot.isKeyDown("d")) { + setRotation(0); + move(5); + } + /*if (Greenfoot.isKeyDown("w")) { + turn(-1); + move(5); + } else if (Greenfoot.isKeyDown("s")) { + turn(1); + move(5); + } else if (Greenfoot.isKeyDown("a")) { + turn(-1); + move(5); + } else if (Greenfoot.isKeyDown("d")) { + turn(1); + move(5); + }*/ + this.x = getX(); + this.y = getY(); + } +} diff --git a/java/greenfoot/zero-program/Bug.class b/java/greenfoot/zero-program/Bug.class new file mode 100644 index 0000000000000000000000000000000000000000..0ee762a9aca7a857ae1056c7c485419fdadb4db8 GIT binary patch literal 1141 zcmaJrhVVtuY>}7C>BI(&ai_@l8Ja9jH2;4%QHJWt&lf}_W!u~#l6nM^`k1RPsFMT1~=JIoRINDmQn7>!hEm}-qsol&Z=o+(z#)a%5t zD5ap6K~gmE6J96ffqDvsShf#5uc~OK0$PsHdWcTdT}AM3=O^^l{2$Sww&M5_g504a zgbxu>TQ)9v&*BBZiDylh5cL+v&_q>sk&M##V+u%Y9^_VEc)>r19*u+7#PAH e;&_Jy-edT}2o5fczz0t<))S+yuMx8g{l5XyF4Bkq literal 0 HcmV?d00001 diff --git a/java/greenfoot/zero-program/Bug.ctxt b/java/greenfoot/zero-program/Bug.ctxt new file mode 100644 index 0000000..2075eb6 --- /dev/null +++ b/java/greenfoot/zero-program/Bug.ctxt @@ -0,0 +1,9 @@ +#BlueJ class context +comment0.target=Bug +comment0.text=\n\ Write\ a\ description\ of\ class\ Bug\ here.\n\ \n\ @author\ (your\ name)\ \n\ @version\ (a\ version\ number\ or\ a\ date)\n +comment1.params= +comment1.target=void\ act() +comment1.text=\n\ Act\ -\ do\ whatever\ the\ Bug\ wants\ to\ do.\ This\ method\ is\ called\ whenever\n\ the\ 'Act'\ or\ 'Run'\ button\ gets\ pressed\ in\ the\ environment.\n +comment2.params= +comment2.target=void\ movement() +numComments=3 diff --git a/java/greenfoot/zero-program/Bug.java b/java/greenfoot/zero-program/Bug.java new file mode 100644 index 0000000..ebf7b33 --- /dev/null +++ b/java/greenfoot/zero-program/Bug.java @@ -0,0 +1,44 @@ + import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class Bug here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class Bug extends Actor +{ + GreenfootSound sound = new GreenfootSound("ahhh.wav"); + /** + * Act - do whatever the Bug wants to do. This method is called whenever + * the 'Act' or 'Run' button gets pressed in the environment. + */ + public void act() + { + // Add your action code here. + movement(); + if (isTouching(Bee.class)) { + sound.play(); + removeTouching(Bee.class); + Greenfoot.stop(); + } + } + + public void movement() { + move((int)(Math.random() * 5) + 1); + if (getX() < Bee.x) { + setRotation(0); + move((int)(Math.random() * 5) + 1); + } else if (getX() > Bee.x) { + setRotation(180); + move((int)(Math.random() * 5) + 1); + } + if (getY() < Bee.y) { + setRotation(90); + move((int)(Math.random() * 5) + 1); + } else if (getY() > Bee.y) { + setRotation(270); + move((int)(Math.random() * 5) + 1); + } + } +} diff --git a/java/greenfoot/zero-program/MyWorld.class b/java/greenfoot/zero-program/MyWorld.class new file mode 100644 index 0000000000000000000000000000000000000000..e6317f77afc74cfcc9dbb9523b8ae2f853f2ae06 GIT binary patch literal 613 zcmYjN+fLg+6r447OpGB3;ZiOI0xbkn=wlzKDgi2LBvT$hTppcxag0oijE%$}^pRgd zf*`dLAHYYU&KgS~%d=-@&t>*Jzx;gy@C_RlhB0g6qXi9fW!RWEv0%Y?B@K(pqJkv_ zpA>vHv20>RV4y9ffZ=XSxv5wdX&t0dcoz%pw{s`gxgLe9efd}Xe4Thx$n2vJ~y;`YO`WRHP>GV-HBBEtP zO6z0jF7H21oP$Xm!w|+X!LNZ2+`$yKFpZy>p#nP0Cu5R#$`{vDxLPAucjB#KDHoRB N6^f!zu%#-W`42jkWdZ;I literal 0 HcmV?d00001 diff --git a/java/greenfoot/zero-program/MyWorld.ctxt b/java/greenfoot/zero-program/MyWorld.ctxt new file mode 100644 index 0000000..6cd6349 --- /dev/null +++ b/java/greenfoot/zero-program/MyWorld.ctxt @@ -0,0 +1,10 @@ +#BlueJ class context +comment0.target=MyWorld +comment0.text=\n\ Write\ a\ description\ of\ class\ MyWorld\ here.\n\ \n\ @author\ (your\ name)\ \n\ @version\ (a\ version\ number\ or\ a\ date)\n +comment1.params= +comment1.target=MyWorld() +comment1.text=\n\ Constructor\ for\ objects\ of\ class\ MyWorld.\n\ \n +comment2.params= +comment2.target=void\ prepare() +comment2.text=\n\ Prepare\ the\ world\ for\ the\ start\ of\ the\ program.\n\ That\ is\:\ create\ the\ initial\ objects\ and\ add\ them\ to\ the\ world.\n +numComments=3 diff --git a/java/greenfoot/zero-program/MyWorld.java b/java/greenfoot/zero-program/MyWorld.java new file mode 100644 index 0000000..2de20c4 --- /dev/null +++ b/java/greenfoot/zero-program/MyWorld.java @@ -0,0 +1,36 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class MyWorld here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class MyWorld extends World +{ + Bee bee; + Bug bug; + /** + * Constructor for objects of class MyWorld. + * + */ + public MyWorld() + { + // Create a new world with 600x400 cells with a cell size of 1x1 pixels. + super(600, 400, 1); + bee = new Bee(); + bug = new Bug(); + + addObject(bee, 15, 15); + addObject(bug, getWidth() / 2, getHeight() / 2); + prepare(); + } + + /** + * Prepare the world for the start of the program. + * That is: create the initial objects and add them to the world. + */ + private void prepare() + { + } +} diff --git a/java/greenfoot/zero-program/README.TXT b/java/greenfoot/zero-program/README.TXT new file mode 100644 index 0000000..2bea2dd --- /dev/null +++ b/java/greenfoot/zero-program/README.TXT @@ -0,0 +1,12 @@ +------------------------------------------------------------------------ +This is the project README file. Here, you should describe your project. +Tell the reader (someone who does not know anything about this project) +all he/she needs to know. The comments should usually include at least: +------------------------------------------------------------------------ + +PROJECT TITLE: +PURPOSE OF PROJECT: +VERSION or DATE: +HOW TO START THIS PROJECT: +AUTHORS: +USER INSTRUCTIONS: diff --git a/java/greenfoot/zero-program/images/bee.png b/java/greenfoot/zero-program/images/bee.png new file mode 100644 index 0000000000000000000000000000000000000000..3721979155edad4ea31422612ace2db5c5c45bda GIT binary patch literal 1768 zcmVP)4T3T94N=iC9Iw>hB85tP>0A>IH0RMh%pwS7)0000WbW%=J z|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|Ns90TwELN0000PbVXQnQ*UN;cVTj6 z07r6RaA;{`LvL<&WpZ?7ay4B@?f?J<@<~KNRCt`cnTvL#I1E6WnHGxIOCgSpU%3DO zmm|p!AOVv}_pH*>lcwQDZwcq^`zaYf#O3sDZ~r&#GB{_gF_Rj8OdE7?D8SR=40lGm zco5mPUE6-VPh$EJZSWyT-m;FdmVf-xVyZf?PP_Op@t#F#KmL8!LcB~HLI^k1i{#3i z=3P~BRoWZ~7sX3ZuTfLY)*4NOP;guZL)Pl464)9ogcU9X{N1%m>z8O#rXfcLNA|u; zZH`T?(9lrMdIvdzhLVOIe>W9VPiUAOMuPucNNK{Y{t=A?^o!Cs^D52ohyX(qt^0KL zW!-W}eP9vXb=DnUazZoG$dU5HMCH2H*;i?jXG2lk6`~;BYuSr_OHs&)2RQXQ%|+T3 zv_zPN=epvy8ck95CPVQzw3Du@x$QLH5XS@M2gex5P-~Yby7fu5oNY|kRC}rxLaKO( z=vO6m&voOh2tIA~%e16hDXuH)zG`K4PJ>c_AD7b2!&I%oYBUq>#XD1Jl{K2se#MbD zX@O>It@4;AymLMlJ<&M0k4w-^DFZ8s)kX|E++CXRB#;<9)~KgI*x-x?n8h7OPj_1m z(syVB*cfRtw+~9*5lyvLf3s)M{n+-xx|?%8h-bEeCL#{xq8m$rCRJk}fvs71Dd`D?OMmpWA^0pr{tw zKxIi3meN6QXmX+TmNtm7GmC=+I{hf=2|@m3LxDiurZ zs((bk;f~XKrwA|yKP`1S%=101=w{hw;M0~9)4Lsg+9Xu)a3`_Ug3G*2+r)HJ3!tYG z*!Zr}=~9+6E7g3jX!e1&&K0+g zZfu;{R*njSr5m5SM_P`>L*~UKv+@3t-$=V^c>+7!xTbaGMh}kU(X>>|YVWGrZfTa< zb*AX$oY_a!X&`pJ5t7L;K49BAdVie;9o;U@g1bS^EG(G%XkD$+E-^`%w9+gC%j)Uq zgr!PTcx%K<_D5+Y?3J(3M6i9ivoF$2`sgICO0(dqq|*x8e3|JWs3+%0zE8BcMe9OtH7T7 z25P&LgyWN`C%?~H@#aI#o~FU1#w`pUd&ftAPkT!K00030{{sM<^U!#1sb~WL0000< KMNUMnLSTYM@NRVg literal 0 HcmV?d00001 diff --git a/java/greenfoot/zero-program/images/fingerprint.jpg b/java/greenfoot/zero-program/images/fingerprint.jpg new file mode 100644 index 0000000000000000000000000000000000000000..eb2ba2163b3cca2bddc43ce6d62e5bf729d67aa0 GIT binary patch literal 3907 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 literal 0 HcmV?d00001 diff --git a/java/greenfoot/zero-program/images/ladybug_02.png b/java/greenfoot/zero-program/images/ladybug_02.png new file mode 100644 index 0000000000000000000000000000000000000000..4068fdf87f529c98045eb92b5d26c37128a56e93 GIT binary patch literal 6248 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 Date: Thu, 18 Jun 2020 23:28:15 -0400 Subject: [PATCH 002/186] update --- java/greenfoot/bump-babies/doc/MyWorld.html | 182 ++++ .../greenfoot/bump-babies/doc/allclasses.html | 20 + .../bump-babies/doc/constant-values.html | 35 + java/greenfoot/bump-babies/doc/element-list | 1 + java/greenfoot/bump-babies/doc/index.html | 23 + java/greenfoot/bump-babies/doc/logfile.txt | 42 + .../bump-babies/doc/package-summary.html | 53 + java/greenfoot/bump-babies/doc/script.js | 139 +++ java/greenfoot/bump-babies/doc/stylesheet.css | 906 ++++++++++++++++++ java/greenfoot/bump-babies/project.greenfoot | 14 +- java/greenfoot/zero-program/Bee.class | Bin 718 -> 793 bytes java/greenfoot/zero-program/Bee.java | 30 +- java/greenfoot/zero-program/Bug.class | Bin 1141 -> 1156 bytes java/greenfoot/zero-program/Bug.java | 12 +- 14 files changed, 1419 insertions(+), 38 deletions(-) create mode 100644 java/greenfoot/bump-babies/doc/MyWorld.html create mode 100644 java/greenfoot/bump-babies/doc/allclasses.html create mode 100644 java/greenfoot/bump-babies/doc/constant-values.html create mode 100644 java/greenfoot/bump-babies/doc/element-list create mode 100644 java/greenfoot/bump-babies/doc/index.html create mode 100644 java/greenfoot/bump-babies/doc/logfile.txt create mode 100644 java/greenfoot/bump-babies/doc/package-summary.html create mode 100644 java/greenfoot/bump-babies/doc/script.js create mode 100644 java/greenfoot/bump-babies/doc/stylesheet.css diff --git a/java/greenfoot/bump-babies/doc/MyWorld.html b/java/greenfoot/bump-babies/doc/MyWorld.html new file mode 100644 index 0000000..d8616e8 --- /dev/null +++ b/java/greenfoot/bump-babies/doc/MyWorld.html @@ -0,0 +1,182 @@ + + + + + +MyWorld + + + + + + + + + +
+
+

Class MyWorld

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • greenfoot.World
    • +
    • +
        +
      • MyWorld
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    public class MyWorld
    +extends greenfoot.World
    +
    Write a description of class MyWorld here.
    +
    +
    Version:
    +
    (a version number or a date)
    +
    Author:
    +
    (your name)
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + +
      Constructors 
      ConstructorDescription
      MyWorld() +
      Constructor for objects of class MyWorld.
      +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voidremove​(greenfoot.Actor actor) 
      +
        +
      • + + +

        Methods inherited from class greenfoot.World

        +act, addObject, getBackground, getCellSize, getColorAt, getHeight, getObjects, getObjectsAt, getWidth, numberOfObjects, removeObject, removeObjects, repaint, setActOrder, setBackground, setBackground, setPaintOrder, showText, started, stopped
      • +
      +
        +
      • + + +

        Methods inherited from class java.lang.Object

        +clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • +
      +
    • +
    +
    +
  • +
+
+
+
    +
  • + +
    +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        MyWorld

        +
        public MyWorld()
        +
        Constructor for objects of class MyWorld.
        +
      • +
      +
    • +
    +
    + +
    +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        remove

        +
        public void remove​(greenfoot.Actor actor)
        +
      • +
      +
    • +
    +
    +
  • +
+
+
+
+ + + diff --git a/java/greenfoot/bump-babies/doc/allclasses.html b/java/greenfoot/bump-babies/doc/allclasses.html new file mode 100644 index 0000000..48f3f0a --- /dev/null +++ b/java/greenfoot/bump-babies/doc/allclasses.html @@ -0,0 +1,20 @@ + + + + + +All Classes + + + + + + +

All Classes

+
+ +
+ + diff --git a/java/greenfoot/bump-babies/doc/constant-values.html b/java/greenfoot/bump-babies/doc/constant-values.html new file mode 100644 index 0000000..3af15da --- /dev/null +++ b/java/greenfoot/bump-babies/doc/constant-values.html @@ -0,0 +1,35 @@ + + + + + +Constant Field Values + + + + + + + + +
+
+

Constant Field Values

+
+

Contents

+
+
+
+ + diff --git a/java/greenfoot/bump-babies/doc/element-list b/java/greenfoot/bump-babies/doc/element-list new file mode 100644 index 0000000..147af06 --- /dev/null +++ b/java/greenfoot/bump-babies/doc/element-list @@ -0,0 +1 @@ +unnamed package diff --git a/java/greenfoot/bump-babies/doc/index.html b/java/greenfoot/bump-babies/doc/index.html new file mode 100644 index 0000000..f6138a4 --- /dev/null +++ b/java/greenfoot/bump-babies/doc/index.html @@ -0,0 +1,23 @@ + + + + + +Generated Documentation (Untitled) + + + + + + + +
+ +

MyWorld.html

+
+ + diff --git a/java/greenfoot/bump-babies/doc/logfile.txt b/java/greenfoot/bump-babies/doc/logfile.txt new file mode 100644 index 0000000..766bf98 --- /dev/null +++ b/java/greenfoot/bump-babies/doc/logfile.txt @@ -0,0 +1,42 @@ +Class documentation +<---- javadoc command: ----> +/usr/share/greenfoot/jdk/bin/javadoc +-author +-version +-nodeprecated +-protected +-Xdoclint:none +-noindex +-notree +-nohelp +-nonavbar +-source +11 +-classpath +/usr/share/greenfoot/extensions/greenfoot.jar:/usr/share/greenfoot/bluejcore.jar:/usr/share/greenfoot/bluejeditor.jar:/usr/share/greenfoot/bluejext.jar:/usr/share/greenfoot/junit-4.11.jar:/usr/share/greenfoot/hamcrest-core-1.3.jar:/usr/share/greenfoot/bluej.jar:/usr/share/greenfoot/classgraph-4.2.6.jar:/usr/share/greenfoot/diffutils-1.2.1.jar:/usr/share/greenfoot/commons-logging-api-1.1.2.jar:/usr/share/greenfoot/jl1.0.1.jar:/usr/share/greenfoot/opencsv-2.3.jar:/usr/share/greenfoot/xom-1.2.9.jar:/usr/share/greenfoot/lang-stride.jar:/usr/share/greenfoot/nsmenufx-2.1.4.jar:/usr/share/greenfoot/richtextfx-fat-0.9.0.jar:/usr/share/greenfoot/guava-17.0.jar:/usr/share/greenfoot/httpclient-4.1.1.jar:/usr/share/greenfoot/httpcore-4.1.jar:/usr/share/greenfoot/httpmime-4.1.1.jar:/usr/share/greenfoot/javafx/lib/javafx.base.jar:/usr/share/greenfoot/javafx/lib/javafx.controls.jar:/usr/share/greenfoot/javafx/lib/javafx.fxml.jar:/usr/share/greenfoot/javafx/lib/javafx.graphics.jar:/usr/share/greenfoot/javafx/lib/javafx.media.jar:/usr/share/greenfoot/javafx/lib/javafx.properties.jar:/usr/share/greenfoot/javafx/lib/javafx.swing.jar:/usr/share/greenfoot/javafx/lib/javafx.web.jar:/home/super/git/lightning-projects/java/greenfoot/bump-babies +-d +/home/super/git/lightning-projects/java/greenfoot/bump-babies/doc +-encoding +UTF-8 +-charset +UTF-8 +/home/super/git/lightning-projects/java/greenfoot/bump-babies/MyWorld.java +<---- end of javadoc command ----> +Loading source file /home/super/git/lightning-projects/java/greenfoot/bump-babies/MyWorld.java... +Constructing Javadoc information... +warning: unknown enum constant Tag.Any + reason: class file for threadchecker.Tag not found +warning: unknown enum constant Tag.Any +warning: unknown enum constant Tag.Any +warning: unknown enum constant Tag.Any +Standard Doclet version 11.0.2 +Building tree for all the packages and classes... +Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/MyWorld.html... +Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/package-summary.html... +Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/constant-values.html... +Building index for all the packages and classes... +Building index for all classes... +Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/allclasses.html... +Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/allclasses.html... +Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/index.html... +4 warnings diff --git a/java/greenfoot/bump-babies/doc/package-summary.html b/java/greenfoot/bump-babies/doc/package-summary.html new file mode 100644 index 0000000..c225a3f --- /dev/null +++ b/java/greenfoot/bump-babies/doc/package-summary.html @@ -0,0 +1,53 @@ + + + + + +<Unnamed> + + + + + + + + +
+
+

Package <Unnamed>

+
+
+
    +
  • + + + + + + + + + + + + +
    Class Summary 
    ClassDescription
    MyWorld +
    Write a description of class MyWorld here.
    +
    +
  • +
+
+
+ + diff --git a/java/greenfoot/bump-babies/doc/script.js b/java/greenfoot/bump-babies/doc/script.js new file mode 100644 index 0000000..0eaaf53 --- /dev/null +++ b/java/greenfoot/bump-babies/doc/script.js @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; +function loadScripts(doc, tag) { + createElem(doc, tag, 'jquery/jszip/dist/jszip.js'); + createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js'); + if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 || + window.navigator.userAgent.indexOf('Edge/') > 0) { + createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js'); + } + createElem(doc, tag, 'search.js'); + + $.get(pathtoroot + "module-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) { + var zip = new JSZip(data); + zip.load(data); + moduleSearchIndex = JSON.parse(zip.file("module-search-index.json").asText()); + }); + }); + $.get(pathtoroot + "package-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) { + var zip = new JSZip(data); + zip.load(data); + packageSearchIndex = JSON.parse(zip.file("package-search-index.json").asText()); + }); + }); + $.get(pathtoroot + "type-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) { + var zip = new JSZip(data); + zip.load(data); + typeSearchIndex = JSON.parse(zip.file("type-search-index.json").asText()); + }); + }); + $.get(pathtoroot + "member-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) { + var zip = new JSZip(data); + zip.load(data); + memberSearchIndex = JSON.parse(zip.file("member-search-index.json").asText()); + }); + }); + $.get(pathtoroot + "tag-search-index.zip") + .done(function() { + JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) { + var zip = new JSZip(data); + zip.load(data); + tagSearchIndex = JSON.parse(zip.file("tag-search-index.json").asText()); + }); + }); + if (!moduleSearchIndex) { + createElem(doc, tag, 'module-search-index.js'); + } + if (!packageSearchIndex) { + createElem(doc, tag, 'package-search-index.js'); + } + if (!typeSearchIndex) { + createElem(doc, tag, 'type-search-index.js'); + } + if (!memberSearchIndex) { + createElem(doc, tag, 'member-search-index.js'); + } + if (!tagSearchIndex) { + createElem(doc, tag, 'tag-search-index.js'); + } + $(window).resize(function() { + $('.navPadding').css('padding-top', $('.fixedNav').css("height")); + }); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +function show(type) { + count = 0; + for (var key in data) { + var row = document.getElementById(key); + if ((data[key] & type) !== 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; + } + else + row.style.display = 'none'; + } + updateTabs(type); +} + +function updateTabs(type) { + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "" + tabs[value][1] + ""; + } + } +} + +function updateModuleFrame(pFrame, cFrame) { + top.packageFrame.location = pFrame; + top.classFrame.location = cFrame; +} diff --git a/java/greenfoot/bump-babies/doc/stylesheet.css b/java/greenfoot/bump-babies/doc/stylesheet.css new file mode 100644 index 0000000..fa24676 --- /dev/null +++ b/java/greenfoot/bump-babies/doc/stylesheet.css @@ -0,0 +1,906 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:#bb7a2a; +} +a[name] { + color:#353833; +} +a[name]:before, a[name]:target, a[id]:before, a[id]:target { + content:""; + display:inline-block; + position:relative; + padding-top:129px; + margin-top:-129px; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; + font-style:italic; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} + +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:11px; + z-index:200; + margin-top:-9px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* + * Styles for navigation bar. + */ +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.navPadding { + padding-top: 107px; +} +.fixedNav { + position:fixed; + width:100%; + z-index:999; + background-color:#ffffff; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.subNav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +ul.navListSearch { + float:right; + margin:0 0 0 0; + padding:0; +} +ul.navListSearch li { + list-style:none; + float:right; + padding: 5px 6px; + text-transform:uppercase; +} +ul.navListSearch li label { + position:relative; + right:-16px; +} +ul.subNavList li { + list-style:none; + float:left; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skipNav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Styles for page header and footer. + */ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexNav { + position:relative; + font-size:12px; + background-color:#dee3e9; +} +.indexNav ul { + margin-top:0; + padding:5px; +} +.indexNav ul li { + display:inline; + list-style-type:none; + padding-right:10px; + text-transform:uppercase; +} +.indexNav h1 { + font-size:13px; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* + * Styles for headings. + */ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* + * Styles for page layout containers. + */ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer, +.allClassesContainer, .allPackagesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* + * Styles for tables. + */ +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary, +.requiresSummary, .packagesSummary, .providesSummary, .usesSummary { + width:100%; + border-spacing:0; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption, +.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.constantsSummary caption a:link, .deprecatedSummary caption a:link, +.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link, +.usesSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover, +.usesSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.constantsSummary caption a:active, .deprecatedSummary caption a:active, +.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active, +.usesSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.constantsSummary caption a:visited, .deprecatedSummary caption a:visited, +.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited, +.usesSummary caption a:visited { + color:#FFFFFF; +} +.useSummary caption a:link, .useSummary caption a:hover, .useSummary caption a:active, +.useSummary caption a:visited { + color:#1f389c; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span, +.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span, +.usesSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span, +.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; +} +.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span, +.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#4D7A97; + height:16px; +} +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab, +.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab, +.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab, +.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; +} +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd, +.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd, +.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd, +.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; +} +.rowColor th, .altColor th { + font-weight:normal; +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td, +.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td { + text-align:left; + padding:0px 0px 12px 10px; +} +th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th, +.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td, +.constantsSummary td { + vertical-align:top; + padding-right:0px; + padding-top:8px; + padding-bottom:3px; +} +th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th, +.packagesSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; +} +td.colFirst, th.colFirst { + font-size:13px; +} +td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast { + font-size:13px; +} +.constantsSummary th, .packagesSummary th { + font-size:13px; +} +.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst, +.providesSummary td.colLast { + white-space:normal; + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.requiresSummary td.colFirst, .requiresSummary th.colFirst, +.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th, +.usesSummary td.colFirst, .usesSummary th.colFirst, +.providesSummary td.colFirst, .providesSummary th.colFirst, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName, +.typeSummary td.colFirst, .typeSummary th.colFirst { + vertical-align:top; +} +.packagesSummary th.colLast, .packagesSummary td.colLast { + white-space:normal; +} +td.colFirst a:link, td.colFirst a:visited, +td.colSecond a:link, td.colSecond a:visited, +th.colFirst a:link, th.colFirst a:visited, +th.colSecond a:link, th.colSecond a:visited, +th.colConstructorName a:link, th.colConstructorName a:visited, +th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, +.constantValuesContainer td a:link, .constantValuesContainer td a:visited, +.allClassesContainer td a:link, .allClassesContainer td a:visited, +.allPackagesContainer td a:link, .allPackagesContainer td a:visited { + font-weight:bold; +} +.tableSubHeadingColor { + background-color:#EEEEFF; +} +.altColor, .altColor th { + background-color:#FFFFFF; +} +.rowColor, .rowColor th { + background-color:#EEEEEF; +} +/* + * Styles for contents. + */ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +td.colLast div { + padding-top:0px; +} +td.colLast a { + padding-bottom:3px; +} +/* + * Styles for formatting effect. + */ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:3px 10px 2px 0px; + color:#474747; +} +.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink, +.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType, +.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel, +.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink { + font-weight:bold; +} +.deprecationComment, .emphasizedPhrase, .interfaceName { + font-style:italic; +} +.deprecationBlock { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { + font-style:normal; +} +div.contentContainer ul.blockList li.blockList h2 { + padding-bottom:0px; +} +/* + * Styles for IFRAME. + */ +.mainContainer { + margin:0 auto; + padding:0; + height:100%; + width:100%; + position:fixed; + top:0; + left:0; +} +.leftContainer { + height:100%; + position:fixed; + width:320px; +} +.leftTop { + position:relative; + float:left; + width:315px; + top:0; + left:0; + height:30%; + border-right:6px solid #ccc; + border-bottom:6px solid #ccc; +} +.leftBottom { + position:relative; + float:left; + width:315px; + bottom:0; + left:0; + height:70%; + border-right:6px solid #ccc; + border-top:1px solid #000; +} +.rightContainer { + position:absolute; + left:320px; + top:0; + bottom:0; + height:100%; + right:0; + border-left:1px solid #000; +} +.rightIframe { + margin:0; + padding:0; + height:100%; + right:30px; + width:100%; + overflow:visible; + margin-bottom:30px; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:#4D7A97; + color:#FFFFFF; +} +.resultItem { + font-size:13px; +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:scroll; + overflow-x:scroll; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:999999; +} +ul.ui-autocomplete li { + float:left; + clear:both; + width:100%; +} +.resultHighlight { + font-weight:bold; +} +#search { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + padding-left:20px; + position:relative; + right:-18px; +} +#reset { + background-color: rgb(255,255,255); + background-image:url('resources/x.png'); + background-position:center; + background-repeat:no-repeat; + background-size:12px; + border:0 none; + width:16px; + height:17px; + position:relative; + left:-4px; + top:-4px; + font-size:0px; +} +.watermark { + color:#545454; +} +.searchTagDescResult { + font-style:italic; + font-size:11px; +} +.searchTagHolderResult { + font-style:italic; + font-size:12px; +} +.searchTagResult:before, .searchTagResult:target { + color:red; +} +.moduleGraph span { + display:none; + position:absolute; +} +.moduleGraph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.methodSignature { + white-space:normal; +} + +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid black; +} +table.striped { + border-collapse: collapse; + border: 1px solid black; +} +table.striped > thead { + background-color: #E3E3E3; +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid black; +} +table.striped > tbody > tr:nth-child(even) { + background-color: #EEE +} +table.striped > tbody > tr:nth-child(odd) { + background-color: #FFF +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; +} +table.striped > tbody > tr > th { + font-weight: normal; +} diff --git a/java/greenfoot/bump-babies/project.greenfoot b/java/greenfoot/bump-babies/project.greenfoot index f509dab..9cd36b7 100644 --- a/java/greenfoot/bump-babies/project.greenfoot +++ b/java/greenfoot/bump-babies/project.greenfoot @@ -14,11 +14,11 @@ dependency3.type=UsesDependency dependency4.from=Fish dependency4.to=MyWorld dependency4.type=UsesDependency -editor.fx.0.height=0 -editor.fx.0.width=0 -editor.fx.0.x=0 -editor.fx.0.y=0 -height=585 +editor.fx.0.height=1059 +editor.fx.0.width=1090 +editor.fx.0.x=1268 +editor.fx.0.y=605 +height=847 package.numDependencies=4 package.numTargets=3 project.charset=UTF-8 @@ -51,13 +51,13 @@ target2.x=0 target2.y=0 target3.height=50 target3.name=MyWorld -target3.showInterface=false +target3.showInterface=true target3.type=ClassTarget target3.width=80 target3.x=0 target3.y=0 version=3.0.0 -width=825 +width=1142 world.lastInstantiated=MyWorld xPosition=1385 yPosition=610 diff --git a/java/greenfoot/zero-program/Bee.class b/java/greenfoot/zero-program/Bee.class index d04022a9ce9898e79821d35e04f989ee676bce0e..12cab88aa0d17a0e21f62a14cd9def16c20d74e0 100644 GIT binary patch delta 540 zcmYk1IZqo=6h_bU`aFyodmto`uxEiGF?#~UNtH4M5=cl;Apuzhh(+#jg>V~D!4Duc z0y&6+A3(tmN`dmdi3w@${oXxqJ2&a0%GO`y3~zl}X!R+(^nljGwArr~^+iZv9aFN7#1n%a#qdb0 zVRfUPj(%ZIW8AKqiHA8ll>NUOc+3;644wZD|JL>Ha4k$+kUXX-OsOAHj0z{!y6&`f zGCx@ivkh$T@Zvo!hq(szVj4z8&hK$&*wny&jPp_Q4n_-6o%|WiaR|;RIDsTi;Qdzu zwH6AJZj*YKYDqtzkak&HKFV!QPD`@-CZ|p9*rkU(dO4u)Kl56{yi50a*g`(Y2hBlF K=G~ek==lTXB0~cJ delta 465 zcmYk3IZwkt5QRVIupQ$-Y)H6rpI{6L5H2B60HUEugODhYkdR1EL757P7E$F7kQxOA zM8OZBpycNuW(@&~oq6xg&g?vGSAUQ0zkR;E0voJZjFK_QTI9%E#3`syG%1;sO)832 zV-ji#%_%f*;2A93wr;ju#x=An1K(zmC7U`8n`IiJUdlO>b8fT3s?8V)o2Ehzi927r z?!@J72w|$4AX8NWMMEZ|F(IrjS(6;~p3okGa#Ermh%r)v?e7arG9^r7`nUN*#;fMG z8+s<(#qkpN10tR|Alm7%>*_=KWGMIWT_aFk&*AY;PP%3w$Gz}S^p3p&u|8G+M*7%l z!7ysU9dQL|ag`CDSy?nEF;AHSK1G@bl-L%!M}*8XueBLj6J OsbtC#SF^%Gq`v^h+A|&i diff --git a/java/greenfoot/zero-program/Bee.java b/java/greenfoot/zero-program/Bee.java index 8df10a5..ca66e94 100644 --- a/java/greenfoot/zero-program/Bee.java +++ b/java/greenfoot/zero-program/Bee.java @@ -16,41 +16,19 @@ public class Bee extends Actor public void act() { // Add your action code here. - /*if (Greenfoot.isKeyDown("w")) { - setLocation(getX(), getY() - 1); - } else if (Greenfoot.isKeyDown("s")) { - setLocation(getX(), getY() + 1); - } else if (Greenfoot.isKeyDown("a")) { - setLocation(getX() - 1, getY()); - } else if (Greenfoot.isKeyDown("d")) { - setLocation(getX() + 1, getY()); - }*/ - if (Greenfoot.isKeyDown("w")) { + if (Greenfoot.isKeyDown("w") || Greenfoot.isKeyDown("up")) { setRotation(-90); move(5); - } else if (Greenfoot.isKeyDown("s")) { + } else if (Greenfoot.isKeyDown("s") || Greenfoot.isKeyDown("down")) { setRotation(90); move(5); - } else if (Greenfoot.isKeyDown("a")) { + } else if (Greenfoot.isKeyDown("a") || Greenfoot.isKeyDown("left")) { setRotation(180); move(5); - } else if (Greenfoot.isKeyDown("d")) { + } else if (Greenfoot.isKeyDown("d") || Greenfoot.isKeyDown("right")) { setRotation(0); move(5); } - /*if (Greenfoot.isKeyDown("w")) { - turn(-1); - move(5); - } else if (Greenfoot.isKeyDown("s")) { - turn(1); - move(5); - } else if (Greenfoot.isKeyDown("a")) { - turn(-1); - move(5); - } else if (Greenfoot.isKeyDown("d")) { - turn(1); - move(5); - }*/ this.x = getX(); this.y = getY(); } diff --git a/java/greenfoot/zero-program/Bug.class b/java/greenfoot/zero-program/Bug.class index 0ee762a9aca7a857ae1056c7c485419fdadb4db8..2351435b1f2877c77d34a4c8a1e1a11eb9e50a0d 100644 GIT binary patch delta 670 zcmZ9INpBND5QV><88h*uaaOS7*l}VTXFN^_iy;uQkg&ys{eXZIk!&FpK_u{jNC|HF-~+8Kf1(63)ty{fKP-+Erf>tBC<{sPQ$-D8-N%VZC} zhebKg5P>I9ahWprvdzFa zrm*T;+rQFwl2n*c{*5H_ngblvjFVE>D~*O`fkn*{Da~1yT~;*b%;P*4G#ANhF0txT z(_CgvbA?sSRg=3$KHO35qVu59yd%y0vV5rI@dS^v0j!k>1+(%4;@G>?ZTL?PnUG}$01$Ku-@QJ?B*Bft~`yKkmq%E8F8Eyzc~^z?vU)M zK%QyADn*tlvBo4f@mZ(L1_4i~&=Q4lK0deSDza|zLK@`7v%~XlBTE{awK_j2D3#5b KtrR6O-|a>duzS4MyQg{` zH6VHNH3&Y6MS}R?59t39d{Nw!2CQUY*6hog#a{cZ|EI6I_viZ$V2;}X2AQy#^f48{ zBI)NSsepiElQ!?PDbJWF6JVC(0ZwqTdnqX2<(T>@1E>AioH5Z^19K*ww>f9Cpy=8v zRf^9P;nl*X>lUBC-+nV3xLc}hK6RHjUbzZiwo=Hv$ZzL0A;R^9O0I`EuQ|q$W|XkP zlXYFq1ukkX5!NiSWOG@QC2Vs=bCqkFWv**(kki~`MYC$sHIv?ArT#%R>Uk@S*r^7(z=x z^>#46v}QHV7w8p?2u5W)F~K+)@jEY@TNEQ}jB}p}9y3XiDRxLwB{j`E(g#*mJFtXq PyqVZYOni@tw8i*eIlE-5 diff --git a/java/greenfoot/zero-program/Bug.java b/java/greenfoot/zero-program/Bug.java index ebf7b33..f8bb1a7 100644 --- a/java/greenfoot/zero-program/Bug.java +++ b/java/greenfoot/zero-program/Bug.java @@ -25,20 +25,22 @@ public void act() } public void movement() { - move((int)(Math.random() * 5) + 1); + int dx = 2; + int dy = 2; + if (getX() < Bee.x) { setRotation(0); - move((int)(Math.random() * 5) + 1); + move((int)(Math.random() * dx) + 1); } else if (getX() > Bee.x) { setRotation(180); - move((int)(Math.random() * 5) + 1); + move((int)(Math.random() * dx) + 1); } if (getY() < Bee.y) { setRotation(90); - move((int)(Math.random() * 5) + 1); + move((int)(Math.random() * dy) + 1); } else if (getY() > Bee.y) { setRotation(270); - move((int)(Math.random() * 5) + 1); + move((int)(Math.random() * dy) + 1); } } } From 610c2456e0e00f28364ff431965efbdc81b5ab6b Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Thu, 18 Jun 2020 23:30:17 -0400 Subject: [PATCH 003/186] remove class --- java/greenfoot/bump-babies/Baby.class | Bin 1310 -> 0 bytes java/greenfoot/bump-babies/Fish.class | Bin 1025 -> 0 bytes java/greenfoot/bump-babies/MyWorld.class | Bin 2001 -> 0 bytes java/greenfoot/race-car/GreenCar.class | Bin 1444 -> 0 bytes java/greenfoot/race-car/MyWorld.class | Bin 2971 -> 0 bytes java/greenfoot/race-car/RedCar.class | Bin 1572 -> 0 bytes java/greenfoot/race-car/Score.class | Bin 1255 -> 0 bytes java/greenfoot/zero-program/Bee.class | Bin 793 -> 0 bytes java/greenfoot/zero-program/Bug.class | Bin 1156 -> 0 bytes java/greenfoot/zero-program/MyWorld.class | Bin 613 -> 0 bytes 10 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 java/greenfoot/bump-babies/Baby.class delete mode 100644 java/greenfoot/bump-babies/Fish.class delete mode 100644 java/greenfoot/bump-babies/MyWorld.class delete mode 100644 java/greenfoot/race-car/GreenCar.class delete mode 100644 java/greenfoot/race-car/MyWorld.class delete mode 100644 java/greenfoot/race-car/RedCar.class delete mode 100644 java/greenfoot/race-car/Score.class delete mode 100644 java/greenfoot/zero-program/Bee.class delete mode 100644 java/greenfoot/zero-program/Bug.class delete mode 100644 java/greenfoot/zero-program/MyWorld.class diff --git a/java/greenfoot/bump-babies/Baby.class b/java/greenfoot/bump-babies/Baby.class deleted file mode 100644 index 372b9ae1669d01f6b123d22975b6d41294cd9afc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1310 zcmZuvTTc^F5dO|~+tOvZNQ)P43P^1iq~1Y6xg#~z2O%iF=u%c#EnQO<1OG%5AAIx0 z7cVV|CjJ0_gz=Y%-)xIEq?_!_oS8E--#2r9{`vL;z!HlU>r9^+=^l%T)l@O$(xMgb`*CM!cR+faYLaa_riW{XLfzJ zka_btxs0eR|2_Wu3X#2er{LQ(_K%E7x9IvT6iH>X+4QP{KId&X3T-*J=sein zUUy0>_IiPyj+~db3#)d?m2=Ih`&;e~vvafd`aWB>Ec&8#9bs6+K*32DlQR?v>@TllH(Mgd!C<}$@^YO!6-U={=Byv zuqT0eh2|Z{mofORSLE($a)?ph-Q@WFKhK4m6olN1#ZmkMb-}zYvB_J#8I8S>0u5 zR!DKvG`ml6 zE&YsI)t(r@AW!TbU{`@9=(WHS{2`pDJr4a4L(rp$E5&z8eMtAwSrh+CBPUr7Az9;^ zp_U$D>npU6G_(M)3NzuG`}P zn%Hy@E!;pCnIw_I1h=?=VLZVIHZWQT+^LOBwiSUs5lh6FKm3nGGT1oK`WRFmM2RB2z{;6v3 zcaYLGyLSBA316sC)kDW~NkykL_$obH5(M{rf#Dv==Q_ojvFRQ7b+ztjswvH8ao0Yy zO$;F|am&PQ+>y9z;vVjs6piK~9tn)-Tji$hHp(xL>S|w4HgOSYj@M&NJjRlVWjqm( z)#G=b-`qB_f~TzODOBowzlaPm&oi&ib{8-kD(ng%FqSX$tkErSm7ex)n$y_+K6<1| z`|v?vAW)%xm9|`oe5ImaaGWxMcgX3AWx$HEXIi%i_m8v z*_A<@_^AkYoYfpA_{!6mjHc#@94EywRy4tx&io0+NyM_Nl5ni>yP(yp9I+!tKUK^m zTS!@@Ul=K!B3UH~;}ip=W$F#v9CAo7)=Vz(uQyASIZmFBX3z3Yn%PNAMf**4W=kqC V%^pFfnuYj-Nl94+F|=~C{{S&!%2)sZ diff --git a/java/greenfoot/bump-babies/MyWorld.class b/java/greenfoot/bump-babies/MyWorld.class deleted file mode 100644 index c02d7325eda4200ef3cc0ca9c3262baf39b07b84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2001 zcmah}U3U{z6x}zO>7>b&rjS-j3jzwJX=(UYX&X(em0$`;u%#%%G?}IY$qY^=Nbw7m zC!hQc_~5I8O&4}8e}M14`0B5~2XLQBpa>6Ut(>{{o{zit*=OdDN5B0J;C0-I;}x9h zhKctL6yu0uPBy3GG-t$|74w0Cb8&RHeI*0u)sX+g_PEw8x0-DinHagqPO$!k z_G6JPl=^qCf;~<^JpDjn^f(#`emM95S;#gim;C4d)i;MN6L=ndisAr{uhANMt%Vrf-E_y-kcdtWB~y2?pT3?sh9<@yU`qrGnX$1JdihT> z{*F>VJ^t$#UKPbL+HoXkhiOyj!!E8~Cd56Mz+TLd;z`mgk>C~Xmr3n7qjxj+B)0Q& z{RXK`k?xxzHNwXUW&)G^ClPr}XT*T1fPa`PvAGW6?@3r=)Zu&R6G|;?oop`+E~hrI zZSfvbE%Xl!uVdi!J-l?Fh3zd29{8DAkr4X;Yk*Bou*m~#@qV&7NF;(W)2`mZlb|$j zg%}6O@NKRlj5b3CQ6kD?x`XQ>^SYQ{kp_-Fzz%8PXbVFGm#h$)c4bOj4=}7S{3CKa zkA=s%=y9!I+j$qGBEShLB-FO#N8TZZ;w;xoSqAkt?1?h%BvE1w=z8^h`GldgKZmSERt29i;cUuXXCzv%t248+xb`dtF1I9`5{Ez1;a@@Q>H+7 zppAqZPrVL@m@8L?Bv#esWvWw(FniSGzh?r|#~cY1g6=K<*>z4LP%1a2GS$$FI@O&t z38GG|@}0nF*H7g`NR{?_xzUi9G)q$3k>7|?Kk53dl+oL}kLd`U87@>0y>7QQ%vy~v zZ>*cf`#8;~TjaMe!XJfK9<}GHgI(|*?fcyQ1`T+W9=OFfKSrpax%J!n1XYg*sQ zuj%fb9+oscZ2t+voiFLiGk;fwKcM{(Cha)OO`w2DdQ-e?2MeUJObTmkKF5fSeml(L zBzN*-J;fMGh82>YA>DCQSZxM5<}ctQdK%XgI73g8Ka0hT{7c3N*4T9lFJS$QN!R@Y zh9)UK$EGtn4E~@%*RhX4Q%0K4QF6uJ+^NxMaRc&YNVrMV|M_@Ozwt#}_PTw)-rzna>f)Ln{@FQ^fhkvuQkaS-`aGO!hGK z5|d4_^b7JY;2gDgC5HErEvyUH||9 diff --git a/java/greenfoot/race-car/MyWorld.class b/java/greenfoot/race-car/MyWorld.class deleted file mode 100644 index 070f812168d2b9edb834a6568e6be3c4368fe4a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2971 zcmZWqSyU5e6#gcYFk~1JFrY`N`x1hP#fr9oiaR!_6^r6lhh)Ujkl+v~*nQu3yV=%S zwY8g8Z4FY->FG;f+J`>&xoh`Ex~Sn9F?&|WOgtxM&&!U^XX1F? ztU=^2h}w(d?j;>{cv)nx$nvTzuW5K)#BYej$!Ss(uG0ncgM^#XXK?rPrB`0zJOT-&3wRR+7?w1!d#R;&y+QFT)*n zPuk25IF^Fxx4mwT?{F=fR#8zO+MemRvvwv;M+@%Ibn&FjbWeR-I&1Y49F)U4LsbX)y_93%&N5L%x)PHU&k^cG}LaQlLg_Iu!)hWs*cTIc}$|tpmN? zmb26BPEk@3&m_!Lr|H;o_JzUhVVmf}@%G_e87Gw_Y}HI;>A8=;_55)^sUvG9j<%b9 zzERjrCOrs@?zjoFmig2b7>?DO8MN{$CDHsV!B^a4WjhiXsU86{ArZu_K`Z47m{0`; zUW<0;3rL?VM*c*=Av>M4h6s(iV_K9~L~CvqVa;J$82{vgf3L#ql-i!kGFLnv4rnc;|*F9 zoWLe8q7faN4c9}zeVpCY)7DUSeP+O&Eb^F>qSBj!%IG*=c+Q(@_PBE*Gch(C`M48+ zdT}L;CjNOZcnNVRv_Ug9U~M}jNZWjlPvD+VJd@6vw%j(A6LowX#K^>{Xs5HC;*MJi z{80!-x72iE4sX*Hyuvk17k0SUIjQA7$u1~Z#eD#)xsr!t=T@G{&pH1H1V@I07XWzKTGs_$t)0)@umHt|Qbnf}*R?VzC@34^yOf#YRwa z6-MFpq*&|+p83n6)O$?Mp^OUUqFhn-V3{uG9Hv}m$N;u*ZGgeG8YP&5GDJ{`yO{DU zEWm7jU*e?Z=Mvdi^z3T8sw%h|5*6MNlX&48a&9BNoB`FZ)Bxb zU@A#8pS4^f_Y?m%kRnpWDlf7RQ*N)Fc#yaRa50pd*r4&-uAmdUe6;Pf5VYk!!i6rv z92ON?TI%M$h8efArEA9pD)$4?+z+H+H@bY+^>i#;3`uGixbYZLw0Lc>wB=* zH(ur&hiR-9CxZvSz0JYKaSp=1gMeJKzJuTBKzeq74#F;FngcDQ%ZwbNEtF~1*HANx zSO6z){arXqht5M4fooKJ&gH(Qj-pmdLub{aSRBC5sLNrApz_+Ykdp|`piZ6{#1kQf z=aWMXn1N=}u*83!AK=WqR0cZs&aal^2W zjor`29>6q4nZr1Bd^V!ng?bNT&ETI&SV4*EgD#;~w+p(A6P$2CPh(<9GEs#^O_^v< z(n^Uiuo8h=bQRLjs3;nE>EZ@22k++VAwdt14beh37*Kj04P6l|8^QALQ6-#IT<9K& LN_ny=3*gBAPzF)U diff --git a/java/greenfoot/race-car/RedCar.class b/java/greenfoot/race-car/RedCar.class deleted file mode 100644 index 98e6e8da2883284994510bda4f64ba39f1a33d14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1572 zcmZuwYje|95IxtDBU@44Pnrj5C{(sX90H}3gg}}mVCv8|p-JhNqS$Jp*0DN@Lg0t+ zf&b7i;QJtQZ3L00b1K~TY==(e_f6-ICjGt}{uEWtW^`^Iu@)`~ zP?l~JAhTSlC5@Wf{&7%oH#}*pJFa|QRI)IENekmRXWm3#+?N!&03B%5*4I_mLaQI782`b0~Hxnpws>S`F8$ z!p^(!b0TFtu%R>M!~<2Z0{75=;x-%Vwww1Lx=Hr^+zvkFl^x;j)Tk(xqn8qaqm>$S z%|eOpv{T%zGp@My<=;Z(wKqtK(f*1OrfCPE(+OBsk9#D^9}2$3F^eCan2tCev&qdIqae4wxpr`}>KCJsfLh_s>@+TIAq|iXu zEgEAbA-b;TUm`QvKvvjC^fuyY7)+fY@g#|-*wZvgW-!ZM^0d<5wHW@ihyp&tMUrP3 zzr;dQ%$maI^fcxU!=|S*o;#Jc#)u+PE}wr5O@GYZ#Y@Sq0h6V6zd$b+>mT%R=@rp6 zmI5jvz2#uCoKX}=G)IE@7U6SAVfiRW*<>p4qj;!AuELxaxOiDUQC!X@gVxz^A}t4GpFSI-#h20+w-q>$j@NmRP#%mfjqtM(f?=| W18*_(3K>r&G|6#lliv@uYq2o*((g7$*cJ4o>Yl}j<;jAdXPe}#4}fiz)~Ee>zuYse_f z;EWI8Lph#JqpcSGbF$~0?|kRBo9{o)z5$p)MTLfI30%N+6&Z|6aU(^pTMBL`kVQ_4 zyowkKDxszn+)*&i5dGk|R-GZCuODs8V~HU)Z`!7K#-L??TXS0sk+M_g3`yOz`9`a` z!`)3|$0AEgcWQ>UWw@r)17k$&njV9qS8I;Ti8gH11j($VV&qBbd&Z$rv<$mZtP0n( z8xmwT8w{g*!{yw5?>M5k^6OM-8V$*#R-Kkx|&>Nc1nL%hL-&JVfew_Ir(f;gJNnu_Om!7%7!GHfd2`{pu?VWes7^Ri>t46$vB zT{?Nfumz25I9plEoj10wO3IEUD~YbWSz6kV2|7jkE}CF;QC}#(VwlbLa#ecpJqEeJ zxW|RR5QedA7visN<+cTRpb@<-t2(E&dP{;muEdS{Q?^WKVzR)y8n`|2T}(`_$;^GKA!1rc;Q{Neqx2ByE}W5PjABDOkSn1))zq zMn3m`gh}=xLZ<}9TqJF{jm8izkw$SoE4@MTj0Bu5`Z37JLjE&CCkVGckuyXA{VQT` z3j^t6D94DOBC(#II)U0rnxb?dsv)E?iOa}i)K8pgQwE8L2$3c)4T_SD;tG`&##M?8 XVGJ+*!Wb5*y)vP0k{&1Qgv9>@aEvZL diff --git a/java/greenfoot/zero-program/Bee.class b/java/greenfoot/zero-program/Bee.class deleted file mode 100644 index 12cab88aa0d17a0e21f62a14cd9def16c20d74e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 793 zcmYjOO>@#v6g>|pJVIz7wDq&KtzQro{HR(5J5zOZI-(14s^Thzl*UrRgwWcJTl*LE z2k6?VgN_S-fIrEF<9QLpMeaNAp8M`S=jP|{?>_+C#2pPL79c6vl_BEr^0!O zyhK65lDHsoQR0$H7n2Mng)S>}C4s96ToVv)_^t8V7l>EfjvK59MDvApf!IB-=?EBA zx8pqN?`$~!Gkc@Wj9K*>c6;6SU3DKOW5Jf&6PT#pb(}I=*o{CST?_2S_G7y{EYfOT z-)}e%T-8RhviREGwROzk2qo+#u%zQUZU{vBU7a?Ub=<--DRz!Ey}b^hP1tre*&RhBM@6A&Oi=>|P=CvJoX)1_1*O$S;Q0c%apvKO6G*zfN6!BJaL9DN zs)Uu=cBfUU1-{#9l?!!&RL=>XdVw9d9;L+cYvG=Dyj{+TwVdEZxI3;>U0z~=n>P8s zB9KZOkyOgUj8LW_aFn+aPr-A-`U>$mq>nMi!(I7P6+5#g{QXYo>;@9@1$mIwGy- z)&S{4OoqTXL`Lb4Lg`ujXJ^iQ^UXJN&bJ?*zXBM;eHjr9NEq}ZDZ_Ej|eX<<1(%Y?`i-Nt_g2c#&z5f-k2~qMdFr(+Y-hZyk)au8_Jsf(6qU&n+Bzm%R*JKu632$1-fR78#%M&6wVV&2stC$BANsA((8%PlVtSK zKFPYtr<)+#PSG?xPA;ULfT>^L+6uW(;Q0jaN6NYoBP(7i5Flg&I>=MbD$t2IMGRfP z*)&3mPF-phJ~bp&;eUs)dJJzB0VkGE(IA-J4s#4X^25X&K_lslkirBNPL FKLO{9)6oC` diff --git a/java/greenfoot/zero-program/MyWorld.class b/java/greenfoot/zero-program/MyWorld.class deleted file mode 100644 index e6317f77afc74cfcc9dbb9523b8ae2f853f2ae06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 613 zcmYjN+fLg+6r447OpGB3;ZiOI0xbkn=wlzKDgi2LBvT$hTppcxag0oijE%$}^pRgd zf*`dLAHYYU&KgS~%d=-@&t>*Jzx;gy@C_RlhB0g6qXi9fW!RWEv0%Y?B@K(pqJkv_ zpA>vHv20>RV4y9ffZ=XSxv5wdX&t0dcoz%pw{s`gxgLe9efd}Xe4Thx$n2vJ~y;`YO`WRHP>GV-HBBEtP zO6z0jF7H21oP$Xm!w|+X!LNZ2+`$yKFpZy>p#nP0Cu5R#$`{vDxLPAucjB#KDHoRB N6^f!zu%#-W`42jkWdZ;I From 528a0f9e5fa1f7aa8323eb972655ad5748535cde Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Thu, 18 Jun 2020 23:31:28 -0400 Subject: [PATCH 004/186] ignore --- java/greenfoot/.gitignore | 2 + java/greenfoot/bump-babies/doc/MyWorld.html | 182 ---- .../greenfoot/bump-babies/doc/allclasses.html | 20 - .../bump-babies/doc/constant-values.html | 35 - java/greenfoot/bump-babies/doc/element-list | 1 - java/greenfoot/bump-babies/doc/index.html | 23 - java/greenfoot/bump-babies/doc/logfile.txt | 42 - .../bump-babies/doc/package-summary.html | 53 - java/greenfoot/bump-babies/doc/script.js | 139 --- java/greenfoot/bump-babies/doc/stylesheet.css | 906 ------------------ 10 files changed, 2 insertions(+), 1401 deletions(-) create mode 100644 java/greenfoot/.gitignore delete mode 100644 java/greenfoot/bump-babies/doc/MyWorld.html delete mode 100644 java/greenfoot/bump-babies/doc/allclasses.html delete mode 100644 java/greenfoot/bump-babies/doc/constant-values.html delete mode 100644 java/greenfoot/bump-babies/doc/element-list delete mode 100644 java/greenfoot/bump-babies/doc/index.html delete mode 100644 java/greenfoot/bump-babies/doc/logfile.txt delete mode 100644 java/greenfoot/bump-babies/doc/package-summary.html delete mode 100644 java/greenfoot/bump-babies/doc/script.js delete mode 100644 java/greenfoot/bump-babies/doc/stylesheet.css diff --git a/java/greenfoot/.gitignore b/java/greenfoot/.gitignore new file mode 100644 index 0000000..718d5c3 --- /dev/null +++ b/java/greenfoot/.gitignore @@ -0,0 +1,2 @@ +*.class +doc/ \ No newline at end of file diff --git a/java/greenfoot/bump-babies/doc/MyWorld.html b/java/greenfoot/bump-babies/doc/MyWorld.html deleted file mode 100644 index d8616e8..0000000 --- a/java/greenfoot/bump-babies/doc/MyWorld.html +++ /dev/null @@ -1,182 +0,0 @@ - - - - - -MyWorld - - - - - - - - - -
-
-

Class MyWorld

-
-
-
    -
  • java.lang.Object
  • -
  • -
      -
    • greenfoot.World
    • -
    • -
        -
      • MyWorld
      • -
      -
    • -
    -
  • -
-
-
    -
  • -
    -
    public class MyWorld
    -extends greenfoot.World
    -
    Write a description of class MyWorld here.
    -
    -
    Version:
    -
    (a version number or a date)
    -
    Author:
    -
    (your name)
    -
    -
  • -
-
-
-
    -
  • - -
    -
      -
    • - - -

      Constructor Summary

      - - - - - - - - - - -
      Constructors 
      ConstructorDescription
      MyWorld() -
      Constructor for objects of class MyWorld.
      -
      -
    • -
    -
    - -
    -
      -
    • - - -

      Method Summary

      - - - - - - - - - - - - -
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethodDescription
      voidremove​(greenfoot.Actor actor) 
      -
        -
      • - - -

        Methods inherited from class greenfoot.World

        -act, addObject, getBackground, getCellSize, getColorAt, getHeight, getObjects, getObjectsAt, getWidth, numberOfObjects, removeObject, removeObjects, repaint, setActOrder, setBackground, setBackground, setPaintOrder, showText, started, stopped
      • -
      -
        -
      • - - -

        Methods inherited from class java.lang.Object

        -clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • -
      -
    • -
    -
    -
  • -
-
-
-
    -
  • - -
    -
      -
    • - - -

      Constructor Detail

      - - - -
        -
      • -

        MyWorld

        -
        public MyWorld()
        -
        Constructor for objects of class MyWorld.
        -
      • -
      -
    • -
    -
    - -
    -
      -
    • - - -

      Method Detail

      - - - -
        -
      • -

        remove

        -
        public void remove​(greenfoot.Actor actor)
        -
      • -
      -
    • -
    -
    -
  • -
-
-
-
- - - diff --git a/java/greenfoot/bump-babies/doc/allclasses.html b/java/greenfoot/bump-babies/doc/allclasses.html deleted file mode 100644 index 48f3f0a..0000000 --- a/java/greenfoot/bump-babies/doc/allclasses.html +++ /dev/null @@ -1,20 +0,0 @@ - - - - - -All Classes - - - - - - -

All Classes

-
- -
- - diff --git a/java/greenfoot/bump-babies/doc/constant-values.html b/java/greenfoot/bump-babies/doc/constant-values.html deleted file mode 100644 index 3af15da..0000000 --- a/java/greenfoot/bump-babies/doc/constant-values.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - -Constant Field Values - - - - - - - - -
-
-

Constant Field Values

-
-

Contents

-
-
-
- - diff --git a/java/greenfoot/bump-babies/doc/element-list b/java/greenfoot/bump-babies/doc/element-list deleted file mode 100644 index 147af06..0000000 --- a/java/greenfoot/bump-babies/doc/element-list +++ /dev/null @@ -1 +0,0 @@ -unnamed package diff --git a/java/greenfoot/bump-babies/doc/index.html b/java/greenfoot/bump-babies/doc/index.html deleted file mode 100644 index f6138a4..0000000 --- a/java/greenfoot/bump-babies/doc/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - -Generated Documentation (Untitled) - - - - - - - -
- -

MyWorld.html

-
- - diff --git a/java/greenfoot/bump-babies/doc/logfile.txt b/java/greenfoot/bump-babies/doc/logfile.txt deleted file mode 100644 index 766bf98..0000000 --- a/java/greenfoot/bump-babies/doc/logfile.txt +++ /dev/null @@ -1,42 +0,0 @@ -Class documentation -<---- javadoc command: ----> -/usr/share/greenfoot/jdk/bin/javadoc --author --version --nodeprecated --protected --Xdoclint:none --noindex --notree --nohelp --nonavbar --source -11 --classpath -/usr/share/greenfoot/extensions/greenfoot.jar:/usr/share/greenfoot/bluejcore.jar:/usr/share/greenfoot/bluejeditor.jar:/usr/share/greenfoot/bluejext.jar:/usr/share/greenfoot/junit-4.11.jar:/usr/share/greenfoot/hamcrest-core-1.3.jar:/usr/share/greenfoot/bluej.jar:/usr/share/greenfoot/classgraph-4.2.6.jar:/usr/share/greenfoot/diffutils-1.2.1.jar:/usr/share/greenfoot/commons-logging-api-1.1.2.jar:/usr/share/greenfoot/jl1.0.1.jar:/usr/share/greenfoot/opencsv-2.3.jar:/usr/share/greenfoot/xom-1.2.9.jar:/usr/share/greenfoot/lang-stride.jar:/usr/share/greenfoot/nsmenufx-2.1.4.jar:/usr/share/greenfoot/richtextfx-fat-0.9.0.jar:/usr/share/greenfoot/guava-17.0.jar:/usr/share/greenfoot/httpclient-4.1.1.jar:/usr/share/greenfoot/httpcore-4.1.jar:/usr/share/greenfoot/httpmime-4.1.1.jar:/usr/share/greenfoot/javafx/lib/javafx.base.jar:/usr/share/greenfoot/javafx/lib/javafx.controls.jar:/usr/share/greenfoot/javafx/lib/javafx.fxml.jar:/usr/share/greenfoot/javafx/lib/javafx.graphics.jar:/usr/share/greenfoot/javafx/lib/javafx.media.jar:/usr/share/greenfoot/javafx/lib/javafx.properties.jar:/usr/share/greenfoot/javafx/lib/javafx.swing.jar:/usr/share/greenfoot/javafx/lib/javafx.web.jar:/home/super/git/lightning-projects/java/greenfoot/bump-babies --d -/home/super/git/lightning-projects/java/greenfoot/bump-babies/doc --encoding -UTF-8 --charset -UTF-8 -/home/super/git/lightning-projects/java/greenfoot/bump-babies/MyWorld.java -<---- end of javadoc command ----> -Loading source file /home/super/git/lightning-projects/java/greenfoot/bump-babies/MyWorld.java... -Constructing Javadoc information... -warning: unknown enum constant Tag.Any - reason: class file for threadchecker.Tag not found -warning: unknown enum constant Tag.Any -warning: unknown enum constant Tag.Any -warning: unknown enum constant Tag.Any -Standard Doclet version 11.0.2 -Building tree for all the packages and classes... -Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/MyWorld.html... -Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/package-summary.html... -Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/constant-values.html... -Building index for all the packages and classes... -Building index for all classes... -Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/allclasses.html... -Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/allclasses.html... -Generating /home/super/git/lightning-projects/java/greenfoot/bump-babies/doc/index.html... -4 warnings diff --git a/java/greenfoot/bump-babies/doc/package-summary.html b/java/greenfoot/bump-babies/doc/package-summary.html deleted file mode 100644 index c225a3f..0000000 --- a/java/greenfoot/bump-babies/doc/package-summary.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - -<Unnamed> - - - - - - - - -
-
-

Package <Unnamed>

-
-
-
    -
  • - - - - - - - - - - - - -
    Class Summary 
    ClassDescription
    MyWorld -
    Write a description of class MyWorld here.
    -
    -
  • -
-
-
- - diff --git a/java/greenfoot/bump-babies/doc/script.js b/java/greenfoot/bump-babies/doc/script.js deleted file mode 100644 index 0eaaf53..0000000 --- a/java/greenfoot/bump-babies/doc/script.js +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -var moduleSearchIndex; -var packageSearchIndex; -var typeSearchIndex; -var memberSearchIndex; -var tagSearchIndex; -function loadScripts(doc, tag) { - createElem(doc, tag, 'jquery/jszip/dist/jszip.js'); - createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils.js'); - if (window.navigator.userAgent.indexOf('MSIE ') > 0 || window.navigator.userAgent.indexOf('Trident/') > 0 || - window.navigator.userAgent.indexOf('Edge/') > 0) { - createElem(doc, tag, 'jquery/jszip-utils/dist/jszip-utils-ie.js'); - } - createElem(doc, tag, 'search.js'); - - $.get(pathtoroot + "module-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "module-search-index.zip", function(e, data) { - var zip = new JSZip(data); - zip.load(data); - moduleSearchIndex = JSON.parse(zip.file("module-search-index.json").asText()); - }); - }); - $.get(pathtoroot + "package-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "package-search-index.zip", function(e, data) { - var zip = new JSZip(data); - zip.load(data); - packageSearchIndex = JSON.parse(zip.file("package-search-index.json").asText()); - }); - }); - $.get(pathtoroot + "type-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "type-search-index.zip", function(e, data) { - var zip = new JSZip(data); - zip.load(data); - typeSearchIndex = JSON.parse(zip.file("type-search-index.json").asText()); - }); - }); - $.get(pathtoroot + "member-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "member-search-index.zip", function(e, data) { - var zip = new JSZip(data); - zip.load(data); - memberSearchIndex = JSON.parse(zip.file("member-search-index.json").asText()); - }); - }); - $.get(pathtoroot + "tag-search-index.zip") - .done(function() { - JSZipUtils.getBinaryContent(pathtoroot + "tag-search-index.zip", function(e, data) { - var zip = new JSZip(data); - zip.load(data); - tagSearchIndex = JSON.parse(zip.file("tag-search-index.json").asText()); - }); - }); - if (!moduleSearchIndex) { - createElem(doc, tag, 'module-search-index.js'); - } - if (!packageSearchIndex) { - createElem(doc, tag, 'package-search-index.js'); - } - if (!typeSearchIndex) { - createElem(doc, tag, 'type-search-index.js'); - } - if (!memberSearchIndex) { - createElem(doc, tag, 'member-search-index.js'); - } - if (!tagSearchIndex) { - createElem(doc, tag, 'tag-search-index.js'); - } - $(window).resize(function() { - $('.navPadding').css('padding-top', $('.fixedNav').css("height")); - }); -} - -function createElem(doc, tag, path) { - var script = doc.createElement(tag); - var scriptElement = doc.getElementsByTagName(tag)[0]; - script.src = pathtoroot + path; - scriptElement.parentNode.insertBefore(script, scriptElement); -} - -function show(type) { - count = 0; - for (var key in data) { - var row = document.getElementById(key); - if ((data[key] & type) !== 0) { - row.style.display = ''; - row.className = (count++ % 2) ? rowColor : altColor; - } - else - row.style.display = 'none'; - } - updateTabs(type); -} - -function updateTabs(type) { - for (var value in tabs) { - var sNode = document.getElementById(tabs[value][0]); - var spanNode = sNode.firstChild; - if (value == type) { - sNode.className = activeTableTab; - spanNode.innerHTML = tabs[value][1]; - } - else { - sNode.className = tableTab; - spanNode.innerHTML = "" + tabs[value][1] + ""; - } - } -} - -function updateModuleFrame(pFrame, cFrame) { - top.packageFrame.location = pFrame; - top.classFrame.location = cFrame; -} diff --git a/java/greenfoot/bump-babies/doc/stylesheet.css b/java/greenfoot/bump-babies/doc/stylesheet.css deleted file mode 100644 index fa24676..0000000 --- a/java/greenfoot/bump-babies/doc/stylesheet.css +++ /dev/null @@ -1,906 +0,0 @@ -/* - * Javadoc style sheet - */ - -@import url('resources/fonts/dejavu.css'); - -/* - * Styles for individual HTML elements. - * - * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular - * HTML element throughout the page. - */ - -body { - background-color:#ffffff; - color:#353833; - font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; - font-size:14px; - margin:0; - padding:0; - height:100%; - width:100%; -} -iframe { - margin:0; - padding:0; - height:100%; - width:100%; - overflow-y:scroll; - border:none; -} -a:link, a:visited { - text-decoration:none; - color:#4A6782; -} -a[href]:hover, a[href]:focus { - text-decoration:none; - color:#bb7a2a; -} -a[name] { - color:#353833; -} -a[name]:before, a[name]:target, a[id]:before, a[id]:target { - content:""; - display:inline-block; - position:relative; - padding-top:129px; - margin-top:-129px; -} -pre { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; -} -h1 { - font-size:20px; -} -h2 { - font-size:18px; -} -h3 { - font-size:16px; - font-style:italic; -} -h4 { - font-size:13px; -} -h5 { - font-size:12px; -} -h6 { - font-size:11px; -} -ul { - list-style-type:disc; -} -code, tt { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - padding-top:4px; - margin-top:8px; - line-height:1.4em; -} -dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - padding-top:4px; -} -table tr td dt code { - font-family:'DejaVu Sans Mono', monospace; - font-size:14px; - vertical-align:top; - padding-top:4px; -} -sup { - font-size:8px; -} - -/* - * Styles for HTML generated by javadoc. - * - * These are style classes that are used by the standard doclet to generate HTML documentation. - */ - -/* - * Styles for document title and copyright. - */ -.clear { - clear:both; - height:0px; - overflow:hidden; -} -.aboutLanguage { - float:right; - padding:0px 21px; - font-size:11px; - z-index:200; - margin-top:-9px; -} -.legalCopy { - margin-left:.5em; -} -.bar a, .bar a:link, .bar a:visited, .bar a:active { - color:#FFFFFF; - text-decoration:none; -} -.bar a:hover, .bar a:focus { - color:#bb7a2a; -} -.tab { - background-color:#0066FF; - color:#ffffff; - padding:8px; - width:5em; - font-weight:bold; -} -/* - * Styles for navigation bar. - */ -.bar { - background-color:#4D7A97; - color:#FFFFFF; - padding:.8em .5em .4em .8em; - height:auto;/*height:1.8em;*/ - font-size:11px; - margin:0; -} -.navPadding { - padding-top: 107px; -} -.fixedNav { - position:fixed; - width:100%; - z-index:999; - background-color:#ffffff; -} -.topNav { - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; -} -.bottomNav { - margin-top:10px; - background-color:#4D7A97; - color:#FFFFFF; - float:left; - padding:0; - width:100%; - clear:right; - height:2.8em; - padding-top:10px; - overflow:hidden; - font-size:12px; -} -.subNav { - background-color:#dee3e9; - float:left; - width:100%; - overflow:hidden; - font-size:12px; -} -.subNav div { - clear:left; - float:left; - padding:0 0 5px 6px; - text-transform:uppercase; -} -ul.navList, ul.subNavList { - float:left; - margin:0 25px 0 0; - padding:0; -} -ul.navList li{ - list-style:none; - float:left; - padding: 5px 6px; - text-transform:uppercase; -} -ul.navListSearch { - float:right; - margin:0 0 0 0; - padding:0; -} -ul.navListSearch li { - list-style:none; - float:right; - padding: 5px 6px; - text-transform:uppercase; -} -ul.navListSearch li label { - position:relative; - right:-16px; -} -ul.subNavList li { - list-style:none; - float:left; -} -.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { - color:#FFFFFF; - text-decoration:none; - text-transform:uppercase; -} -.topNav a:hover, .bottomNav a:hover { - text-decoration:none; - color:#bb7a2a; - text-transform:uppercase; -} -.navBarCell1Rev { - background-color:#F8981D; - color:#253441; - margin: auto 5px; -} -.skipNav { - position:absolute; - top:auto; - left:-9999px; - overflow:hidden; -} -/* - * Styles for page header and footer. - */ -.header, .footer { - clear:both; - margin:0 20px; - padding:5px 0 0 0; -} -.indexNav { - position:relative; - font-size:12px; - background-color:#dee3e9; -} -.indexNav ul { - margin-top:0; - padding:5px; -} -.indexNav ul li { - display:inline; - list-style-type:none; - padding-right:10px; - text-transform:uppercase; -} -.indexNav h1 { - font-size:13px; -} -.title { - color:#2c4557; - margin:10px 0; -} -.subTitle { - margin:5px 0 0 0; -} -.header ul { - margin:0 0 15px 0; - padding:0; -} -.footer ul { - margin:20px 0 5px 0; -} -.header ul li, .footer ul li { - list-style:none; - font-size:13px; -} -/* - * Styles for headings. - */ -div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; -} -ul.blockList ul.blockList ul.blockList li.blockList h3 { - background-color:#dee3e9; - border:1px solid #d0d9e0; - margin:0 0 6px -8px; - padding:7px 5px; -} -ul.blockList ul.blockList li.blockList h3 { - padding:0; - margin:15px 0; -} -ul.blockList li.blockList h2 { - padding:0px 0 20px 0; -} -/* - * Styles for page layout containers. - */ -.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer, -.allClassesContainer, .allPackagesContainer { - clear:both; - padding:10px 20px; - position:relative; -} -.indexContainer { - margin:10px; - position:relative; - font-size:12px; -} -.indexContainer h2 { - font-size:13px; - padding:0 0 3px 0; -} -.indexContainer ul { - margin:0; - padding:0; -} -.indexContainer ul li { - list-style:none; - padding-top:2px; -} -.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { - font-size:12px; - font-weight:bold; - margin:10px 0 0 0; - color:#4E4E4E; -} -.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { - margin:5px 0 10px 0px; - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; -} -.serializedFormContainer dl.nameValue dt { - margin-left:1px; - font-size:1.1em; - display:inline; - font-weight:bold; -} -.serializedFormContainer dl.nameValue dd { - margin:0 0 0 1px; - font-size:1.1em; - display:inline; -} -/* - * Styles for lists. - */ -li.circle { - list-style:circle; -} -ul.horizontal li { - display:inline; - font-size:0.9em; -} -ul.inheritance { - margin:0; - padding:0; -} -ul.inheritance li { - display:inline; - list-style:none; -} -ul.inheritance li ul.inheritance { - margin-left:15px; - padding-left:15px; - padding-top:1px; -} -ul.blockList, ul.blockListLast { - margin:10px 0 10px 0; - padding:0; -} -ul.blockList li.blockList, ul.blockListLast li.blockList { - list-style:none; - margin-bottom:15px; - line-height:1.4; -} -ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { - padding:0px 20px 5px 10px; - border:1px solid #ededed; - background-color:#f8f8f8; -} -ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { - padding:0 0 5px 8px; - background-color:#ffffff; - border:none; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { - margin-left:0; - padding-left:0; - padding-bottom:15px; - border:none; -} -ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { - list-style:none; - border-bottom:none; - padding-bottom:0; -} -table tr td dl, table tr td dl dt, table tr td dl dd { - margin-top:0; - margin-bottom:1px; -} -/* - * Styles for tables. - */ -.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary, -.requiresSummary, .packagesSummary, .providesSummary, .usesSummary { - width:100%; - border-spacing:0; - border-left:1px solid #EEE; - border-right:1px solid #EEE; - border-bottom:1px solid #EEE; -} -.overviewSummary, .memberSummary, .requiresSummary, .packagesSummary, .providesSummary, .usesSummary { - padding:0px; -} -.overviewSummary caption, .memberSummary caption, .typeSummary caption, -.useSummary caption, .constantsSummary caption, .deprecatedSummary caption, -.requiresSummary caption, .packagesSummary caption, .providesSummary caption, .usesSummary caption { - position:relative; - text-align:left; - background-repeat:no-repeat; - color:#253441; - font-weight:bold; - clear:none; - overflow:hidden; - padding:0px; - padding-top:10px; - padding-left:1px; - margin:0px; - white-space:pre; -} -.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, -.constantsSummary caption a:link, .deprecatedSummary caption a:link, -.requiresSummary caption a:link, .packagesSummary caption a:link, .providesSummary caption a:link, -.usesSummary caption a:link, -.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, -.constantsSummary caption a:hover, .deprecatedSummary caption a:hover, -.requiresSummary caption a:hover, .packagesSummary caption a:hover, .providesSummary caption a:hover, -.usesSummary caption a:hover, -.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, -.constantsSummary caption a:active, .deprecatedSummary caption a:active, -.requiresSummary caption a:active, .packagesSummary caption a:active, .providesSummary caption a:active, -.usesSummary caption a:active, -.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, -.constantsSummary caption a:visited, .deprecatedSummary caption a:visited, -.requiresSummary caption a:visited, .packagesSummary caption a:visited, .providesSummary caption a:visited, -.usesSummary caption a:visited { - color:#FFFFFF; -} -.useSummary caption a:link, .useSummary caption a:hover, .useSummary caption a:active, -.useSummary caption a:visited { - color:#1f389c; -} -.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, -.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span, -.requiresSummary caption span, .packagesSummary caption span, .providesSummary caption span, -.usesSummary caption span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - padding-bottom:7px; - display:inline-block; - float:left; - background-color:#F8981D; - border: none; - height:16px; -} -.memberSummary caption span.activeTableTab span, .packagesSummary caption span.activeTableTab span, -.overviewSummary caption span.activeTableTab span, .typeSummary caption span.activeTableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#F8981D; - height:16px; -} -.memberSummary caption span.tableTab span, .packagesSummary caption span.tableTab span, -.overviewSummary caption span.tableTab span, .typeSummary caption span.tableTab span { - white-space:nowrap; - padding-top:5px; - padding-left:12px; - padding-right:12px; - margin-right:3px; - display:inline-block; - float:left; - background-color:#4D7A97; - height:16px; -} -.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab, -.packagesSummary caption span.tableTab, .packagesSummary caption span.activeTableTab, -.overviewSummary caption span.tableTab, .overviewSummary caption span.activeTableTab, -.typeSummary caption span.tableTab, .typeSummary caption span.activeTableTab { - padding-top:0px; - padding-left:0px; - padding-right:0px; - background-image:none; - float:none; - display:inline; -} -.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, -.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd, -.requiresSummary .tabEnd, .packagesSummary .tabEnd, .providesSummary .tabEnd, .usesSummary .tabEnd { - display:none; - width:5px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .activeTableTab .tabEnd, .packagesSummary .activeTableTab .tabEnd, -.overviewSummary .activeTableTab .tabEnd, .typeSummary .activeTableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - float:left; - background-color:#F8981D; -} -.memberSummary .tableTab .tabEnd, .packagesSummary .tableTab .tabEnd, -.overviewSummary .tableTab .tabEnd, .typeSummary .tableTab .tabEnd { - display:none; - width:5px; - margin-right:3px; - position:relative; - background-color:#4D7A97; - float:left; -} -.rowColor th, .altColor th { - font-weight:normal; -} -.overviewSummary td, .memberSummary td, .typeSummary td, -.useSummary td, .constantsSummary td, .deprecatedSummary td, -.requiresSummary td, .packagesSummary td, .providesSummary td, .usesSummary td { - text-align:left; - padding:0px 0px 12px 10px; -} -th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .useSummary th, -.constantsSummary th, .packagesSummary th, td.colFirst, td.colSecond, td.colLast, .useSummary td, -.constantsSummary td { - vertical-align:top; - padding-right:0px; - padding-top:8px; - padding-bottom:3px; -} -th.colFirst, th.colSecond, th.colLast, th.colConstructorName, th.colDeprecatedItemName, .constantsSummary th, -.packagesSummary th { - background:#dee3e9; - text-align:left; - padding:8px 3px 3px 7px; -} -td.colFirst, th.colFirst { - font-size:13px; -} -td.colSecond, th.colSecond, td.colLast, th.colConstructorName, th.colDeprecatedItemName, th.colLast { - font-size:13px; -} -.constantsSummary th, .packagesSummary th { - font-size:13px; -} -.providesSummary th.colFirst, .providesSummary th.colLast, .providesSummary td.colFirst, -.providesSummary td.colLast { - white-space:normal; - font-size:13px; -} -.overviewSummary td.colFirst, .overviewSummary th.colFirst, -.requiresSummary td.colFirst, .requiresSummary th.colFirst, -.packagesSummary td.colFirst, .packagesSummary td.colSecond, .packagesSummary th.colFirst, .packagesSummary th, -.usesSummary td.colFirst, .usesSummary th.colFirst, -.providesSummary td.colFirst, .providesSummary th.colFirst, -.memberSummary td.colFirst, .memberSummary th.colFirst, -.memberSummary td.colSecond, .memberSummary th.colSecond, .memberSummary th.colConstructorName, -.typeSummary td.colFirst, .typeSummary th.colFirst { - vertical-align:top; -} -.packagesSummary th.colLast, .packagesSummary td.colLast { - white-space:normal; -} -td.colFirst a:link, td.colFirst a:visited, -td.colSecond a:link, td.colSecond a:visited, -th.colFirst a:link, th.colFirst a:visited, -th.colSecond a:link, th.colSecond a:visited, -th.colConstructorName a:link, th.colConstructorName a:visited, -th.colDeprecatedItemName a:link, th.colDeprecatedItemName a:visited, -.constantValuesContainer td a:link, .constantValuesContainer td a:visited, -.allClassesContainer td a:link, .allClassesContainer td a:visited, -.allPackagesContainer td a:link, .allPackagesContainer td a:visited { - font-weight:bold; -} -.tableSubHeadingColor { - background-color:#EEEEFF; -} -.altColor, .altColor th { - background-color:#FFFFFF; -} -.rowColor, .rowColor th { - background-color:#EEEEEF; -} -/* - * Styles for contents. - */ -.description pre { - margin-top:0; -} -.deprecatedContent { - margin:0; - padding:10px 0; -} -.docSummary { - padding:0; -} -ul.blockList ul.blockList ul.blockList li.blockList h3 { - font-style:normal; -} -div.block { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; -} -td.colLast div { - padding-top:0px; -} -td.colLast a { - padding-bottom:3px; -} -/* - * Styles for formatting effect. - */ -.sourceLineNo { - color:green; - padding:0 30px 0 0; -} -h1.hidden { - visibility:hidden; - overflow:hidden; - font-size:10px; -} -.block { - display:block; - margin:3px 10px 2px 0px; - color:#474747; -} -.deprecatedLabel, .descfrmTypeLabel, .implementationLabel, .memberNameLabel, .memberNameLink, -.moduleLabelInPackage, .moduleLabelInType, .overrideSpecifyLabel, .packageLabelInType, -.packageHierarchyLabel, .paramLabel, .returnLabel, .seeLabel, .simpleTagLabel, -.throwsLabel, .typeNameLabel, .typeNameLink, .searchTagLink { - font-weight:bold; -} -.deprecationComment, .emphasizedPhrase, .interfaceName { - font-style:italic; -} -.deprecationBlock { - font-size:14px; - font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; - border-style:solid; - border-width:thin; - border-radius:10px; - padding:10px; - margin-bottom:10px; - margin-right:10px; - display:inline-block; -} -div.block div.deprecationComment, div.block div.block span.emphasizedPhrase, -div.block div.block span.interfaceName { - font-style:normal; -} -div.contentContainer ul.blockList li.blockList h2 { - padding-bottom:0px; -} -/* - * Styles for IFRAME. - */ -.mainContainer { - margin:0 auto; - padding:0; - height:100%; - width:100%; - position:fixed; - top:0; - left:0; -} -.leftContainer { - height:100%; - position:fixed; - width:320px; -} -.leftTop { - position:relative; - float:left; - width:315px; - top:0; - left:0; - height:30%; - border-right:6px solid #ccc; - border-bottom:6px solid #ccc; -} -.leftBottom { - position:relative; - float:left; - width:315px; - bottom:0; - left:0; - height:70%; - border-right:6px solid #ccc; - border-top:1px solid #000; -} -.rightContainer { - position:absolute; - left:320px; - top:0; - bottom:0; - height:100%; - right:0; - border-left:1px solid #000; -} -.rightIframe { - margin:0; - padding:0; - height:100%; - right:30px; - width:100%; - overflow:visible; - margin-bottom:30px; -} -/* - * Styles specific to HTML5 elements. - */ -main, nav, header, footer, section { - display:block; -} -/* - * Styles for javadoc search. - */ -.ui-autocomplete-category { - font-weight:bold; - font-size:15px; - padding:7px 0 7px 3px; - background-color:#4D7A97; - color:#FFFFFF; -} -.resultItem { - font-size:13px; -} -.ui-autocomplete { - max-height:85%; - max-width:65%; - overflow-y:scroll; - overflow-x:scroll; - white-space:nowrap; - box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); -} -ul.ui-autocomplete { - position:fixed; - z-index:999999; -} -ul.ui-autocomplete li { - float:left; - clear:both; - width:100%; -} -.resultHighlight { - font-weight:bold; -} -#search { - background-image:url('resources/glass.png'); - background-size:13px; - background-repeat:no-repeat; - background-position:2px 3px; - padding-left:20px; - position:relative; - right:-18px; -} -#reset { - background-color: rgb(255,255,255); - background-image:url('resources/x.png'); - background-position:center; - background-repeat:no-repeat; - background-size:12px; - border:0 none; - width:16px; - height:17px; - position:relative; - left:-4px; - top:-4px; - font-size:0px; -} -.watermark { - color:#545454; -} -.searchTagDescResult { - font-style:italic; - font-size:11px; -} -.searchTagHolderResult { - font-style:italic; - font-size:12px; -} -.searchTagResult:before, .searchTagResult:target { - color:red; -} -.moduleGraph span { - display:none; - position:absolute; -} -.moduleGraph:hover span { - display:block; - margin: -100px 0 0 100px; - z-index: 1; -} -.methodSignature { - white-space:normal; -} - -/* - * Styles for user-provided tables. - * - * borderless: - * No borders, vertical margins, styled caption. - * This style is provided for use with existing doc comments. - * In general, borderless tables should not be used for layout purposes. - * - * plain: - * Plain borders around table and cells, vertical margins, styled caption. - * Best for small tables or for complex tables for tables with cells that span - * rows and columns, when the "striped" style does not work well. - * - * striped: - * Borders around the table and vertical borders between cells, striped rows, - * vertical margins, styled caption. - * Best for tables that have a header row, and a body containing a series of simple rows. - */ - -table.borderless, -table.plain, -table.striped { - margin-top: 10px; - margin-bottom: 10px; -} -table.borderless > caption, -table.plain > caption, -table.striped > caption { - font-weight: bold; - font-size: smaller; -} -table.borderless th, table.borderless td, -table.plain th, table.plain td, -table.striped th, table.striped td { - padding: 2px 5px; -} -table.borderless, -table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, -table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { - border: none; -} -table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { - background-color: transparent; -} -table.plain { - border-collapse: collapse; - border: 1px solid black; -} -table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { - background-color: transparent; -} -table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, -table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { - border: 1px solid black; -} -table.striped { - border-collapse: collapse; - border: 1px solid black; -} -table.striped > thead { - background-color: #E3E3E3; -} -table.striped > thead > tr > th, table.striped > thead > tr > td { - border: 1px solid black; -} -table.striped > tbody > tr:nth-child(even) { - background-color: #EEE -} -table.striped > tbody > tr:nth-child(odd) { - background-color: #FFF -} -table.striped > tbody > tr > th, table.striped > tbody > tr > td { - border-left: 1px solid black; - border-right: 1px solid black; -} -table.striped > tbody > tr > th { - font-weight: normal; -} From 4dfb39c8efcca8a5c7176d6c09deca1f9e8b6eac Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Thu, 18 Jun 2020 23:35:36 -0400 Subject: [PATCH 005/186] update --- java/greenfoot/bump-babies/project.greenfoot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/java/greenfoot/bump-babies/project.greenfoot b/java/greenfoot/bump-babies/project.greenfoot index 9cd36b7..6f292d6 100644 --- a/java/greenfoot/bump-babies/project.greenfoot +++ b/java/greenfoot/bump-babies/project.greenfoot @@ -14,10 +14,10 @@ dependency3.type=UsesDependency dependency4.from=Fish dependency4.to=MyWorld dependency4.type=UsesDependency -editor.fx.0.height=1059 -editor.fx.0.width=1090 -editor.fx.0.x=1268 -editor.fx.0.y=605 +editor.fx.0.height=0 +editor.fx.0.width=0 +editor.fx.0.x=0 +editor.fx.0.y=0 height=847 package.numDependencies=4 package.numTargets=3 From d53393881342612ae4fec05785dcc3e134d39424 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Thu, 18 Jun 2020 23:39:24 -0400 Subject: [PATCH 006/186] rename; add readme --- java/greenfoot/README.md | 5 +++++ .../greenfoot/{zero-program => bee-vs-bug}/Bee.ctxt | 0 .../greenfoot/{zero-program => bee-vs-bug}/Bee.java | 0 .../greenfoot/{zero-program => bee-vs-bug}/Bug.ctxt | 0 .../greenfoot/{zero-program => bee-vs-bug}/Bug.java | 0 .../{zero-program => bee-vs-bug}/MyWorld.ctxt | 0 .../{zero-program => bee-vs-bug}/MyWorld.java | 0 .../{zero-program => bee-vs-bug}/README.TXT | 0 .../{zero-program => bee-vs-bug}/images/bee.png | Bin .../images/fingerprint.jpg | Bin .../images/ladybug_02.png | Bin .../{zero-program => bee-vs-bug}/project.greenfoot | 0 .../{zero-program => bee-vs-bug}/sounds/ahhh.wav | Bin 13 files changed, 5 insertions(+) create mode 100644 java/greenfoot/README.md rename java/greenfoot/{zero-program => bee-vs-bug}/Bee.ctxt (100%) rename java/greenfoot/{zero-program => bee-vs-bug}/Bee.java (100%) rename java/greenfoot/{zero-program => bee-vs-bug}/Bug.ctxt (100%) rename java/greenfoot/{zero-program => bee-vs-bug}/Bug.java (100%) rename java/greenfoot/{zero-program => bee-vs-bug}/MyWorld.ctxt (100%) rename java/greenfoot/{zero-program => bee-vs-bug}/MyWorld.java (100%) rename java/greenfoot/{zero-program => bee-vs-bug}/README.TXT (100%) rename java/greenfoot/{zero-program => bee-vs-bug}/images/bee.png (100%) rename java/greenfoot/{zero-program => bee-vs-bug}/images/fingerprint.jpg (100%) rename java/greenfoot/{zero-program => bee-vs-bug}/images/ladybug_02.png (100%) rename java/greenfoot/{zero-program => bee-vs-bug}/project.greenfoot (100%) rename java/greenfoot/{zero-program => bee-vs-bug}/sounds/ahhh.wav (100%) diff --git a/java/greenfoot/README.md b/java/greenfoot/README.md new file mode 100644 index 0000000..499dde8 --- /dev/null +++ b/java/greenfoot/README.md @@ -0,0 +1,5 @@ +# Projects + +* [bump-babies](bump-babies): fish eating baby snacks +* [bee-vs-bug](bee-vs-bug): get away from the ladybug +* [race-car](race-car): avoid oncoming traffic \ No newline at end of file diff --git a/java/greenfoot/zero-program/Bee.ctxt b/java/greenfoot/bee-vs-bug/Bee.ctxt similarity index 100% rename from java/greenfoot/zero-program/Bee.ctxt rename to java/greenfoot/bee-vs-bug/Bee.ctxt diff --git a/java/greenfoot/zero-program/Bee.java b/java/greenfoot/bee-vs-bug/Bee.java similarity index 100% rename from java/greenfoot/zero-program/Bee.java rename to java/greenfoot/bee-vs-bug/Bee.java diff --git a/java/greenfoot/zero-program/Bug.ctxt b/java/greenfoot/bee-vs-bug/Bug.ctxt similarity index 100% rename from java/greenfoot/zero-program/Bug.ctxt rename to java/greenfoot/bee-vs-bug/Bug.ctxt diff --git a/java/greenfoot/zero-program/Bug.java b/java/greenfoot/bee-vs-bug/Bug.java similarity index 100% rename from java/greenfoot/zero-program/Bug.java rename to java/greenfoot/bee-vs-bug/Bug.java diff --git a/java/greenfoot/zero-program/MyWorld.ctxt b/java/greenfoot/bee-vs-bug/MyWorld.ctxt similarity index 100% rename from java/greenfoot/zero-program/MyWorld.ctxt rename to java/greenfoot/bee-vs-bug/MyWorld.ctxt diff --git a/java/greenfoot/zero-program/MyWorld.java b/java/greenfoot/bee-vs-bug/MyWorld.java similarity index 100% rename from java/greenfoot/zero-program/MyWorld.java rename to java/greenfoot/bee-vs-bug/MyWorld.java diff --git a/java/greenfoot/zero-program/README.TXT b/java/greenfoot/bee-vs-bug/README.TXT similarity index 100% rename from java/greenfoot/zero-program/README.TXT rename to java/greenfoot/bee-vs-bug/README.TXT diff --git a/java/greenfoot/zero-program/images/bee.png b/java/greenfoot/bee-vs-bug/images/bee.png similarity index 100% rename from java/greenfoot/zero-program/images/bee.png rename to java/greenfoot/bee-vs-bug/images/bee.png diff --git a/java/greenfoot/zero-program/images/fingerprint.jpg b/java/greenfoot/bee-vs-bug/images/fingerprint.jpg similarity index 100% rename from java/greenfoot/zero-program/images/fingerprint.jpg rename to java/greenfoot/bee-vs-bug/images/fingerprint.jpg diff --git a/java/greenfoot/zero-program/images/ladybug_02.png b/java/greenfoot/bee-vs-bug/images/ladybug_02.png similarity index 100% rename from java/greenfoot/zero-program/images/ladybug_02.png rename to java/greenfoot/bee-vs-bug/images/ladybug_02.png diff --git a/java/greenfoot/zero-program/project.greenfoot b/java/greenfoot/bee-vs-bug/project.greenfoot similarity index 100% rename from java/greenfoot/zero-program/project.greenfoot rename to java/greenfoot/bee-vs-bug/project.greenfoot diff --git a/java/greenfoot/zero-program/sounds/ahhh.wav b/java/greenfoot/bee-vs-bug/sounds/ahhh.wav similarity index 100% rename from java/greenfoot/zero-program/sounds/ahhh.wav rename to java/greenfoot/bee-vs-bug/sounds/ahhh.wav From a6260f6e45e932fa6a1ee0f188ddeb78acd257c8 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Thu, 18 Jun 2020 23:41:02 -0400 Subject: [PATCH 007/186] move --- python/pygame/README.md | 16 ++++++++-------- python/pygame/{ => basic}/audios/fairy.wav | Bin python/pygame/{ => basic}/bouncing-balls.py | 0 .../{ => basic}/bouncing-image-with-sound.py | 0 python/pygame/{ => basic}/bouncing-images.py | 0 python/pygame/{ => basic}/draw-circles.py | 0 python/pygame/{ => basic}/draw-shapes.py | 0 python/pygame/{ => basic}/draw-sprite.py | 0 python/pygame/{ => basic}/image-rotation.py | 0 .../{ => basic}/images/Satyr_01_Idle_000.png | Bin .../{ => basic}/images/Satyr_02_Idle_000.png | Bin .../{ => basic}/images/Satyr_03_Idle_000.png | Bin python/pygame/{ => basic}/images/ball.png | Bin python/pygame/{ => basic}/images/logo.png | Bin python/pygame/{ => basic}/key-movement.py | 0 15 files changed, 8 insertions(+), 8 deletions(-) rename python/pygame/{ => basic}/audios/fairy.wav (100%) rename python/pygame/{ => basic}/bouncing-balls.py (100%) rename python/pygame/{ => basic}/bouncing-image-with-sound.py (100%) rename python/pygame/{ => basic}/bouncing-images.py (100%) rename python/pygame/{ => basic}/draw-circles.py (100%) rename python/pygame/{ => basic}/draw-shapes.py (100%) rename python/pygame/{ => basic}/draw-sprite.py (100%) rename python/pygame/{ => basic}/image-rotation.py (100%) rename python/pygame/{ => basic}/images/Satyr_01_Idle_000.png (100%) rename python/pygame/{ => basic}/images/Satyr_02_Idle_000.png (100%) rename python/pygame/{ => basic}/images/Satyr_03_Idle_000.png (100%) rename python/pygame/{ => basic}/images/ball.png (100%) rename python/pygame/{ => basic}/images/logo.png (100%) rename python/pygame/{ => basic}/key-movement.py (100%) diff --git a/python/pygame/README.md b/python/pygame/README.md index 0532ca6..b984c56 100644 --- a/python/pygame/README.md +++ b/python/pygame/README.md @@ -6,11 +6,11 @@ All images take from [craftpix](https://craftpix.net/). # Basic -* [Circles](draw-circles.py): learn how to draw circles -* [Shapes](draw-shapes.py): learn how to draw shapes -* [Sprite](draw-sprite.py): learn how to draw sprites -* [Bouncing Balls](bouncing-balls.py): learn how to animate balls bouncing around -* [Bouncing Images](bouncing-image.py): learn how to animate images -* [Image Rotation](image-rotation.py): learn how to rotate an image -* [Sound](bouncing-image-with-sound.py): learn how to play sound -* [Key Events](key-movement.py): learn how to listen for key events \ No newline at end of file +* [Circles](basic/draw-circles.py): learn how to draw circles +* [Shapes](basic/draw-shapes.py): learn how to draw shapes +* [Sprite](basic/draw-sprite.py): learn how to draw sprites +* [Bouncing Balls](basic/bouncing-balls.py): learn how to animate balls bouncing around +* [Bouncing Images](basic/bouncing-image.py): learn how to animate images +* [Image Rotation](basic/image-rotation.py): learn how to rotate an image +* [Sound](basic/bouncing-image-with-sound.py): learn how to play sound +* [Key Events](basic/key-movement.py): learn how to listen for key events \ No newline at end of file diff --git a/python/pygame/audios/fairy.wav b/python/pygame/basic/audios/fairy.wav similarity index 100% rename from python/pygame/audios/fairy.wav rename to python/pygame/basic/audios/fairy.wav diff --git a/python/pygame/bouncing-balls.py b/python/pygame/basic/bouncing-balls.py similarity index 100% rename from python/pygame/bouncing-balls.py rename to python/pygame/basic/bouncing-balls.py diff --git a/python/pygame/bouncing-image-with-sound.py b/python/pygame/basic/bouncing-image-with-sound.py similarity index 100% rename from python/pygame/bouncing-image-with-sound.py rename to python/pygame/basic/bouncing-image-with-sound.py diff --git a/python/pygame/bouncing-images.py b/python/pygame/basic/bouncing-images.py similarity index 100% rename from python/pygame/bouncing-images.py rename to python/pygame/basic/bouncing-images.py diff --git a/python/pygame/draw-circles.py b/python/pygame/basic/draw-circles.py similarity index 100% rename from python/pygame/draw-circles.py rename to python/pygame/basic/draw-circles.py diff --git a/python/pygame/draw-shapes.py b/python/pygame/basic/draw-shapes.py similarity index 100% rename from python/pygame/draw-shapes.py rename to python/pygame/basic/draw-shapes.py diff --git a/python/pygame/draw-sprite.py b/python/pygame/basic/draw-sprite.py similarity index 100% rename from python/pygame/draw-sprite.py rename to python/pygame/basic/draw-sprite.py diff --git a/python/pygame/image-rotation.py b/python/pygame/basic/image-rotation.py similarity index 100% rename from python/pygame/image-rotation.py rename to python/pygame/basic/image-rotation.py diff --git a/python/pygame/images/Satyr_01_Idle_000.png b/python/pygame/basic/images/Satyr_01_Idle_000.png similarity index 100% rename from python/pygame/images/Satyr_01_Idle_000.png rename to python/pygame/basic/images/Satyr_01_Idle_000.png diff --git a/python/pygame/images/Satyr_02_Idle_000.png b/python/pygame/basic/images/Satyr_02_Idle_000.png similarity index 100% rename from python/pygame/images/Satyr_02_Idle_000.png rename to python/pygame/basic/images/Satyr_02_Idle_000.png diff --git a/python/pygame/images/Satyr_03_Idle_000.png b/python/pygame/basic/images/Satyr_03_Idle_000.png similarity index 100% rename from python/pygame/images/Satyr_03_Idle_000.png rename to python/pygame/basic/images/Satyr_03_Idle_000.png diff --git a/python/pygame/images/ball.png b/python/pygame/basic/images/ball.png similarity index 100% rename from python/pygame/images/ball.png rename to python/pygame/basic/images/ball.png diff --git a/python/pygame/images/logo.png b/python/pygame/basic/images/logo.png similarity index 100% rename from python/pygame/images/logo.png rename to python/pygame/basic/images/logo.png diff --git a/python/pygame/key-movement.py b/python/pygame/basic/key-movement.py similarity index 100% rename from python/pygame/key-movement.py rename to python/pygame/basic/key-movement.py From 367ede08e0bfdcffd8d75d9865d6bdbcab468ce1 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Thu, 18 Jun 2020 23:41:54 -0400 Subject: [PATCH 008/186] update --- html/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/html/README.md b/html/README.md index 290adec..5cf4148 100644 --- a/html/README.md +++ b/html/README.md @@ -2,4 +2,5 @@ * [guessing-game](guessing-game): Have fun coding a game that asks users to guess which number the computer will generate. * [slot-machine-game](slot-machine-game): Learn about random number generators through coding a slot machine simulator. -* [rps-game](rps-game): A challenging project to code the classic Rock, Paper, Scissor game. \ No newline at end of file +* [rps-game](rps-game): A challenging project to code the classic Rock, Paper, Scissor game. +* [tic-tac-toe](tic-tack-toe): Classic tic tac toe. \ No newline at end of file From 2cc1859e61b7c5e67ed34a781e621fd74a843f24 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Thu, 18 Jun 2020 23:43:32 -0400 Subject: [PATCH 009/186] update --- README.md | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 97b3ea9..0cd2029 100644 --- a/README.md +++ b/README.md @@ -7,13 +7,8 @@ effective coding projects for children to learn and improve their coding skills. If you have any questions, please do not hesistate to contact us at info@oneoffcoder.com. -# HTML - -* [Guessing Game](guessing-game): Can you guess the number that the computer is thinking? -* [Slot Machine](slot-machine-game): Will you hit the jackpot? -* [Rock, Paper, Scissor](rps-game): Can you beat the computer at Rock, Paper, Scissor? -* [Colors](colors): Colors, colors and more colors! -* [Tic-Tac-Toe](tic-tac-toe): Can you beat the computer at Tic-Tac-Toe? +* [HTML, CSS, JavaScript](html): Games based on HTML, CSS and JavaScript +* [Java, Greenfoot](java/greenfoot): Games based on Java and Greenfoot # Citation From b0e6471bf388ca850b0fbf695efa6ddf863241a5 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 00:00:51 -0400 Subject: [PATCH 010/186] single quote --- html/guessing-game/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/guessing-game/index.html b/html/guessing-game/index.html index 452c5c4..a0962f7 100644 --- a/html/guessing-game/index.html +++ b/html/guessing-game/index.html @@ -56,7 +56,7 @@ } function playBoing() { - const boing = document.getElementById("boing"); + const boing = document.getElementById('boing'); boing.play(); } From 0470b7556099a295c658fdf4b64f7708a1706f2c Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 00:00:54 -0400 Subject: [PATCH 011/186] update --- java/greenfoot/bee-vs-bug/project.greenfoot | 4 +-- java/greenfoot/bump-babies/project.greenfoot | 2 +- java/greenfoot/dummy/MyWorld.ctxt | 7 ++++ java/greenfoot/dummy/MyWorld.java | 21 ++++++++++++ java/greenfoot/dummy/README.TXT | 12 +++++++ java/greenfoot/dummy/project.greenfoot | 34 ++++++++++++++++++++ java/greenfoot/race-car/project.greenfoot | 8 ++--- 7 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 java/greenfoot/dummy/MyWorld.ctxt create mode 100644 java/greenfoot/dummy/MyWorld.java create mode 100644 java/greenfoot/dummy/README.TXT create mode 100644 java/greenfoot/dummy/project.greenfoot diff --git a/java/greenfoot/bee-vs-bug/project.greenfoot b/java/greenfoot/bee-vs-bug/project.greenfoot index 4234b2c..0614047 100644 --- a/java/greenfoot/bee-vs-bug/project.greenfoot +++ b/java/greenfoot/bee-vs-bug/project.greenfoot @@ -15,7 +15,7 @@ editor.fx.0.height=0 editor.fx.0.width=0 editor.fx.0.x=0 editor.fx.0.y=0 -height=585 +height=878 package.numDependencies=3 package.numTargets=3 project.charset=UTF-8 @@ -54,7 +54,7 @@ target3.width=80 target3.x=0 target3.y=0 version=3.0.0 -width=845 +width=1064 world.lastInstantiated=MyWorld xPosition=1169 yPosition=441 diff --git a/java/greenfoot/bump-babies/project.greenfoot b/java/greenfoot/bump-babies/project.greenfoot index 6f292d6..c7ae533 100644 --- a/java/greenfoot/bump-babies/project.greenfoot +++ b/java/greenfoot/bump-babies/project.greenfoot @@ -51,7 +51,7 @@ target2.x=0 target2.y=0 target3.height=50 target3.name=MyWorld -target3.showInterface=true +target3.showInterface=false target3.type=ClassTarget target3.width=80 target3.x=0 diff --git a/java/greenfoot/dummy/MyWorld.ctxt b/java/greenfoot/dummy/MyWorld.ctxt new file mode 100644 index 0000000..aa3a0a6 --- /dev/null +++ b/java/greenfoot/dummy/MyWorld.ctxt @@ -0,0 +1,7 @@ +#BlueJ class context +comment0.target=MyWorld +comment0.text=\n\ Write\ a\ description\ of\ class\ MyWorld\ here.\n\ \n\ @author\ (your\ name)\ \n\ @version\ (a\ version\ number\ or\ a\ date)\n +comment1.params= +comment1.target=MyWorld() +comment1.text=\n\ Constructor\ for\ objects\ of\ class\ MyWorld.\n\ \n +numComments=2 diff --git a/java/greenfoot/dummy/MyWorld.java b/java/greenfoot/dummy/MyWorld.java new file mode 100644 index 0000000..3b3080b --- /dev/null +++ b/java/greenfoot/dummy/MyWorld.java @@ -0,0 +1,21 @@ +import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) + +/** + * Write a description of class MyWorld here. + * + * @author (your name) + * @version (a version number or a date) + */ +public class MyWorld extends World +{ + + /** + * Constructor for objects of class MyWorld. + * + */ + public MyWorld() + { + // Create a new world with 600x400 cells with a cell size of 1x1 pixels. + super(600, 400, 1); + } +} diff --git a/java/greenfoot/dummy/README.TXT b/java/greenfoot/dummy/README.TXT new file mode 100644 index 0000000..2bea2dd --- /dev/null +++ b/java/greenfoot/dummy/README.TXT @@ -0,0 +1,12 @@ +------------------------------------------------------------------------ +This is the project README file. Here, you should describe your project. +Tell the reader (someone who does not know anything about this project) +all he/she needs to know. The comments should usually include at least: +------------------------------------------------------------------------ + +PROJECT TITLE: +PURPOSE OF PROJECT: +VERSION or DATE: +HOW TO START THIS PROJECT: +AUTHORS: +USER INSTRUCTIONS: diff --git a/java/greenfoot/dummy/project.greenfoot b/java/greenfoot/dummy/project.greenfoot new file mode 100644 index 0000000..b144b38 --- /dev/null +++ b/java/greenfoot/dummy/project.greenfoot @@ -0,0 +1,34 @@ +#Greenfoot project file +editor.fx.0.height=0 +editor.fx.0.width=0 +editor.fx.0.x=0 +editor.fx.0.y=0 +height=948 +package.numDependencies=0 +package.numTargets=1 +project.charset=UTF-8 +publish.hasSource=false +publish.locked=true +publish.longDesc= +publish.shortDesc= +publish.tags= +publish.title= +publish.url= +readme.height=58 +readme.name=@README +readme.width=47 +readme.x=10 +readme.y=10 +simulation.speed=50 +target1.height=50 +target1.name=MyWorld +target1.showInterface=false +target1.type=ClassTarget +target1.width=80 +target1.x=0 +target1.y=0 +version=3.0.0 +width=1162 +world.lastInstantiated=MyWorld +xPosition=1169 +yPosition=441 diff --git a/java/greenfoot/race-car/project.greenfoot b/java/greenfoot/race-car/project.greenfoot index 92319bf..c3e0b66 100644 --- a/java/greenfoot/race-car/project.greenfoot +++ b/java/greenfoot/race-car/project.greenfoot @@ -19,10 +19,10 @@ dependency5.type=UsesDependency dependency6.from=RedCar dependency6.to=MyWorld dependency6.type=UsesDependency -editor.fx.0.height=0 -editor.fx.0.width=0 -editor.fx.0.x=0 -editor.fx.0.y=0 +editor.fx.0.height=737 +editor.fx.0.width=800 +editor.fx.0.x=1520 +editor.fx.0.y=492 height=785 package.numDependencies=6 package.numTargets=4 From 0f109412c29f786935fdf6f413f8c04c565e9904 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 09:38:17 -0400 Subject: [PATCH 012/186] remove --- java/greenfoot/dummy/MyWorld.ctxt | 7 ------ java/greenfoot/dummy/MyWorld.java | 21 ---------------- java/greenfoot/dummy/README.TXT | 12 --------- java/greenfoot/dummy/project.greenfoot | 34 -------------------------- 4 files changed, 74 deletions(-) delete mode 100644 java/greenfoot/dummy/MyWorld.ctxt delete mode 100644 java/greenfoot/dummy/MyWorld.java delete mode 100644 java/greenfoot/dummy/README.TXT delete mode 100644 java/greenfoot/dummy/project.greenfoot diff --git a/java/greenfoot/dummy/MyWorld.ctxt b/java/greenfoot/dummy/MyWorld.ctxt deleted file mode 100644 index aa3a0a6..0000000 --- a/java/greenfoot/dummy/MyWorld.ctxt +++ /dev/null @@ -1,7 +0,0 @@ -#BlueJ class context -comment0.target=MyWorld -comment0.text=\n\ Write\ a\ description\ of\ class\ MyWorld\ here.\n\ \n\ @author\ (your\ name)\ \n\ @version\ (a\ version\ number\ or\ a\ date)\n -comment1.params= -comment1.target=MyWorld() -comment1.text=\n\ Constructor\ for\ objects\ of\ class\ MyWorld.\n\ \n -numComments=2 diff --git a/java/greenfoot/dummy/MyWorld.java b/java/greenfoot/dummy/MyWorld.java deleted file mode 100644 index 3b3080b..0000000 --- a/java/greenfoot/dummy/MyWorld.java +++ /dev/null @@ -1,21 +0,0 @@ -import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) - -/** - * Write a description of class MyWorld here. - * - * @author (your name) - * @version (a version number or a date) - */ -public class MyWorld extends World -{ - - /** - * Constructor for objects of class MyWorld. - * - */ - public MyWorld() - { - // Create a new world with 600x400 cells with a cell size of 1x1 pixels. - super(600, 400, 1); - } -} diff --git a/java/greenfoot/dummy/README.TXT b/java/greenfoot/dummy/README.TXT deleted file mode 100644 index 2bea2dd..0000000 --- a/java/greenfoot/dummy/README.TXT +++ /dev/null @@ -1,12 +0,0 @@ ------------------------------------------------------------------------- -This is the project README file. Here, you should describe your project. -Tell the reader (someone who does not know anything about this project) -all he/she needs to know. The comments should usually include at least: ------------------------------------------------------------------------- - -PROJECT TITLE: -PURPOSE OF PROJECT: -VERSION or DATE: -HOW TO START THIS PROJECT: -AUTHORS: -USER INSTRUCTIONS: diff --git a/java/greenfoot/dummy/project.greenfoot b/java/greenfoot/dummy/project.greenfoot deleted file mode 100644 index b144b38..0000000 --- a/java/greenfoot/dummy/project.greenfoot +++ /dev/null @@ -1,34 +0,0 @@ -#Greenfoot project file -editor.fx.0.height=0 -editor.fx.0.width=0 -editor.fx.0.x=0 -editor.fx.0.y=0 -height=948 -package.numDependencies=0 -package.numTargets=1 -project.charset=UTF-8 -publish.hasSource=false -publish.locked=true -publish.longDesc= -publish.shortDesc= -publish.tags= -publish.title= -publish.url= -readme.height=58 -readme.name=@README -readme.width=47 -readme.x=10 -readme.y=10 -simulation.speed=50 -target1.height=50 -target1.name=MyWorld -target1.showInterface=false -target1.type=ClassTarget -target1.width=80 -target1.x=0 -target1.y=0 -version=3.0.0 -width=1162 -world.lastInstantiated=MyWorld -xPosition=1169 -yPosition=441 From c0cde19554f16e8b5d5ed46a03c5eebf40fb8ee8 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 10:36:56 -0400 Subject: [PATCH 013/186] fix dragging events --- html/checkers/index.html | 102 ++++++++++++++++++++++++--------------- 1 file changed, 64 insertions(+), 38 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index 6667f2e..d1ed748 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -44,6 +44,7 @@

Checkers

const nCols = 8; let board; let movingPiece = undefined; + let dragOverTd = undefined; let pieces; let pMap; @@ -98,39 +99,52 @@

Checkers

const td = getImageCell(img.id); const data = td.innerHTML; e.dataTransfer.setData('text/html', data); - console.log('START handlePieceDragStart'); - console.log(e); - console.log(data); - console.log(e.dataTransfer.getData('text/html')); - console.log('STOP handlePieceDragStart'); + console.log('handlePieceDragStart'); } function handlePieceDragEnter(e) { - // if (e.preventDefault) { - // e.preventDefault(); - // } - - // e.dataTransfer.dropEffect = 'move'; + const img = e.srcElement; + const td = getImageCell(img.id); + if (movingPiece) { + const tokens = td.id.split('-'); + const r = +tokens[1]; + const c = +tokens[2]; - // return false; + const isLegalMove = movingPiece.isLegalMove(r, c); + const clazz = isLegalMove ? 'over-legal' : 'over-illegal'; + td.classList.add(clazz); + dragOverTd = td; + console.log(isLegalMove, clazz, td.classList, dragOverTd); + } + console.log(`handlePieceDragEnter ${td.id}`); } function handlePieceDragOver(e) { const img = e.srcElement; const td = getImageCell(img.id); - td.classList.add('over-illegal'); + if (movingPiece) { + const tokens = td.id.split('-'); + const r = +tokens[1]; + const c = +tokens[2]; + + td.classList.add(movingPiece.isLegalMove(r, c) ? 'over-legal' : 'over-illegal'); + dragOverTd = td; + } + console.log(`handlePieceDragOver ${td.id}`); } function handlePieceDragLeave(e) { const img = e.srcElement; const td = getImageCell(img.id); td.classList.remove('over-illegal'); + console.log('handlePieceDragLeave'); } function handlePieceDragEnd(e) { const img = e.srcElement; img.style.opacity = '1.0'; movingPiece = undefined; + console.log('handlePieceDragEnd'); } function initCell(pieces) { @@ -154,13 +168,11 @@

Checkers

} function handleCellDragEnter(e) { - // if (e.preventDefault) { - // e.preventDefault(); - // } - - // e.dataTransfer.dropEffect = 'move'; - - // return false; + const td = e.srcElement; + if (!td.id.startsWith('cell')) { + return; + } + // console.log(`handleCellDragEnter ${td.id}`); } function handleCellDragOver(e) { @@ -171,21 +183,28 @@

Checkers

e.dataTransfer.dropEffect = 'move'; const td = e.srcElement; - const id = td.id; - if (id.startsWith('cell')) { - const tokens = id.split('-'); - const r = +tokens[1]; - const c = +tokens[2]; - if (movingPiece) { - td.classList.add(movingPiece.isLegalMove(r, c) ? 'over-legal' : 'over-illegal'); - } + if (!td.id.startsWith('cell')) { + return; + } + + const tokens = td.id.split('-'); + const r = +tokens[1]; + const c = +tokens[2]; + if (movingPiece) { + td.classList.add(movingPiece.isLegalMove(r, c) ? 'over-legal' : 'over-illegal'); + dragOverTd = td; } + // console.log(`handleCellDragOver ${td.id}`); } function handleCellDragLeave(e) { const td = e.srcElement; + if (!td.id.startsWith('cell')) { + return; + } td.classList.remove('over-legal'); td.classList.remove('over-illegal'); + // console.log(`handleCellDragLeave ${td.id}`); } function handleCellDrop(e) { @@ -194,23 +213,30 @@

Checkers

} const td = e.srcElement; - console.log('START handleCellDrop'); - console.log(td); - console.log(e.dataTransfer.getData('text/html')) - console.log('STOP handleCellDrop'); + if (!td.id.startsWith('cell')) { + return; + } + // console.log('START handleCellDrop'); + // console.log(td); + // console.log(e.dataTransfer.getData('text/html')) + // console.log('STOP handleCellDrop'); + // console.log('handlePieceDragEnd'); return false; } function handleCellDragEnd(e) { - console.log('START handleCellDragEnd'); + if (dragOverTd) { + dragOverTd.classList.remove('over-legal'); + dragOverTd.classList.remove('over-illegal'); + dragOverTd = undefined; + } + const td = getImageCell(e.srcElement.id); - console.log(td.id); - console.log(td.classList); - td.classList.remove('over-legal'); - td.classList.remove('over-illegal'); - console.log(td.classList); - console.log('STOP handleCellDragEnd'); + if (!td.id.startsWith('cell')) { + return; + } + // console.log(`handlePieceDragEnd ${td.id}`); } function initTable(board) { From aeada69591e8281a5affab597c12ec5aeed27c9f Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 10:40:46 -0400 Subject: [PATCH 014/186] comment events --- html/checkers/index.html | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index d1ed748..4a6d587 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -99,7 +99,7 @@

Checkers

const td = getImageCell(img.id); const data = td.innerHTML; e.dataTransfer.setData('text/html', data); - console.log('handlePieceDragStart'); + // console.log('handlePieceDragStart'); } function handlePieceDragEnter(e) { @@ -114,9 +114,8 @@

Checkers

const clazz = isLegalMove ? 'over-legal' : 'over-illegal'; td.classList.add(clazz); dragOverTd = td; - console.log(isLegalMove, clazz, td.classList, dragOverTd); } - console.log(`handlePieceDragEnter ${td.id}`); + // console.log(`handlePieceDragEnter ${td.id}`); } function handlePieceDragOver(e) { @@ -130,21 +129,21 @@

Checkers

td.classList.add(movingPiece.isLegalMove(r, c) ? 'over-legal' : 'over-illegal'); dragOverTd = td; } - console.log(`handlePieceDragOver ${td.id}`); + // console.log(`handlePieceDragOver ${td.id}`); } function handlePieceDragLeave(e) { const img = e.srcElement; const td = getImageCell(img.id); td.classList.remove('over-illegal'); - console.log('handlePieceDragLeave'); + // console.log('handlePieceDragLeave'); } function handlePieceDragEnd(e) { const img = e.srcElement; img.style.opacity = '1.0'; movingPiece = undefined; - console.log('handlePieceDragEnd'); + // console.log('handlePieceDragEnd'); } function initCell(pieces) { From 24474c7bca599c54e95999e25fe7cbce544f6588 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 11:13:45 -0400 Subject: [PATCH 015/186] fxing drop handling --- html/checkers/index.html | 63 +++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 8 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index 4a6d587..d0c6799 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -45,6 +45,7 @@

Checkers

let board; let movingPiece = undefined; let dragOverTd = undefined; + let cellSource = undefined; let pieces; let pMap; @@ -76,10 +77,17 @@

Checkers

return m; } - function getImageCell(imageId) { - const tokens = imageId.split('-'); + function getCoordinate(id) { + const tokens = id.split('-'); const r = +tokens[1]; const c = +tokens[2]; + return [r, c]; + } + + function getImageCell(imageId) { + const coord = getCoordinate(imageId); + const r = coord[0]; + const c = coord[1]; const cellId = `cell-${r}-${c}` const td = document.getElementById(cellId); return td; @@ -99,7 +107,8 @@

Checkers

const td = getImageCell(img.id); const data = td.innerHTML; e.dataTransfer.setData('text/html', data); - // console.log('handlePieceDragStart'); + cellSource = td; + // console.log(`handlePieceDragStart ${td.id} ${img.id}`); } function handlePieceDragEnter(e) { @@ -139,10 +148,17 @@

Checkers

// console.log('handlePieceDragLeave'); } + function handlePieceDragDrop(e) { + const img = e.srcElement; + const td = getImageCell(img.id); + handleDrop(td); + } + function handlePieceDragEnd(e) { const img = e.srcElement; img.style.opacity = '1.0'; movingPiece = undefined; + cellSource = undefined; // console.log('handlePieceDragEnd'); } @@ -158,6 +174,7 @@

Checkers

img.addEventListener('dragenter', handlePieceDragEnter, false); img.addEventListener('dragover', handlePieceDragOver, false); img.addEventListener('dragleave', handlePieceDragLeave, false); + img.addEventListener('drop', handlePieceDragDrop, false); img.addEventListener('dragend', handlePieceDragEnd, false); const cellId = `cell-${piece.row}-${piece.col}`; @@ -166,6 +183,13 @@

Checkers

} } + function handleCellDragStart(e) { + const td = e.srcElement; + if (!td.id.startsWith('cell')) { + return; + } + } + function handleCellDragEnter(e) { const td = e.srcElement; if (!td.id.startsWith('cell')) { @@ -196,6 +220,31 @@

Checkers

// console.log(`handleCellDragOver ${td.id}`); } + function handleDrop(cellTarget) { + if (!(movingPiece && cellSource && cellTarget)) { + return; + } + + const sourceCoord = getCoordinate(cellSource.id); + const targetCoord = getCoordinate(cellTarget.id); + + const sR = sourceCoord[0]; + const tR = targetCoord[0]; + + const sC = sourceCoord[1]; + const tC = targetCoord[1]; + + if (!movingPiece.isLegalMove(tR, tC)) { + return; + } + + console.log('START handleDrop'); + console.log(movingPiece); + console.log(cellSource); + console.log(cellTarget); + console.log('STOP handleDrop'); + } + function handleCellDragLeave(e) { const td = e.srcElement; if (!td.id.startsWith('cell')) { @@ -215,11 +264,8 @@

Checkers

if (!td.id.startsWith('cell')) { return; } - // console.log('START handleCellDrop'); - // console.log(td); - // console.log(e.dataTransfer.getData('text/html')) - // console.log('STOP handleCellDrop'); - // console.log('handlePieceDragEnd'); + + handleDrop(td); return false; } @@ -247,6 +293,7 @@

Checkers

cell.id = `cell-${r}-${c}`; cell.classList.add('checker-cell'); cell.classList.add(board[r][c].color === 'brown' ? 'brown-cell' : 'red-cell'); + cell.addEventListener('dragstart', handleCellDragStart, false); cell.addEventListener('dragenter', handleCellDragEnter, false); cell.addEventListener('dragover', handleCellDragOver, false); cell.addEventListener('dragleave', handleCellDragLeave, false); From b23098833ac13ebf46221e4671584f32049b51ff Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 11:26:39 -0400 Subject: [PATCH 016/186] fix moving piece --- html/checkers/index.html | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index d0c6799..a2ac904 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -238,11 +238,29 @@

Checkers

return; } - console.log('START handleDrop'); - console.log(movingPiece); - console.log(cellSource); - console.log(cellTarget); - console.log('STOP handleDrop'); + cellTarget.innerHTML = cellSource.innerHTML; + cellTarget.classList.remove('over-legal'); + cellSource.innerHTML = ''; + + const img = document.getElementById(`img-${sR}-${sC}`); + img.style.opacity = '1.0'; + img.id = `img-${tR}-${tC}`; + img.addEventListener('dragstart', handlePieceDragStart, false); + img.addEventListener('dragenter', handlePieceDragEnter, false); + img.addEventListener('dragover', handlePieceDragOver, false); + img.addEventListener('dragleave', handlePieceDragLeave, false); + img.addEventListener('drop', handlePieceDragDrop, false); + img.addEventListener('dragend', handlePieceDragEnd, false); + + const piece = pMap[sR][sC]; + piece.row = tR; + piece.col = tC; + + delete pMap[sR][sC]; + if (!pMap.hasOwnProperty(tR)) { + pMap[tR] = {}; + } + pMap[tR][tC] = piece; } function handleCellDragLeave(e) { From af9b04e28475358dcd682c8475f4b7474f11a374 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 11:28:56 -0400 Subject: [PATCH 017/186] do nothing if src and target are the same --- html/checkers/index.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/html/checkers/index.html b/html/checkers/index.html index a2ac904..5108c5b 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -234,7 +234,13 @@

Checkers

const sC = sourceCoord[1]; const tC = targetCoord[1]; + if (sR === tR && sC === tC) { + // source and target are the same + return; + } + if (!movingPiece.isLegalMove(tR, tC)) { + // illegal move return; } From 287568abfd8b807165a46063530c78df95949f63 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 12:25:00 -0400 Subject: [PATCH 018/186] capture --- html/checkers/index.html | 58 ++++++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index 5108c5b..5981783 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -376,6 +376,47 @@

Checkers

} } + function isCellOccupied(r, c) { + if (pMap.hasOwnProperty(r) && pMap[r].hasOwnProperty(c)) { + return true; + } + return false; + } + + function isCaptureMove(color, sR, sC, tR, tC) { + let dR = color === 'black'? 2 : -2; + let rcR = sR + dR; + let lcR = sR + dR; + + let rcC = sC + 2; + let lcC = sC - 2; + + const leftValid = tR === lcR && tC === lcC && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; + const rightValid = tR === rcR && tC === rcC && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; + + if (!leftValid && !rightValid) { + console.log('not left or right valid'); + return false; + } + + dR = color === 'black'? 1 : -1; + rcR = sR + dR; + lcR = sR + dR; + + rcC = sC + 1; + lcC = sC - 1; + + if (isCellOccupied(rcR, rcC) && rightValid) { + return true; + } + + if (isCellOccupied(lcR, lcC) && leftValid) { + return true; + } + + return false; + } + function getPiece(r, c) { const cellColor = getCellColor(r, c); let color = undefined; @@ -397,18 +438,25 @@

Checkers

color: color, image: image, isLegalMove: function(r, c) { + // there can be no pieces on the brown squares const cellColor = getCellColor(r, c); if (cellColor === 'brown') { return false; } - if (pMap.hasOwnProperty(r)) { - if (pMap[r].hasOwnProperty(c)) { - return false; - } + + // cannot move to an occupied space + if (isCellOccupied(r, c)) { + return false; } + if (this.color === 'black' && this.row + 1 === r) { + // black can move down + return true; + } else if (this.color === 'red' && this.row - 1 === r) { + // red can move up return true; - } else if(this.color === 'red' && this.row - 1 === r) { + } else if (isCaptureMove(this.color, this.row, this.col, r, c)) { + // can capture return true; } return false; From db1850bc13360a181d191351a334c91531a406ae Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 12:33:22 -0400 Subject: [PATCH 019/186] wait your turn --- html/checkers/index.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/html/checkers/index.html b/html/checkers/index.html index 5981783..aa2e93b 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -46,6 +46,7 @@

Checkers

let movingPiece = undefined; let dragOverTd = undefined; let cellSource = undefined; + let playerTurn = 'red'; let pieces; let pMap; @@ -267,6 +268,8 @@

Checkers

pMap[tR] = {}; } pMap[tR][tC] = piece; + + playerTurn = 'red' === playerTurn ? 'black' : 'red'; } function handleCellDragLeave(e) { @@ -438,6 +441,11 @@

Checkers

color: color, image: image, isLegalMove: function(r, c) { + // wait your turn + if (this.color !== playerTurn) { + return false; + } + // there can be no pieces on the brown squares const cellColor = getCellColor(r, c); if (cellColor === 'brown') { From ee3430ee6115e28071cb51719c73bc4dd732168b Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 12:33:46 -0400 Subject: [PATCH 020/186] remove --- html/checkers/index.html | 3 --- 1 file changed, 3 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index aa2e93b..b88e0de 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -57,9 +57,6 @@

Checkers

initTable(board); initCell(pieces); - - console.log(board); - console.log(pieces); } function toMap(pieces) { From 4814bdb8feac80581fbfd4bb9c231bb5b078b64a Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 12:46:20 -0400 Subject: [PATCH 021/186] refactor --- html/checkers/index.html | 41 ++++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index b88e0de..e4125a5 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -383,37 +383,54 @@

Checkers

return false; } - function isCaptureMove(color, sR, sC, tR, tC) { + function isLeftCapture(color, sR, sC, tR, tC) { let dR = color === 'black'? 2 : -2; - let rcR = sR + dR; let lcR = sR + dR; - - let rcC = sC + 2; let lcC = sC - 2; const leftValid = tR === lcR && tC === lcC && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; + + if (!leftValid) { + return false; + } + + dR = color === 'black'? 1 : -1; + lcR = sR + dR; + lcC = sC - 1; + + if (isCellOccupied(lcR, lcC) && leftValid) { + return true; + } + + return false; + } + + function isRightCapture(color, sR, sC, tR, tC) { + let dR = color === 'black'? 2 : -2; + let rcR = sR + dR; + let rcC = sC + 2; + const rightValid = tR === rcR && tC === rcC && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; - if (!leftValid && !rightValid) { - console.log('not left or right valid'); + if (!rightValid) { return false; } dR = color === 'black'? 1 : -1; rcR = sR + dR; - lcR = sR + dR; - rcC = sC + 1; - lcC = sC - 1; - + if (isCellOccupied(rcR, rcC) && rightValid) { return true; } - if (isCellOccupied(lcR, lcC) && leftValid) { + return false; + } + + function isCaptureMove(color, sR, sC, tR, tC) { + if (isLeftCapture(color, sR, sC, tR, tC) || isRightCapture(color, sR, sC, tR, tC)) { return true; } - return false; } From 29acc7d6083b5a33e5ced589d3e7d490941cf4a0 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 12:48:42 -0400 Subject: [PATCH 022/186] simplify --- html/checkers/index.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index e4125a5..aa7c942 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -388,9 +388,9 @@

Checkers

let lcR = sR + dR; let lcC = sC - 2; - const leftValid = tR === lcR && tC === lcC && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; + const isValidMove = tR === lcR && tC === lcC && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; - if (!leftValid) { + if (!isValidMove) { return false; } @@ -398,7 +398,7 @@

Checkers

lcR = sR + dR; lcC = sC - 1; - if (isCellOccupied(lcR, lcC) && leftValid) { + if (isCellOccupied(lcR, lcC)) { return true; } @@ -410,9 +410,9 @@

Checkers

let rcR = sR + dR; let rcC = sC + 2; - const rightValid = tR === rcR && tC === rcC && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; + const isValidMove = tR === rcR && tC === rcC && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; - if (!rightValid) { + if (!isValidMove) { return false; } @@ -420,7 +420,7 @@

Checkers

rcR = sR + dR; rcC = sC + 1; - if (isCellOccupied(rcR, rcC) && rightValid) { + if (isCellOccupied(rcR, rcC)) { return true; } From fe84a02618d68276cc3953156a196043b19c8f94 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 13:34:55 -0400 Subject: [PATCH 023/186] refactored to make more modular --- html/checkers/index.html | 61 +++++++++++++++++++++++++++++----------- 1 file changed, 45 insertions(+), 16 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index aa7c942..ad0dadd 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -257,6 +257,7 @@

Checkers

img.addEventListener('dragend', handlePieceDragEnd, false); const piece = pMap[sR][sC]; + piece.row = tR; piece.col = tC; @@ -383,22 +384,50 @@

Checkers

return false; } + function getLeftCaptureMoveCoordinate(color, sR, sC) { + const dR = color === 'black'? 2 : -2; + const r = sR + dR; + const c = sC - 2; + return [r, c]; + } + + function getRightCaptureMoveCoordinate(color, sR, sC) { + const dR = color === 'black'? 2 : -2; + const r = sR + dR; + const c = sC + 2; + return [r, c]; + } + + function getLeftCaptureCoordinate(color, sR, sC) { + const dR = color === 'black'? 1 : -1; + const r = sR + dR; + const c = sC - 1; + return [r, c]; + } + + function getRightCaptureCoordinate(color, sR, sC) { + const dR = color === 'black'? 1 : -1; + const r = sR + dR; + const c = sC + 1; + return [r, c]; + } + function isLeftCapture(color, sR, sC, tR, tC) { - let dR = color === 'black'? 2 : -2; - let lcR = sR + dR; - let lcC = sC - 2; + let coordinate = getLeftCaptureMoveCoordinate(color, sR, sC); + let r = coordinate[0]; + let c = coordinate[1]; - const isValidMove = tR === lcR && tC === lcC && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; + const isValidMove = tR === r && tC === c && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; if (!isValidMove) { return false; } - dR = color === 'black'? 1 : -1; - lcR = sR + dR; - lcC = sC - 1; + coordinate = getLeftCaptureCoordinate(color, sR, sC); + r = coordinate[0]; + c = coordinate[1]; - if (isCellOccupied(lcR, lcC)) { + if (isCellOccupied(r, c)) { return true; } @@ -406,21 +435,21 @@

Checkers

} function isRightCapture(color, sR, sC, tR, tC) { - let dR = color === 'black'? 2 : -2; - let rcR = sR + dR; - let rcC = sC + 2; + let coordinate = getRightCaptureMoveCoordinate(color, sR, sC); + let r = coordinate[0]; + let c = coordinate[1]; - const isValidMove = tR === rcR && tC === rcC && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; + const isValidMove = tR === r && tC === c && 0 <= tR && tR < nRows && 0 <= tC && tC < nCols; if (!isValidMove) { return false; } - dR = color === 'black'? 1 : -1; - rcR = sR + dR; - rcC = sC + 1; + coordinate = getRightCaptureCoordinate(color, sR, sC); + r = coordinate[0]; + c = coordinate[1]; - if (isCellOccupied(rcR, rcC)) { + if (isCellOccupied(r, c)) { return true; } From 07211eeb41eaf26eaf9f8ccb9b9748cb45d2fe1d Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 13:54:31 -0400 Subject: [PATCH 024/186] remove captured piece --- html/checkers/index.html | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/html/checkers/index.html b/html/checkers/index.html index ad0dadd..2b5fd9e 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -257,6 +257,23 @@

Checkers

img.addEventListener('dragend', handlePieceDragEnd, false); const piece = pMap[sR][sC]; + + let coordinate = undefined; + if (isLeftCapture(piece.color, sR, sC, tR, tC)) { + coordinate = getLeftCaptureCoordinate(piece.color, sR, sC); + } else if (isRightCapture(piece.color, sR, sC, tR, tC)) { + coordinate = getRightCaptureCoordinate(piece.color, sR, sC); + } + + if (coordinate) { + const r = coordinate[0]; + const c = coordinate[1]; + if (pMap.hasOwnProperty(r) && pMap[r].hasOwnProperty(c)) { + delete pMap[r][c]; + } + const cellCapture = document.getElementById(`cell-${r}-${c}`); + cellCapture.innerHTML = ''; + } piece.row = tR; piece.col = tC; From 3a23503d36a81056cb27f11ee5eed6f3ac4e9e7a Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 14:21:54 -0400 Subject: [PATCH 025/186] remove from array --- html/checkers/index.html | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index 2b5fd9e..287be16 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -269,6 +269,7 @@

Checkers

const r = coordinate[0]; const c = coordinate[1]; if (pMap.hasOwnProperty(r) && pMap[r].hasOwnProperty(c)) { + pieces.splice(pMap[r][c].index, 1); delete pMap[r][c]; } const cellCapture = document.getElementById(`cell-${r}-${c}`); @@ -347,9 +348,10 @@

Checkers

function initPieces() { const pieces = new Array(); + let i = 0; for (let r = 0; r < nRows; r++) { for (let c = 0; c < nCols; c++) { - const piece = getPiece(r, c); + const piece = getPiece(i, r, c); if (piece) { pieces.push(piece); } @@ -480,7 +482,7 @@

Checkers

return false; } - function getPiece(r, c) { + function getPiece(i, r, c) { const cellColor = getCellColor(r, c); let color = undefined; let image = undefined; @@ -495,6 +497,7 @@

Checkers

if (color && image) { return { + index: i, row: r, col: c, isCrowned: false, From 12202168b6f2ae6e24ce027ab4ef19a07c9b9757 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 14:24:03 -0400 Subject: [PATCH 026/186] reset globals --- html/checkers/index.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/html/checkers/index.html b/html/checkers/index.html index 287be16..40b6d34 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -286,6 +286,9 @@

Checkers

pMap[tR][tC] = piece; playerTurn = 'red' === playerTurn ? 'black' : 'red'; + movingPiece = undefined; + dragOverTd = undefined; + cellSource = undefined; } function handleCellDragLeave(e) { From 500c09dab8ada368d7bc7a7b1e35d6f0be937278 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 14:28:04 -0400 Subject: [PATCH 027/186] reset --- html/checkers/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/html/checkers/index.html b/html/checkers/index.html index 40b6d34..ca93570 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -156,6 +156,7 @@

Checkers

const img = e.srcElement; img.style.opacity = '1.0'; movingPiece = undefined; + dragOverTd = undefined; cellSource = undefined; // console.log('handlePieceDragEnd'); } From c7162fe224aaa2261411718b3464333d69ea2ba7 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 14:45:53 -0400 Subject: [PATCH 028/186] fix dnd for brown cells --- html/checkers/index.html | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index ca93570..9035553 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -156,7 +156,6 @@

Checkers

const img = e.srcElement; img.style.opacity = '1.0'; movingPiece = undefined; - dragOverTd = undefined; cellSource = undefined; // console.log('handlePieceDragEnd'); } @@ -340,12 +339,22 @@

Checkers

cell.id = `cell-${r}-${c}`; cell.classList.add('checker-cell'); cell.classList.add(board[r][c].color === 'brown' ? 'brown-cell' : 'red-cell'); - cell.addEventListener('dragstart', handleCellDragStart, false); - cell.addEventListener('dragenter', handleCellDragEnter, false); - cell.addEventListener('dragover', handleCellDragOver, false); - cell.addEventListener('dragleave', handleCellDragLeave, false); - cell.addEventListener('drop', handleCellDrop, false); - cell.addEventListener('dragend', handleCellDragEnd, false); + if (board[r][c].color !== 'brown') { + cell.addEventListener('dragstart', handleCellDragStart, false); + cell.addEventListener('dragenter', handleCellDragEnter, false); + cell.addEventListener('dragover', handleCellDragOver, false); + cell.addEventListener('dragleave', handleCellDragLeave, false); + cell.addEventListener('drop', handleCellDrop, false); + cell.addEventListener('dragend', handleCellDragEnd, false); + } else { + cell.addEventListener('dragstart', (e) => { e.preventDefault(); }, false); + // cell.addEventListener('dragenter', handleCellDragEnter, false); + // cell.addEventListener('dragover', handleCellDragOver, false); + // cell.addEventListener('dragleave', handleCellDragLeave, false); + // cell.addEventListener('drop', handleCellDrop, false); + // cell.addEventListener('dragend', handleCellDragEnd, false); + } + } } } From f5304ec2df12d4514e29bbd94a044c5c73d9c563 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 14:48:17 -0400 Subject: [PATCH 029/186] restrict legal moves --- html/checkers/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index 9035553..c41af16 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -533,10 +533,10 @@

Checkers

return false; } - if (this.color === 'black' && this.row + 1 === r) { + if (this.color === 'black' && this.row + 1 === r && (this.col - 1 === c || this.col + 1 === c)) { // black can move down return true; - } else if (this.color === 'red' && this.row - 1 === r) { + } else if (this.color === 'red' && this.row - 1 === r && (this.col - 1 === c || this.col + 1 === c)) { // red can move up return true; } else if (isCaptureMove(this.color, this.row, this.col, r, c)) { From ff7296490fbd139ba3a2c0c78fea030b21613c86 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 14:51:37 -0400 Subject: [PATCH 030/186] use function to get coord --- html/checkers/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index c41af16..5698bab 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -208,9 +208,9 @@

Checkers

return; } - const tokens = td.id.split('-'); - const r = +tokens[1]; - const c = +tokens[2]; + const coordinates = getCoordinate(td.id); + const r = coordinates[0]; + const c = coordinates[1]; if (movingPiece) { td.classList.add(movingPiece.isLegalMove(r, c) ? 'over-legal' : 'over-illegal'); dragOverTd = td; From 62379416772a5afe97a3675e34e2b0aa1ed16131 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 14:59:14 -0400 Subject: [PATCH 031/186] no highlighting --- html/checkers/index.html | 5 ----- 1 file changed, 5 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index 5698bab..e47365a 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -348,11 +348,6 @@

Checkers

cell.addEventListener('dragend', handleCellDragEnd, false); } else { cell.addEventListener('dragstart', (e) => { e.preventDefault(); }, false); - // cell.addEventListener('dragenter', handleCellDragEnter, false); - // cell.addEventListener('dragover', handleCellDragOver, false); - // cell.addEventListener('dragleave', handleCellDragLeave, false); - // cell.addEventListener('drop', handleCellDrop, false); - // cell.addEventListener('dragend', handleCellDragEnd, false); } } From dee5ac9b41294fa1388847bee4a1925c41ebeaf4 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 15:12:54 -0400 Subject: [PATCH 032/186] fix illegal drops --- html/checkers/index.html | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/html/checkers/index.html b/html/checkers/index.html index e47365a..6f77f85 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -348,6 +348,31 @@

Checkers

cell.addEventListener('dragend', handleCellDragEnd, false); } else { cell.addEventListener('dragstart', (e) => { e.preventDefault(); }, false); + cell.addEventListener('dragenter', (e) => { + e.preventDefault(); + if (e.srcElement.id.startsWith('cell')) + e.srcElement.classList.add('over-illegal'); + }, false); + cell.addEventListener('dragover', (e) => { + e.preventDefault(); + if (e.srcElement.id.startsWith('cell')) + e.srcElement.classList.add('over-illegal'); + }, false); + cell.addEventListener('dragleave', (e) => { + e.preventDefault(); + if (e.srcElement.id.startsWith('cell')) + e.srcElement.classList.remove('over-illegal'); + }, false); + cell.addEventListener('drop', (e) => { + e.preventDefault(); + if (e.srcElement.id.startsWith('cell')) + e.srcElement.classList.remove('over-illegal'); + }, false); + cell.addEventListener('dragend', (e) => { + e.preventDefault(); + if (e.srcElement.id.startsWith('cell')) + e.srcElement.classList.remove('over-illegal'); + }, false); } } From ddd7adf89c8243c60ce3fa7900018391213e89a4 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 15:22:37 -0400 Subject: [PATCH 033/186] add queen image --- html/checkers/images/black-queen.png | Bin 0 -> 81942 bytes html/checkers/images/red-queen.png | Bin 0 -> 32214 bytes html/checkers/index.html | 4 ++++ 3 files changed, 4 insertions(+) create mode 100644 html/checkers/images/black-queen.png create mode 100644 html/checkers/images/red-queen.png diff --git a/html/checkers/images/black-queen.png b/html/checkers/images/black-queen.png new file mode 100644 index 0000000000000000000000000000000000000000..8252a96fe3b0ff137ea22928e37beda80ce8f551 GIT binary patch literal 81942 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
Y{UP{4Wq2LAd+oS) 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 const cellColor = getCellColor(r, c); let color = undefined; let image = undefined; + let queenImage = undefined; if (r < 2 && cellColor === 'white') { color = 'black'; image = 'images/black.png'; + queenImage = 'images/black-queen.png'; } else if (r > 5 && cellColor === 'white') { color = 'red'; image = 'images/red.png'; + queenImage = 'images/red-queen.png'; } if (color && image) { @@ -536,6 +539,7 @@

Checkers

isCrowned: false, color: color, image: image, + queenImage: queenImage, isLegalMove: function(r, c) { // wait your turn if (this.color !== playerTurn) { From d9f068576250c179b3289160a96cd14851010c88 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 15:32:42 -0400 Subject: [PATCH 034/186] handle crowning --- html/checkers/index.html | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/html/checkers/index.html b/html/checkers/index.html index 39fd4d2..2929530 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -285,12 +285,36 @@

Checkers

} pMap[tR][tC] = piece; + handleCrowning(piece); + playerTurn = 'red' === playerTurn ? 'black' : 'red'; movingPiece = undefined; dragOverTd = undefined; cellSource = undefined; } + function handleCrowning(piece) { + // already crowned + if (piece.isCrowned === true) { + return; + } + + if (piece.color === 'red') { + if (piece.row === 0) { + piece.isCrowned = true; + } + } else if (piece.color === 'black') { + if (piece.row === nRows - 1) { + piece.isCrowned = true; + } + } + + if (piece.isCrowned === true) { + const id = `img-${piece.row}-${piece.col}`; + document.getElementById(id).src = piece.queenImage; + } + } + function handleCellDragLeave(e) { const td = e.srcElement; if (!td.id.startsWith('cell')) { From b81358dfeaa7fb733a2a93d3bcced775b12dc36f Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 19:36:46 -0400 Subject: [PATCH 035/186] add queen moves --- html/checkers/index.html | 101 +++++++++++++++++++++++++++++++++------ 1 file changed, 87 insertions(+), 14 deletions(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index 2929530..2205371 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -259,10 +259,19 @@

Checkers

const piece = pMap[sR][sC]; let coordinate = undefined; - if (isLeftCapture(piece.color, sR, sC, tR, tC)) { - coordinate = getLeftCaptureCoordinate(piece.color, sR, sC); - } else if (isRightCapture(piece.color, sR, sC, tR, tC)) { - coordinate = getRightCaptureCoordinate(piece.color, sR, sC); + if (piece.isCrowned === false) { + if (isLeftCapture(piece.color, sR, sC, tR, tC)) { + coordinate = getLeftCaptureCoordinate(piece.color, sR, sC); + } else if (isRightCapture(piece.color, sR, sC, tR, tC)) { + coordinate = getRightCaptureCoordinate(piece.color, sR, sC); + } + } else { + let coords = getQueenCaptureCoordinates(sR, sC); + Object.keys(coords).forEach((k) => { + if (coords[k].coord.r === tR && coords[k].coord.c === tC) { + coordinate = [coords[k].capture.r, coords[k].capture.c]; + } + }); } if (coordinate) { @@ -274,7 +283,7 @@

Checkers

} const cellCapture = document.getElementById(`cell-${r}-${c}`); cellCapture.innerHTML = ''; - } + } piece.row = tR; piece.col = tC; @@ -539,6 +548,34 @@

Checkers

return false; } + function getQueenLegalMoveCoordinates(qR, qC) { + const delta = 1; + const tlR = qR - delta; const tlC = qC - delta; + const trR = qR - delta; const trC = qC + delta; + const blR = qR + delta; const blC = qC - delta; + const brR = qR + delta; const brC = qC + delta; + return { + topL: {r: tlR, c: tlC}, + topR: {r: trR, c: trC}, + botL: {r: blR, c: blC}, + botR: {r: brR, c: brC} + }; + } + + function getQueenCaptureCoordinates(qR, qC) { + const delta = 2; + const tlR = qR - delta; const tlC = qC - delta; + const trR = qR - delta; const trC = qC + delta; + const blR = qR + delta; const blC = qC - delta; + const brR = qR + delta; const brC = qC + delta; + return { + topL: {coord: {r: tlR, c: tlC}, capture: {r: qR - 1, c: qC - 1}}, + topR: {coord: {r: trR, c: trC}, capture: {r: qR - 1, c: qC + 1}}, + botL: {coord: {r: blR, c: blC}, capture: {r: qR + 1, c: qC - 1}}, + botR: {coord: {r: brR, c: brC}, capture: {r: qR + 1, c: qC + 1}} + } + } + function getPiece(i, r, c) { const cellColor = getCellColor(r, c); let color = undefined; @@ -581,16 +618,52 @@

Checkers

return false; } - if (this.color === 'black' && this.row + 1 === r && (this.col - 1 === c || this.col + 1 === c)) { - // black can move down - return true; - } else if (this.color === 'red' && this.row - 1 === r && (this.col - 1 === c || this.col + 1 === c)) { - // red can move up - return true; - } else if (isCaptureMove(this.color, this.row, this.col, r, c)) { - // can capture - return true; + if (this.isCrowned === false) { + if (this.color === 'black' && this.row + 1 === r && (this.col - 1 === c || this.col + 1 === c)) { + // black can move down + return true; + } else if (this.color === 'red' && this.row - 1 === r && (this.col - 1 === c || this.col + 1 === c)) { + // red can move up + return true; + } else if (isCaptureMove(this.color, this.row, this.col, r, c)) { + // can capture + return true; + } + } else { + // check to see if a legal move was made + let coords = getQueenLegalMoveCoordinates(this.row, this.col); + let legalMove = false; + Object.keys(coords).forEach((k) => { + if (0 <= coords[k].r && coords[k].r < nRows && 0 <= coords[k].c && coords[k].c < nCols) { + if (coords[k].r === r && coords[k].c === c) { + legalMove = true; + } + } + }); + + if (legalMove === true) { + return true; + } + + // check to see if a capture move was made + coords = getQueenCaptureCoordinates(this.row, this.col); + Object.keys(coords).forEach((k) => { + if (0 <= coords[k].coord.r && coords[k].coord.r < nRows && 0 <= coords[k].coord.c && coords[k].coord.c < nCols) { + if (coords[k].coord.r === r && coords[k].coord.c === c) { + if (isCellOccupied(coords[k].capture.r, coords[k].capture.c)) { + legalMove = true; + } else { + legalMove = false; + } + } + } + }); + + if (legalMove === true) { + return true; + } } + return false; } } From 09eec7d95258b0d47e5443b3d14fc56c7b75b5d3 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 19:38:21 -0400 Subject: [PATCH 036/186] fix styles --- html/checkers/index.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/html/checkers/index.html b/html/checkers/index.html index 2205371..16db4ab 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -5,9 +5,13 @@ * { font-family: monospace; } + .center { + text-align: center; + } .checker-board { border-collapse:collapse; border:1px solid #000000; + margin: auto; } .checker-cell { border:1px solid #000000; @@ -34,7 +38,9 @@ -

Checkers

+
+

Checkers

+
From c131f37adf3d7ef8539668fbd8091a1b02380e8e Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 19:45:52 -0400 Subject: [PATCH 037/186] add link --- html/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/html/README.md b/html/README.md index 5cf4148..25c693a 100644 --- a/html/README.md +++ b/html/README.md @@ -3,4 +3,5 @@ * [guessing-game](guessing-game): Have fun coding a game that asks users to guess which number the computer will generate. * [slot-machine-game](slot-machine-game): Learn about random number generators through coding a slot machine simulator. * [rps-game](rps-game): A challenging project to code the classic Rock, Paper, Scissor game. -* [tic-tac-toe](tic-tack-toe): Classic tic tac toe. \ No newline at end of file +* [tic-tac-toe](tic-tack-toe): Classic tic tac toe. +* [checkers](checkers): Classic checkers. \ No newline at end of file From 713c1d32ceb9946998f6dbbf2aa7f1709d9dd1a5 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 19 Jun 2020 19:57:07 -0400 Subject: [PATCH 038/186] update --- html/checkers/images/logo.png | Bin 0 -> 6961 bytes html/checkers/index.html | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 html/checkers/images/logo.png diff --git a/html/checkers/images/logo.png b/html/checkers/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0b7641147d2e0a31b9521943ff5688156bcba184 GIT binary patch literal 6961 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 R<-eg0peU;*Q!Qm2^nb1^Y^eYM literal 0 HcmV?d00001 diff --git a/html/checkers/index.html b/html/checkers/index.html index 16db4ab..0c5828a 100644 --- a/html/checkers/index.html +++ b/html/checkers/index.html @@ -35,6 +35,11 @@ width: 50px; height: 50px; } + .meta-data { + border:1px solid #000000; + margin: auto; + width: 80%; + } @@ -44,6 +49,21 @@

Checkers

+ + + + + + + + + + + + \ No newline at end of file From a050e23989488ade02a4dd9f9c16701fcf461dc6 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Sat, 27 Jun 2020 01:53:03 -0400 Subject: [PATCH 080/186] set dist + diam dynamically --- html/solar-system/index.html | 107 ++++++++++++++++++++--------------- 1 file changed, 60 insertions(+), 47 deletions(-) diff --git a/html/solar-system/index.html b/html/solar-system/index.html index b69eaae..b64aa90 100644 --- a/html/solar-system/index.html +++ b/html/solar-system/index.html @@ -21,31 +21,52 @@

Solar System

- + - - + + - + - + - - + + - - + + + + + + + + + + + + + + - +
From c1e2e6cb5e61c1e957b041e87fb0ed255a357c7f Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Sat, 27 Jun 2020 01:56:09 -0400 Subject: [PATCH 081/186] shorten names --- html/solar-system/index.html | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/html/solar-system/index.html b/html/solar-system/index.html index b64aa90..5015182 100644 --- a/html/solar-system/index.html +++ b/html/solar-system/index.html @@ -69,15 +69,12 @@

Solar System

const planets = getPlanets(); - const diamParams = getDiamScalingParams(); - const distParams = getDistScalingParams(); - - console.log(diamParams); - console.log(distParams); + const pDiam = getDiamScalingParams(); + const pDist = getDistScalingParams(); planets.forEach(p => { - p.normDiam = rescale(Math.log(p.diameter), diamParams.a, diamParams.b, diamParams.min, diamParams.max); - p.normDist = cx + rescale(Math.log(p.distance), distParams.a, distParams.b, distParams.min, distParams.max); + p.normDiam = rescale(Math.log(p.diameter), pDiam.a, pDiam.b, pDiam.min, pDiam.max); + p.normDist = rescale(Math.log(p.distance), pDist.a, pDist.b, pDist.min, pDist.max) + cx; }); console.table(planets); From c8608d194d412d7c689c9585513a7c69044c813d Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Sat, 27 Jun 2020 02:05:04 -0400 Subject: [PATCH 082/186] refactor --- html/solar-system/index.html | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/html/solar-system/index.html b/html/solar-system/index.html index 5015182..52beb3a 100644 --- a/html/solar-system/index.html +++ b/html/solar-system/index.html @@ -58,13 +58,15 @@

Solar System

From 46c15dd978e8ef2260d56e0e7f555fd68bdb8f47 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Mon, 29 Jun 2020 19:27:09 -0400 Subject: [PATCH 084/186] align to right --- html/solar-system/index.html | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/html/solar-system/index.html b/html/solar-system/index.html index 8f625ab..30f1654 100644 --- a/html/solar-system/index.html +++ b/html/solar-system/index.html @@ -58,7 +58,7 @@

Solar System

+ + \ No newline at end of file From 92a75b8dea44de783d089c5572091f7bb687695f Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Tue, 30 Jun 2020 18:51:19 -0400 Subject: [PATCH 102/186] fix logic --- html/game-of-life/index.html | 37 +++++++++++++++++++++++++++++++++--- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/html/game-of-life/index.html b/html/game-of-life/index.html index 4904022..c276b83 100644 --- a/html/game-of-life/index.html +++ b/html/game-of-life/index.html @@ -36,6 +36,7 @@

Game of Life

+ 0 @@ -45,17 +46,27 @@

Game of Life

const nCols = 50; let grid; let timer; + let initialized = false; + let gen = 0; function init() { initTable(); initSelect(); grid = initGrid(); - console.log(grid); } function startSimulation() { + if (!initialized) { + console.log('game not initialized'); + return; + } + if (timer) { + console.log('simulation in progress'); + return; + } timer = setInterval(doSimulation, 500); + // doSimulation(); } function doSimulation() { @@ -63,12 +74,13 @@

Game of Life

return; } + const cells = Array(); for (let [k, cell] of grid) { const trId = `cell-${k}`; const tr = document.getElementById(trId); if (cell.isAliveNext() === true) { - cell.dead = false; + cells.push({id: k, dead: false}); if (tr.classList.contains('grid-cell-dead')) { tr.classList.remove('grid-cell-dead'); } @@ -76,7 +88,7 @@

Game of Life

tr.classList.add('grid-cell-alive'); } } else { - cell.dead = true; + cells.push({id: k, dead: true}); if (tr.classList.contains('grid-cell-alive')) { tr.classList.remove('grid-cell-alive'); } @@ -85,6 +97,19 @@

Game of Life

} } } + + cells.forEach(c => { + const cell = grid.get(c.id); + cell.dead = c.dead; + }); + + gen++; + updateGeneration(); + } + + function updateGeneration() { + const span = document.getElementById('generation'); + span.innerHTML = `${gen}`; } function clearGridColor() { @@ -119,6 +144,8 @@

Game of Life

function initSimulation() { if (timer) { clearInterval(timer); + timer = undefined; + console.log('cleared timer'); } clearGridColor(); @@ -140,6 +167,10 @@

Game of Life

} updateGridColor(); + + initialized = true; + gen = 0; + updateGeneration(); } function initSelect() { From 0f691d533052328fb0589c448b27447b85c02a4c Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Tue, 30 Jun 2020 18:57:49 -0400 Subject: [PATCH 103/186] add more patterns --- html/game-of-life/index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/html/game-of-life/index.html b/html/game-of-life/index.html index c276b83..9b2af8b 100644 --- a/html/game-of-life/index.html +++ b/html/game-of-life/index.html @@ -317,6 +317,8 @@

Game of Life

function getPatterns() { const patterns = new Map(); + patterns.set('glider', [[3, 1], [4, 2], [4, 3], [3, 3], [2, 3]]); + patterns.set('beacon', [[1, 1], [1, 2], [2, 1], [2, 2], [3, 3], [3, 4], [4, 3], [4, 4]]); patterns.set('toad', [[2, 2], [2, 3], [2, 4], [3, 1], [3, 2], [3, 3]]); patterns.set('blinker', [[1, 2], [2, 2], [3, 2]]); patterns.set('r-pentomino', [[2, 1], [1, 2], [2, 2], [3, 2], [1, 3]]); From 671ac209fdc18c1c789896de668c17d891b71081 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Tue, 30 Jun 2020 19:00:46 -0400 Subject: [PATCH 104/186] speed up --- html/game-of-life/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/game-of-life/index.html b/html/game-of-life/index.html index 9b2af8b..d6ee9c0 100644 --- a/html/game-of-life/index.html +++ b/html/game-of-life/index.html @@ -65,7 +65,7 @@

Game of Life

console.log('simulation in progress'); return; } - timer = setInterval(doSimulation, 500); + timer = setInterval(doSimulation, 100); // doSimulation(); } From 90ed5c914e762570feb7618b716be369d48b7de3 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Tue, 30 Jun 2020 20:31:13 -0400 Subject: [PATCH 105/186] add pattern --- html/game-of-life/index.html | 1 + 1 file changed, 1 insertion(+) diff --git a/html/game-of-life/index.html b/html/game-of-life/index.html index d6ee9c0..09383ab 100644 --- a/html/game-of-life/index.html +++ b/html/game-of-life/index.html @@ -317,6 +317,7 @@

Game of Life

function getPatterns() { const patterns = new Map(); + patterns.set('acorn', [[1, 2], [2, 4], [3, 1], [3, 2], [3, 5], [3, 6], [3, 7]]); patterns.set('glider', [[3, 1], [4, 2], [4, 3], [3, 3], [2, 3]]); patterns.set('beacon', [[1, 1], [1, 2], [2, 1], [2, 2], [3, 3], [3, 4], [4, 3], [4, 4]]); patterns.set('toad', [[2, 2], [2, 3], [2, 4], [3, 1], [3, 2], [3, 3]]); From 6aeb45ae863989073d4cdac12ebddc6e7903bf85 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Wed, 1 Jul 2020 07:09:25 -0400 Subject: [PATCH 106/186] add ref --- html/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/html/README.md b/html/README.md index e6223c9..0f3b044 100644 --- a/html/README.md +++ b/html/README.md @@ -5,4 +5,5 @@ * [rps-game](rps-game): A challenging project to code the classic Rock, Paper, Scissor game. * [tic-tac-toe](tic-tack-toe): Classic tic tac toe. * [checkers](checkers): Classic checkers. -* [solar-system](solar-system): A simulation of the planetary orbits in our solar system. \ No newline at end of file +* [solar-system](solar-system): A simulation of the planetary orbits in our solar system. +* [game-of-life](game-of-life): Conway's Game of Life. \ No newline at end of file From 3ac01160ead1210ed0dcb50ad2e4eb1a623a81b8 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Wed, 1 Jul 2020 07:27:37 -0400 Subject: [PATCH 107/186] add glider gun --- html/game-of-life/index.html | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/html/game-of-life/index.html b/html/game-of-life/index.html index 09383ab..1888e24 100644 --- a/html/game-of-life/index.html +++ b/html/game-of-life/index.html @@ -317,6 +317,15 @@

Game of Life

function getPatterns() { const patterns = new Map(); + patterns.set('gosper glider gun', [ + [5, 1], [5, 2], [6, 1], [6, 2], + [3, 35], [3, 36], [4, 35], [4, 36], + [5, 11], [6, 11], [7, 11], [4, 12], [8, 12], [3, 13], [3, 14], [9, 13], [9,14], + [6, 15], [4, 16], [8, 16], [5, 17], [6, 17], [7, 17], [6, 18], + [3, 21], [4, 21], [5, 21], [3, 22], [4, 22], [5, 22], + [2, 23], [6, 23], + [1, 25], [2, 25], [6, 25], [7, 25] + ]); patterns.set('acorn', [[1, 2], [2, 4], [3, 1], [3, 2], [3, 5], [3, 6], [3, 7]]); patterns.set('glider', [[3, 1], [4, 2], [4, 3], [3, 3], [2, 3]]); patterns.set('beacon', [[1, 1], [1, 2], [2, 1], [2, 2], [3, 3], [3, 4], [4, 3], [4, 4]]); From 5c514db265ec0de47bd6b3e9f443d37e85127f14 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Wed, 1 Jul 2020 08:01:41 -0400 Subject: [PATCH 108/186] generate --- html/colors/index.html | 49 ++++++++++++++++-------------------------- 1 file changed, 19 insertions(+), 30 deletions(-) diff --git a/html/colors/index.html b/html/colors/index.html index 2094171..898fc1e 100644 --- a/html/colors/index.html +++ b/html/colors/index.html @@ -15,7 +15,7 @@ } .color-cell { width: 40px; - height: 80px; + height: 40px; } @@ -29,24 +29,7 @@

Colors!

 
-
- - - - - - - - - - - - - - - - - +
   
   
   
+ + + + + + \ No newline at end of file From 94e1ff0dd0442c497a4b5707e350354aa7eed1dc Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 12:35:23 -0400 Subject: [PATCH 116/186] add header --- html/morse-code/index.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/html/morse-code/index.html b/html/morse-code/index.html index b253cd6..0417628 100644 --- a/html/morse-code/index.html +++ b/html/morse-code/index.html @@ -12,8 +12,14 @@ +
+
+

Morse Code

+

Morse code audio generator

+
+
- +
From 11a4de63fd67f4dfdb54a933df5b446e364d2766 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 13:55:20 -0400 Subject: [PATCH 117/186] play it --- html/morse-code/index.html | 156 +++++++++++++++++++++---------------- 1 file changed, 90 insertions(+), 66 deletions(-) diff --git a/html/morse-code/index.html b/html/morse-code/index.html index 0417628..8c27c63 100644 --- a/html/morse-code/index.html +++ b/html/morse-code/index.html @@ -20,7 +20,7 @@

Morse Code

- +
@@ -37,84 +37,108 @@

Morse Code

return; } - const words = text - .split(' ') - .map(t => t.toUpperCase().trim()) - .filter(t => t.length > 0); - if (words.length < 1) { - return; + const morseCode = getMorseCode(text); + morseCode.play(); + } + + function getMorseCode(text) { + function getCode(c) { + function getSrc(dd) { + const audioPattern = [...dd].join(' '); + const audios = [...audioPattern] + .map(c => c === '.' ? 'audios/dih.wav' : c === '-' ? 'audios/dah.wav' : 'audios/space.wav'); + return audios; + } + + const dd = l2d.get(c); + const src = getSrc(dd); + + return { + letter: c, + dd: dd, + src: src + } } - const ddWords = [...words].map(word => convertWord(word)); - ddWords.forEach(ddWord => { - console.log(ddWord.word); - console.log(ddWord.ddLetters); - console.log(ddWord.ddAudios); - console.log(ddWord.playable); - ddWord.playable.next(); - }); - } + const normText = text + .split(' ') + .map(t => t.toUpperCase().trim()) + .filter(t => t.length > 0) + .map(t => [...t].filter(l => l2d.has(l)).join('')) + .join(' '); - function convertWord(word) { - const ddLetters = convertWordToDihDahLetters(word); - const ddAudios = flattenDihDahLetterAudios([...ddLetters].map(c => convertDihDahLetterToSound(c))); - return { - word: word, - ddLetters: ddLetters, - ddAudios: ddAudios, - playable: convertDdAudioToPlayable(ddAudios) + const words = [...normText]; + const tokens = Array(); + for (let i = 0; i < words.length; i++) { + const word = words[i]; + if (word === ' ') { + tokens.push({ + letter: '_BT_WORD_SPACE', + dd: '_BT_WORD_SPACE', + src: [...' '].map(c => 'audios/space.wav') + }); + } else { + const letters = [...word]; + for (let j = 0; j < letters.length; j++) { + tokens.push(getCode(letters[j])); + if (j < letters.length - 1) { + tokens.push({ + letter: '_BT_LETTER_SPACE', + dd: '_BT_LETTER_SPACE', + src: [...' '].map(c => 'audios/space.wav') + }) + } + } + } } - } - function convertDdAudioToPlayable(ddAudios) { - return { - index: 0, - audios: ddAudios, - next: function() { - const audio = this.audios[this.index]; - const howl = new Howl({ - src: [audio], - onend: () => { - if (this.index <= this.audios.length - 1) { + function getLetterPlayable(letter, callback) { + return { + index: 0, + letter: letter.letter, + dd: letter.dd, + audios: letter.src, + callback: callback, + play: function() { + const audio = this.audios[this.index]; + + const howl = new Howl({ + src: [audio], + onend: () => { this.index += 1; - this.next(); + + if (this.index <= this.audios.length - 1) { + this.play(); + } else { + callback.play(); + } } - } - }); - howl.play(); - } + }); + howl.play(); + } + }; } - } - function flattenDihDahLetterAudios(ddAudios) { - const audios = Array(); - for (let i = 0; i < ddAudios.length; i++) { - const arr = ddAudios[i]; - for (let j = 0; j < arr.length; j++) { - audios.push(arr[j]); - } - if (i < ddAudios.length - 1) { - for (let j = 0; j < 3; j++) { - audios.push('audios/space.wav'); + console.log(normText); + console.table(tokens); + console.log(tokens); + + return { + letterIndex: 0, + letters: tokens, + play: function() { + if (this.letterIndex >= this.letters.length) { + return; } + + const letter = this.letters[this.letterIndex]; + console.log(`LETTER: playing ${letter.letter}`); + this.letterIndex += 1; + const playable = getLetterPlayable(letter, this); + playable.play(); } } - return audios; - } - - function convertWordToDihDahLetters(word) { - return [...word] - .map(c => c.toUpperCase()) - .filter(c => l2d.has(c)) - .map(c => l2d.get(c)); - } - - function convertDihDahLetterToSound(ddLetter) { - const dihDhas = [...ddLetter].join(' '); - return [...dihDhas] - .filter(c => c === '.' || c === '-' || c === ' ') - .map(c => c === '.' ? 'audios/dih.wav' : c === '-' ? 'audios/dah.wav' : 'audios/space.wav'); } function getTextInput() { From f813124c15cc442e967715e3e1e164d0e89c90ff Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 14:18:42 -0400 Subject: [PATCH 118/186] fix output --- html/morse-code/index.html | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/html/morse-code/index.html b/html/morse-code/index.html index 8c27c63..3d1b299 100644 --- a/html/morse-code/index.html +++ b/html/morse-code/index.html @@ -23,6 +23,10 @@

Morse Code

+
+
+ + @@ -37,11 +41,32 @@

Morse Code

return; } - const morseCode = getMorseCode(text); + clearOutputs(); + + const morseCode = getMorseCode(text, modifyOutputs); morseCode.play(); } - function getMorseCode(text) { + function clearOutputs() { + document.getElementById('letterOutput').innerHTML = ''; + document.getElementById('dihDahOutput').innerHTML = ''; + } + + function modifyOutputs(letter, dihDah) { + const lt = letter === '_BT_WORD_SPACE' ? ' ' : letter; + const dd = dihDah === '_BT_WORD_SPACE' ? ' ' : dihDah; + const odd = document.getElementById('dihDahOutput').innerHTML; + + document.getElementById('letterOutput').innerHTML += lt; + if (lt === ' ') { + document.getElementById('dihDahOutput').innerHTML = `
${odd}`; + } else { + document.getElementById('dihDahOutput').innerHTML = `${lt} : ${dd}
${odd}`; + } + + } + + function getMorseCode(text, handler) { function getCode(c) { function getSrc(dd) { const audioPattern = [...dd].join(' '); @@ -133,7 +158,8 @@

Morse Code

} const letter = this.letters[this.letterIndex]; - console.log(`LETTER: playing ${letter.letter}`); + console.log(`LETTER: playing ${letter.letter} => ${letter.dd}`); + handler(letter.letter, letter.dd); this.letterIndex += 1; const playable = getLetterPlayable(letter, this); playable.play(); From fb5c4365285e969bd4949cbb053fc1f0d34b67d7 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 14:20:07 -0400 Subject: [PATCH 119/186] prevent spamming --- html/morse-code/index.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/html/morse-code/index.html b/html/morse-code/index.html index 3d1b299..4dc5882 100644 --- a/html/morse-code/index.html +++ b/html/morse-code/index.html @@ -34,8 +34,13 @@

Morse Code

@@ -50,9 +57,15 @@

Morse Code

const morseCode = getMorseCode(text, modifyOutputs); isPlaying = true; + showOutputs(); morseCode.play(); } + function showOutputs() { + document.getElementById('letterOutput').style.display = 'block'; + document.getElementById('dihDahOutput').style.display = 'block'; + } + function clearOutputs() { document.getElementById('letterOutput').innerHTML = ''; document.getElementById('dihDahOutput').innerHTML = ''; From 6ca68389ec94de67750c151d7d40a2d794143050 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 14:32:08 -0400 Subject: [PATCH 121/186] add link --- html/morse-code/index.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/html/morse-code/index.html b/html/morse-code/index.html index 06ed4e9..93bb4db 100644 --- a/html/morse-code/index.html +++ b/html/morse-code/index.html @@ -15,7 +15,9 @@
- +
@@ -126,8 +126,12 @@

Morse Code

} function playWord(word) { - const morseCode = getMorseCode(word, undefined); + if (isPlaying) { + return; + } + isPlaying = true; + const morseCode = getMorseCode(word, undefined); morseCode.play(); } From 761f08b6e378430f67d4fe39bb6ac5ef1dc69f7e Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 16:26:49 -0400 Subject: [PATCH 127/186] add link --- html/morse-code/index.html | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/html/morse-code/index.html b/html/morse-code/index.html index 3ab9271..ca270fe 100644 --- a/html/morse-code/index.html +++ b/html/morse-code/index.html @@ -34,6 +34,9 @@

Morse Code

morse-code-wav

+

+ Awesome video on Morse code +

@@ -129,7 +132,7 @@

Morse Code

if (isPlaying) { return; } - + isPlaying = true; const morseCode = getMorseCode(word, undefined); morseCode.play(); From dd21d419efb95cfc4e1a0be0c921abdd5168a4b6 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 16:37:32 -0400 Subject: [PATCH 128/186] add --- html/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/html/README.md b/html/README.md index d7eb151..d3379d4 100644 --- a/html/README.md +++ b/html/README.md @@ -9,4 +9,5 @@ * [colors](colors): Colors! * [checkers](checkers): Classic checkers. * [solar-system](solar-system): A simulation of the planetary orbits in our solar system. -* [game-of-life](game-of-life): Conway's Game of Life. \ No newline at end of file +* [game-of-life](game-of-life): Conway's Game of Life. +* [morse-code](morse-code): Morse code. \ No newline at end of file From e47ad88a89a63031854d9e45dde336bfdad93a3a Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 16:41:02 -0400 Subject: [PATCH 129/186] remove --- html/solar-system/space.jpg | Bin 273974 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 html/solar-system/space.jpg diff --git a/html/solar-system/space.jpg b/html/solar-system/space.jpg deleted file mode 100644 index 5c75320c38cb845ddecbe1ba37855cf84a09c670..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273974 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

kCzc?q9HtaQ}I_9-ma*Q>AfvbHT4V(nj(7ms@Ff zwX6d(9xo8=)DkuyHs0pT%+rs$vxsd-r@hvOIUcjjiIStGTk6YltxFPN_!yObv^UkA z{E11o8eY!5aFP_v^rFLFa28H`7FDURYbNB+r!!5$q(Nu9{aW~Du~XWl;7f6z8Cc-C zkl?rh!%a&Gp(>h_`6ZOv{lb>T;=5lB;)Eh{b}-?Q_b0 z79@J%Zf&MiWJR*lzAn&DphgxM+g{AmcV}`w!pp1ckYO zMb~6IxTow7t#+yE1~JDYO1&1e)MU2(@4a{T$NKV=a!8t-Pf{0eNK+_Nve;9|DUp;J zb;Jrugsj%Q^engq=g2G_dE;Ti_efUwsKz`dH?p2(@bGLUTrC!bRYHn_gMm9RJq_crd09xZo^7YW$r#tlESuxA) z?cUU-_707Yj>n>ZXH5wPuDhif6lh#@L=|Rbg!OFbZF(YJ>XReSMhj1^;ng_(M5By5 z^LJh@6Hm50`(hp7qBX`^j&w{=s?9n{Tp1~@W^@1OhsULQj}w`9u1YQdZTl)u}%N`ve9 z>|YJp_57+uf9^|uhj?W$5Ye~{8QUH4@6WC0WHFy^U9CK~mSeq^yqHI|CBtkp?&;V6 z`Aak_ZDcHa{h4C7Y^ME9=}}958s8%W0Dwf5sS$I{j1ceyWbUrMQ{tIHK`408{gAT2b<# zig{Ez7S(WCZQK59LY8_$YFxHlpR6Q?v&L7a2J5xVA-JP6S2K>+wdO=pK?G;4d%b{( zu{^By8|sA9Xjd1nEd9=2fhM<@tej2^_2}pz3_R+ZSHKqfr!H&D&}Y9Y-ne{XZH1*| z+5gGVKv1)`2OR<=-RF2~@ai*k*fozJh< z)&f}4WH{I&9`7{v-P0M8STJxMqUo=I$ua63Oa<_PEgO8rV|G32!QIFVCu?G_0y!sD z0UT_2nwF1QfgnKfZj3&?ZEw~DALx1!OVL6zWgkk!nr$0ZR>x5#>$r9O1%%wkfuz%=Ge}9I_EVvH7|QC|YA6OSp0a3}$dJYgjs(WL ztM|c|3fm+ir_mmeiu=<|QCXNG&iH}{@v`JkHYv(;+vM=r5kSfbc_;#Y-3{ewYT5-D zMneI;uHe+VMiEiO2>c;|swJ1&&>$;ML3hH#Gm97Gj3#14Fs{LJj#@p=U`uG^KZ-Duh%t*`}HQvq@JqOL?ci4DBpMU$_OW3PObPr1`?s$ zUE5=+V9Fi&s$>efqWjr^(+fEz>EmUdhLnagsld3$1K#z()4a(Z#$MzzB9HAK*BS}N zso$Lpc-FJ%06fBj&k($P>ZrQ_k3bKO#fag($%

BpqKD_uH6FR=r-THbpbepghq)1x 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%0A1AzdaT& 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

    N7ILw{alV| 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

    b1Ho$r{&+mW9fjZ@i8#fHfb^u+U+j9 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%0AXD9LHSd;9IorX zuw`3WS-ZP-C0MySSy^6|9U^E{P4CGxIH6rET80u+E=l_O6tGwssInPMgQM7Ou60x{ z&?NMWkYVAHh_VvC0K&~N1EE+>j~hez?mrtUaa!Sw?MwP3 zEs_L@K8fnKSHv7QqlNqt;7o(VBJbz#9fM)93-iq-98N|ab%lgbo2@~T5CGJ&0~W@C zcRp|(NtZ`c!13kmsU^ls3pk>xR7pmetu-OtUpEAYyekX}f#+d_^#1*B$@rT~r6IPw zu~iapgHU~lqlmdFpY#MON41#vXZW_^WuE2yYi7iyp-2QbzUaig zoam;7F-{`f`PrYYU zp;5E1#+Djs+z%G4WgB>E^SK9;Y_8p&A6teoUi$~!L4=}9#CpD3)~7AsJiF8;X182+ z)#mv*FUH5J7IQq~?>USd_A<+g@lAeV6G1^6rnu%CKu3bVJdBKm((H;@l)-v!8UNE6 zp@Bwn7_e5pzJ>VE;81t*ku(OEN8Js3@~QuhJX{}rK<^S9cG? zV@k`qmjN#HBY6Snsy}>y3q5_J4Get6JL6uG%YLUKfV_^S&t9%jp52(YEoFuF2CsaP zoq);w(n}i4U3q}l%a&J+8)^tgZ+Mo>11Ar3mDP$Y2jz@w8|aQlr{mAv`9xx>R1XUp z1+T9nKNyS9OOGHmM`)f%O2i|gLF<#o;<6~d?afE%&%2FT^npEDVFz4x*^I*;9r4&d z#V*t$cJJ)Dr&_pwF#}`#P2l-9^BNKpJVt}wswP$*r(Z2YbmfheE(Kcpj>G%)u>~keT-ia0Q-A&}Etm1YB^Du!no|AFtf~FMn zIoVQ5bo2iETfST`mmM{{GlJmvhR*-^@oXXZ>~IQG2b?+Grat;||Jf@U$Bua#RL{&w z8?x+2?|wR3|MibY@9yQT|3Uuh$oykuZFYFg;h<mWAqfu0J~cBW2@S?c=rbi&;FP zw!GFj9>bVWuk8rue~0_oz)?v^$5&PShkHZsS_rG@4*H7>#{4Zeq3n;LI2etgxb#BWHcX-`vKxdL%%x}`tbRlMF- z9#x<9bwg%RCl5VYr+8g+7=p|{d4-W`3l1Rf__aqheIeTMFTFvIMmvliN4_nu%EDw5 zqLEx<>D%`U7ee#n9jUX{Lu{zVV5xjJW>k=6GOg)W4ovF8Dd!sH)REz%sr9_y)QVBgMcRnv)-T~1+A;XX=H;m^sY?Y|ACS`6vs<41x_z> zIo+M^@f-c4j2wtq93gM!{k)9}+ccIQIQC1k=piH5lT8T=hzdrl^##oP9CBv|*EXx} zOW4fet=9P-RLbLP4vs$9cW$I1`ppv)PqL|!oQfMS$wG?}ePLqbq_p6fbSc zE02e4I+2`r@sy`Re29l%LEXrie{%B#-^^6!5YH!s?r=A9;J(V`q(vN%!o!k=5a#lF zEw23RNw3cRzc0->BBS2#xO^~P3tYQ_2JKf5uV3Mv5&f58E8pD>0_NEA;+p1Y-p{gh z8@(af<)hLQSKYNz87ef33a%avqcY^>@iSg85lDtqwF>m>cA5r;}DsA$pXrSV{F$b^xd zed_R#>v$~kzSLdaZMQbnm4BWMt2Rt`dpFVj0T;Hyst@73{#rVJ+}q*OAZst0r;oBC z!p;*RN)gP;_FvdeVOClPmw&EL=(4Joq*S3qh(sH9Qk|1c6FW*7=j+^^3{*v=m{|$% z1>Q_%kwHUmEty+3A_DfLf_r#rdy<^TS?Ej7^pQObnb@|bmljdSC~#LX27pw8DnT%o zZHfnb`15_bnA%iFrNIH0%yn|fVfxm~ZZi{|XDpNTZKtGp;FNXWOI~_i6PYVYBxq8o z=B&&YinyH>Y>H8f2f;M^K~b$}XI@7C#-~r`+gd117VShMoiou)v8lZozl@RM@(KJ+ z)l!2mRIF(hhLOn78@|ZW!*9YY4k$?t2*_;zet0m6#Y?Y!=8>WnEC5ff{^FtkrO;!u zsPxHVY+GqB+Kq5y=;`)k-&nSgbXEL$$;-DLuUAQISzoKrG&|Ckk*9-F>Gh%2S?E0X z^d7Wl<1bauIu#X#&uhM;0_?P0`7@XT|RGZmH6@glIeZP}-Aj5?5jT+&jnJ*k{y~SG)ha zoUQ8C@o?gv7E{V5#;9kkHs3KUPLsWpt0cOq= zKif%DAJ{5M5b=11zH(B>tn9?Pr9KY!3`Z5ijHzKGF1?tg)7vC+%f@yXk}_GhCq9Mq zw!8tz`h(2@{d&yZCuUA*$D~VZG);ctMvj-PyE8uo=85~sR*vqe_KyxNxp@5Y{%>3E z^fS5WX&o{#mzVqLr?EWqH{tCr9sbMy5BBpyRr)1G?9gH4o%dNpYSZ@CjT7zr(D^~V z76!S@OSe6&CtZIs!fj4j$EaH2m7|~f+!_qtGbTjerGWG$!pJL2XwvT4X=B5M>$#+k zjaCc|4p||*a%((1I=FY_FZmlcD4+Yd1&dzrpS-t2mq~Ln(wh!X*7cE9{@OOi_S=m< zqsoF~d&ol?Iqv_Kk;l9_aN8=bbOr(RnXF1S&a_&cgW>CzYfvB2NH zy7MgmPVc7yMbUnNGv|Qo!6?}rLj2%t>?}B#(%Pi^yXwRYd~8elw!1?s`sH`N2fzIa z_swV9W#3LY%dew}RYIwh-Z3DcHV^9stKjz!lHL~k|t+;}zd z(z!l>T*eIi)Dr#kh_Yl|A3U6VF2(I^8@;*d?mpIa3Y5R=+X+AJpFg#H4Xu2qQ-cd( z6btxh8O}ymf4H$=KJ^Ly_H6djJF0$&9&s+x4mFx_Xy3jBU`Ooh=HVeBR)?XUqJ_~o z)o@(SvB}*@`qEL$gO3qQ%!Xw(@8f>kFO0W%9Tu)!CYRK$s*fWLy()x27pB7?S4H~w zKRt!xS95*oi7AS4K5TDLu>SRqytlYd(L_H2&LlYZ!x)y6{HEM4^+M zvZ!1%&L5s;BbjDL+TbH$C|9kM)xSVxcNmMz^oZ~#pO5&*=4TC|+rc4xhegPk$YI*W z-MgphzEwWirI?g8uwo5c3aYcpv~sXMZ%y>I@$^JVP%5K(nyZ+Hv%MP-aQZ^PCv;41 zNsOA|d?*(vQ^;slsMl*!AaWX4r6dO(AA`|*;aKE2K+sZ@08{%;lsci8B5_so;TbG?=XMeFxy8?6=d zCQ-$G7>0aY`Z$j|3uYAF=N;KEOuhQcLtQR?v?H_Jj9+6WSyU#Exk$bV0ca#I`{r77 zMb62W=5Z#>A=kA=Mifp_-Q-T)44#82tAOnomaQ0|z;=B;K~Q_)d2F1zX0;x1YqvEH>S14%$$J zc9>1e6LUxpu#eF$os(ZXaGA`dpUa9BjVcEyJF^vxvDzW_!HU{7?;;AMlytewLT4`H zFD^tY?iQqXdLKOQ#~ovot+iXYBKxjQO;@MBc<)h$(UfVb$EM)*#2=nNSg z47rO8v`{b1S{dn2pKWVTwhEVN(EDY|-`6n3{IUGfcVFG;6XlQ)313P`MXfVTk%B?c zgjeam$lm+`yj1DMSU=a%v**Y@!=|QS@S8te=XJ#UmPJ$ajq+CqES4eR1kwAMkaxVY zcZ6cn>dHp_tG(h*zb-*PFxt()ZN9a0ju~=ycSxG5NdS ziztf;We<7uiE|ZaWxigJ6?~fH#|_vLshz0mi2W-;RG+V;+uC@7yG~(r(I_u;wvu0PSnD`y_8{U~VschqWe;0jLV4N?aEMVZJGMUN+ zN0A{=i|b1>cybjP9Job@v`+@4#%+fA)G5?l$BG{~6x$w0yq3zz^Q>Ex{0~;*(FN~@$c&KBM1yS&=Db}AkkuENa|=x_-C_B@=h*dHlwi#fFD1y zSfkaHb@NRaOx^|8a)D1ALMkz$bJ*r2{#43(@v|`#)3E9O#r@GhoQ8%1-qGkg&+-`K z`BwlenlGo$<<{&&mw-7J#<>u;v^})^pAEx%@;rlf1DOR$W1!ms&C~%x5y|4I9kLbPuM$jy76%?dkx|cO1UfBU zhhmP+_%{`tK<6#d7woTp=T=hUlXC5hOn=5@##7KMSaGm&u;rp7&?pE<&&q%6+olq% zoGZeKjt9`>eneTQJ3_vJAA!tjjJ?VEO+htG{#e9*h(g-K-Q!Q(U|E_aNCkYFBM{fE zgFLB{p&oR%WnEPqr)Fw=D^-zTQ_w%Qn}6l9qxnSqW4)7=wUbpXIo8U}W_oxlG;fsP zp-6QYb7idXqB8Rrs8(GznO4rCSaNKr6U`j!c)rWPw&ujaVu}7-bF9@#6a@lh1dge? z)xOMLQ@>X=$J1=-mFYJmIFVr?gwAeyNJWXrD(b_~`Xt+jM_hIv-L^GqGkR!wEZi#n zrqpBU{RaM0Kcd+Y2}`_IpE4R*b4|M-^+i&t3h~7HOrTFlq8|@4SO2_)G1TOJje$lp#63o!YKhCg#N)Vi{5BpFoV75-~ zensd#HUlz+-@aJMO)eF$7+2;TUCkazo75Rq+TOkm%;LnXHifuVM0kGdrVMwJ;$h)h zV`y*7vs8&8ZiJrtrP6TxCo!mAE{XB%VZpU!LoY1ed-umd>Ag}^Q{IHGJ17(kY1<`R zbnG{XV8x4LSG!Jmzqij}dY&i(db|Tb7`d<6Ck9 zuX%%7$yPQY{BxJr0f=6Le6%1QRFzpw4u?y_Cp!{Dyp&mVU|im2E}T`QWrXPZJ383w z_HLf$7!H)iL?2{--1`>JwDf8I%*vv9=~B!mF=-4_$LZ3d5XoPEt1|r3|B3&h0?5}h zxrfnLfPw+|!g3-SPI}|{#qybsUD9bFt@}^o-;g{vZk_7(X^X3=ZTJ7S#;%+VFfRL% zHTf3EdTmg@R-AP!KRnh>6Z4SC^N+{x&$6UY{NnXsa($@?_<9>^EU@@t9>OqW2T%Ej z9O8}Kz42Wo{bIRlGngbhYfah;Yhrf+7dt4a%nz|-UuY}G}602obvjcC3#%S zXYb_CcXmBF?R>poQu+O}{kFVx*`0kAs|ORcqZdyS-vn$A7bg+Dc1d^fqYft^!>>;7 zT2eWS>(6eiLr87SX&?UEW#a#`!eyKK5!WV%{ZOo97Skcb+lmrKKdDrWA$GICZ}QaQ zZ_DL|V(191#8Wm6e0Mmxvaa^ECLgbUxL>$%L;C**ivi00|wV{ z^xG}ev6IB8^cL!K3{WtpS^`{onuQf!V^I{*KXh!D)?f)wk@k|oiP>F5djt0U2+kBZ ztB?-rOIp*YWkJs%!s7aQnT4cALzb;6Bpa=0ro|wln?DB{LkcX`?TZt!HBP;G^k*v9 zfC@8@MVVAbtYDk5YJNdNYmRu6NSp~B%{iOvCTWWkzMz5^nj#w@+C?tEH#Jw7v{C7i zvuSvFYiS!7`+Wx2s3;ldo9{TR0GO&$Hp+iw2(%b}2L`Pu7!*WD&J_@5&g1k7PxDnI`v&WshoqAkE{hQu{Xo zFN+k}xBi5h21y}5$)|%&1M~b~Du7`2if-2tPkJYr0TWT+7xx>ACr639x~u*FWS_dv zCrazEMa?%XRc6f1c%r#i4Wxpig1sc#Q*iwgr>>JTZJlzp~%_&)OcW;(y{CDX1}2F*o*e8;RcCs zP;{72QvGv@%%H-S(Ibp7ZZw|*gvlWxu-E{(sU#X2O}#3n(YxDuTav951LYd6f$}zV zCw6V9>A8iRvc4W+)|6fH`jNgyL1_Vyn#C@FjjJ`S4cwFSTrcqG_ zT#OJ0^E?DO0l1{bJSEy*5l=45#_GHI?b95g$CbD4q)y~z*7v?jGD*R#hfMhYC5$z<;xfOco zHWY;sOw*2K-o$lTHW_Lw@)L>44Yz`YkxYwtUF^=V^jNY+4m&n_5AzVtyd)UQxU_QW zh<|9404?Wj^g!|ToU&*R_x3B9{CfHdnN6303sNY(F{|&#T3%_QKWDD;vFG7_I4Kah zk9$$=9yd%|J1#6^aA~{Q;O4Pi&@H0x{L=Xc*Wf=F{>BkqEOV?{2NKautbK*k zRD)5a5Sg<}LPsE^_?Dr(+aqEVeZ|1IBI_+mIDD?>;%WQfqHv310)6XIgj!it>Z78v?P2jp!jJnA zpE;vZO6%L8GX1zk9JK!VC+YDOOp-6u_=9RBAVW_?(qkOv)VmWewD6#=yj-~I0(7iW zdOT5DB8@{F;CvIR5B~aCj9PLyy5{nYTZlL8jLYainv{-t(myP z^>JUpf%DWC4Hh$jFyvRL?PNej(*v`m-uKwVbM;;gX!teDG-6QR5Q5x(Imka`XwbyS zhbk60;dGbhB#0 zpdHd86pMt~(6I;hEV+H_riwo?m?ZCwxCT@a;&m{>9)Mn%mU&r(LB+KL=iS)|yP zmPgg7&9z^PXSQ{p6SK4009CP6Hc;FSjVm* zHh->F2>q1}fsDpjl@fnzX|k)w7us>gEy{)pPpr}yq<#tKPw{1Wn5e7wl0_SQnQP_? zV<9q5+cFaIDz=K9NOUS-7#zg;#(FH#w}phNhMTOi4Yy^@LJynSWmK9?OtbI`dQWJ+!C?QbnT;e64iqMox6bjPKE2Ypmd=wX4Mwnd?rG<1 znVOgw7eYZWRz=y@INkef9`ceUQeU;Ap8NxxdH7r%dv8tGXtT;5`Bvqe!a^r&muoBe zBj?u($np9Q7iwjZj9>?tdc1d2O0S7RHCA`w?$@a!X=M?T4b?y=JR({w4D3C4j{(Y?u<~I{hmC>MIT<1 z-ZnG)rtGgkd=!)6WUp&EL>ws5ne5)jsN{B4*}_B@clw$ttrYCLLayfB>^>amf&f{h zAwOpfR~IB7maFH$6`{V_1zH(n2(j5v8u1tQW~33@%x)q3 zp~TRh`6>Df)qreqGI8fla|!Pxa%a%E(JK{cqtWuOI&q7lH6AaK2zsR?e{3~V7G%AU z&K_2nuh))YCBa;@yuct1QyHS0@h)$PDooUNXmW>mLP{T*{58!M;QS4p3~l0Q)LAzv zhK&nBYp5b1X{l|8H$JBxLD4RR_dn!;N`q;l5$HyfLtFYDKb>e2$xhOYT|WSmlxg~%vHS#vHV;W)+HcL8(@0dVuJ;<%7WJCdG#WS?zl~=j_MlU>zLqmJE5XBX&zBI1aI;!DDIg0? zndiO#r%L}TFE&cU+<8F?$7X|}aPn|=n6|b{va$Z>J6cCrBNDCbT7_2oOLPfVhJ^?} zM>#FR)3G`MPK8tL0zmlf6o%4@m=a)}=;zSi#9~HzyLOF5bvd86a-?zvMhPsXEffUC zW!jO6YPd+Ea<{)X#l*Y2`U_uU^jj1-naJ!FbFN-2g*+hqB_u-UB=;uOsSnfwr7UIox8u$;0H&Cir{C!OH2gs)`HA z($S!-QS=F*Qe@byVo>Xp_4i0_Nx6I>`qZlPrmEF-VJ?rcZ1M}OVfIJX;s%bG7koMW?J$)v-?Hb(M zrBWm}o-b30qkhZN{G&Ms@~2SuNN>TCtG&5rb&`|NA~I*108t?O>ldR$gF579QgQ)& zK~_Y<06UOWvNYxNdS3(LjDz8FLAzro7m9ZYZkwf>Gozuzy2mq3nT4eIHgmG^+K`u7 zjH9NXh^LQ;%mpRWB%Cle&91zR?Ks)l5qEX){a>GHi-mXry5nby7D^)^-z&eq=%TJa zPDC{g9f{>7H3A=@7WLG%pbZy+d%x`<4wxs@He{$^ji0@|j@l-FlxR!jA&ye|>O63| z^aKwZjQXR?U0)Li28$n5-;5qx0%;$e-xPa+w*-q+spL;d9E*tP7i}Th;l~Xzy{|Sz z#n}A`VU$jK&Q)|Ql>?Qt$AYC34zsT}^nx2pXDb5^a!Es~ky{m-;vg*`-7XrY${9}{ z#Ukuk1AaGh@#1RUa(g(fjc zM1Jo9?7r>|2{X^Ui&;AAdZwG=;6PID^9@ln}HqVPa zG!^h5+RfL46@KV;k>6Jy4c$Si-jgX*4yC;rt%UH}NicR$+l+sfM(f!IhTv87VV}kr z*FGb?2~#mfXFQwPD?7pCkMg=ve|OMwjbouocbP@k^&FG5n6lL+_ifGl%Hr+Mf3e(I z%S#Vc{n@@9MaT{Lu9py-8{$1wNML&6wvQLl9t#x>@YqwyMuWJWzDS@pXU}Q`Kra^F7)aef+}VEKX@Q-WmTo@Q2aSumjb+QfMFf`|-MwfNYXVX;jtm}dwK&~Fit zHpWRip#ENyVAU_aj_GT=84a~hOfpJYZF%Q;6V}_NgY?8p7aySJTi@ z3zieHn;+4f2Dht=^L7~Agf4JKjt;4V1TFSaI=cp5Y6yosCb5~qYke_>Di8DVSZ!Cr zc`FIgU8U1BStEwvpR#vc}IGYxg?y572onX5_mHe}U|L;%n9=h`wi&#Zi zR`3;oaii;Gl;$4Q2}%|C+U}+D2CWz=-d)yKRc*ZbDdSp9O@vVlmC37+HkxibdQF}a zQIqN|{^+dT!*l6)?N<|nxY`}TPKbB)wQ+0}DokX4#`akimFhxq9do`f<c!NTh3^ zhbW%6u!E_CQ5SvfC0(>El7?4_v}ZMBDx72J3%OMB7}5mNf864B<+GKno(Qg{hc};@ z7XkY5(rXGS&0i?!O}XsRx1_BafwALi!mPYL5NLw{CGPlJ2M+JG9K*M-vT z)MbUmNTMk|%cv~W9hMcOo4WZj89N#G(L=!W%;N+ft&<>vm6TVWrsF=fGQAzP2*s;Z zDa7J7GY2ph!P(Fo6gyHgNSKiS{m5I-MmsYj@3G;18w(;<{x&*uBHf+-Y=bF05N0`O z-J^?E!AcPIX5WpGDCsiSb*|3dNKUH$+$sC>X2C*a#e~{yNmavU%4Qjj_JYv%7<~Jv z&mDQ8t9U&q1p4ao?@y#fiC6O)TqK8%T{!DUbRViBF+uE}_C1Cy!MCYyOX*N@jVGnqLskgpis$~PU3bCZ^N^jcx9YX zC=l29)fL^hww8*SE+anj%l#zy*2LP*i{6aqwx<0a5BLkyhSJx(!6n>H4yf9g?=3ga zWW1prz-6J!vu_kg!jU|zTdah)WyGuLpO#nB?_*uSsSiyApX-E)nz8Og3QM$@IRWh9f|Zh0C)(%$*{H^&NH3I;x^<~~#g{u0O)&D9W?h#b^FpQU~SUen=T zyA}Y_Kd)sJze1i(j6ODJ&bpG?jN68i7sU;n$MO0w=YrKP{vrsEM5V4C9xpV`wdZDc zm*kR7sKku=?PkzRx^=_ysN|rNlh)+{2o~I3g9w4!*(cRCBMZ#LheA()7|JshI$@ze z{YqU{8-HVI(c^DyLfIC9y?~j6w z#!%}-m|*^SX)hK|7_^SE1zTc9plJGvCu95+$`#g-Jq4t~^6TuV_%Uu3o6+F>;vS%K z%}?H%i4J?RL4Y!pY#Zr4E9^kQS^2$~iqKk#M;_rmqASv}QMu(Yub`;#y-x>-EZg-L zi+-7sy}o#dWu;8TB@*%d@S0HElbr};jV}}Fe^{BJr*8;hOsF3%5`LSMe9|X!e}a2Z z()EO?QLMBcROb04lVkntsn%^EFlAgh?ve-A1E?-vBpJ=Mbr@=}u8D#h++%3g{}1~8 zzm@X;?MUQUV427=}65U+2FpoU3EW8LvBkXctuK9S^; z$v#400D$8Bn5A*a$_VpdtOEF&v}zuo=3e%pd}PApDwb`aiM|kBx6bnf$}n74M)}F{ zljMgyPqLT#9goWIzYz0+6+H102t98nhd4ICfX1;>&YE6h8ZTwsl&neSEYBTcXE|&y zD$>!;Rm1-@zgEn{d;AznR0-y*F#JUeHg}Kj-qK>`+8cY}$va{=s?dI&0I4+u-rGr| za5!b_bsnI?lr=1q>67Z8gzgZgj^DAuN~J57qaSo5Q@?VfuaFKW$Y!ACq7Y zC~8!q*=64=6KoF+ZoKWIU7ODkWxuek>&dD3oU`!br#D)q-+TR}?3m_Nx>FCT8Eeeu zWZL=%wFZbZOzZgrK$@S+$8feu_Kcn5f~LyG}xT z^Yvnn78@LwRn?CWti__bv2^BGTJS^>@n!>0&`6_&oyr_=qAFf@=QZcmT1Jp?Ni_(& z9h)2a`VrXfJ7Koi!W>!jm7ac?rewbLnhE^0{L5qaRL?`TjNF1zBiH!cL+xXh0N?=D z?t^~S^YbWb$$|OC6ZUent9iT+dwXs`V8wW|zvjjAGQn0KiVk`bJPlcv6Jx%{XNzU95W1fC_9pfx`c|mF2>A1iPc@ zn*5ZfVLhgkl#0$|)+EDXx5#CxKHVFPA!opVMN6`3Jn1hQ&xsLD6&yKfBJ`xS5w{=Y z@CMgdNK|Q>+~7>>L3(%vN)W=5W5tF?)vE)zh?$NOT>KO8Gn< zrr(YMD!t~<0k zpt{I44c%l8vyS2rBd=yxl?Xhn1TqzjIW#Ls=)wcBc3AN0?NCTIaC-#?>7vwRs!3yo zWP2%+0T(&gvP5DUm(c=5JamAWl()5)xLvkZ&dqsgb}Si&uF?4?^CESjkO^<&?0AIV zKXAgPg2_--$b`)9z8RRdHtIs1Y_Ik@PJ~?RlJ+LsaaqC8d!gf4^uCC|^^KYmP)rOt zW_i45Ithq$RzTM`6nGrs8sUXXrdd!ghsx$2M;8~2#q9MI8MHCFB0uizhgF~Ihd}}> z#5Gy3MiK>TsSt-3D_Mp)`Eif88M8Vje|1k}d&t<56qC_2l67Bg!-6LV#Cpa}jBudA zp`b^i<3Iz|obVDd;&w#rTYGJVg{JiHFPU9`y_y?LooiV=+u)N9zyt$4K3mxP(bDrK z1L)Ea3%D3KAOK~Dl6eB_Vs3yn?2}8-9d50)>g={ zVXk(@XJl14q))Oa1Ux+%zAg0ZJ5;gHTaZ5e%3>`9rpr3ym`zV7S`G^mhKWYSQe#-S zL1S%724<<$GX9E#WT%XtoVqJKb>Mn)p2@I6st?B`ad6Z-)NBc0SpSvl?r6I}u7enq zF8S5CZQt5k*RFdXC!hrsj~wBtlI~bslBwVMkAl9|tax8ApcGs<6hlNa+jsb$0g%gN ziE1pbtH84n%ng#9WJ zJ&t}EzOWHmpGGxUpo6B_^=1eP$~_5Up}w9CWD?AzB{TwlbIndbn9I!mn@?Aa^KyoT z`oMGkiF`*0&r>zSlUiBzTO0M&$**Ph$%t6I-DyknvkXO-i`m|u&JTOU^0`_tew6IF zPo@G15GPX#iTU5Z7vWCc>E=Z1?D6;Qw z-$xZ3DmBO*tH~`SXdk z`HMUO8<|MZW?4Q$ot;EU=tK2cp~+V6)|`>dG;9O*eC9t&*Z&WfolnC5UEJ3OwUu27 z-uLtop^sik2pNfFM;}P@5W)c=aNNnvKB*ttT0X z5K@B|4Lw58G->y40XB~K@&ax<;4qnPx6|oPCOtLTsZ6R;Tf0}-?oMWB ze(YvadkfyXU+=!Bd(S!d+;h)4mv`6<5+9BeRqPZcXy@mZb~ew#=Jx_UEW{~d?U?^d zqENVuh6r#rsfFru%-lYpc=ae{C>XB5=9SdljQf2f)$iaK0!l!Wq|}j}6tzhmFbDq7 zWFpaac#Zjaoq%IZGesMmQH(tEmoj=KGT39mxY3dHp0I{zA)+POTVN!n)nv*|Y)=#P z-^Jx1DDo-(vyh`ju~y7^-NjaoUl zA67->C79LE?$E84e*g7&`@;XvKu7U}5aZ9@k&aOR3W zSgB9Xjfj@5d|i4^ofd9-_|eRXYRB|=x3_`pfrka=Kb6R|RsHX+$FEKdsyCxud{2I> z@2bSG*%O%23&)dZ6h-{4itjwmkDPm3GF3YFP2HVWCpQ0qwzO*78`IBR($Wc^yu$5-budly{orp`|qc9@1Cg?{K4GVu%sh0?H%WS)?WXOaI!p-ph-KR zuiVSh)@yUgYc&HiR_3p+{g8X~BZhdqDE+AQ)Au$%E>^94uX<}VTsOJOsDIQr(Q?P` zw|L5OtFiaZ;Ssm$vB>?>AN*6--3#82{)_w_Ms-Jx@xbuWXe?fGtposF&ls7M9<$mQcM-%7{DG zKYE<%z3oW9ct*MQI+9td*KMj?3k`7j_>1Wg)z*=+$$hEZ(47Bq>jn7-+vn?!kQ)@L z#+L7x_nTDvhJ$`DTm!8BqC#k1SA1!GzPVrCDZck%UrXe%-gsPZIX>QLI2BCs8(4bo znQo=5d96J^Ps^C)9n?5yT<4SoUAIC)ZNOh-V9l}mzNNHg-stuQH7bjZOX*b3Uo?I) z@+YDc`ty)BSN$=qr3Vr=VD}@6ibY&aoMeBx%T8$}}k4>C}w8 zsJ+KfsuH9;(#lG1tyRkUQ?0}sA2RTlQP!%6b`82DjC1Uk5prkM;8MD-F<)QLy4KER z2~$*?xJ@?9T0Owm>zr$^vu%URZ`!wA`E^jjApoc@6^!Ynl~#fBp24)$oL|0CsT@sZ zn(8J6{+$GxM>5v|4dhF3v%Q0^X&=tjgBrxR^xIh3{3iLUFz@3jf=&bQl3xNgP*ESW zAMrhG;8Q2rsb8;)!UTe}p>j6H?yc(WcWtqGO7p(U6asn%zcaLbTAMB*E2om)LD4S4 z4z$OI$ky`a7jP(}Y|g>eiFs0P)k{)nkY@;QLn@@tj_^XMASWH8lg^y?>2lmY)k6vG z{gt$Syr_iS6}Y01L|BjgmD-5(#L$BXwDzREOR5(%cH}bceWe|`nGqH;lkVrp`Qm0> zBQjbR-VuVnkE)xg=r*r$~#Y{KP%#IzAeu+nG>u#uU+mq)xS73W6|U{+S?x13v8;NM=HNb71lp? z8OE>v++T)z%r~Sp{S#Y_BjfV7`E9D`6vyRgtsj}II<7XneBQXdu6iZCy*sC=z2KHe z*8=rCb^0ywD zbQffi)303SUpQ!^|BPEp*VCu(?B1T~d8-R4NqSsRNUJPA<=GdE!abMGkIw5nsg{wZ zW8T*;cV|9(@D3_(e0Yj4RxV!pt}zMDu$cLUr;=RbasrlNYzDHsm@k!O2F_ zYkj)rSB$1|s0C=>8qFrlq^&nC4~cYcP^WiiDG{x#Z`|B3IKXPx-j%w+n+$QAg3&b| z3%DZ-!kt9Kk!g|H&Q-AoZoJSjpirD`GweEO?>^Wq*G{lndCI_5tNWlqA#RiCQx9hN zk?nLDYa$*y^4&C-`1+{SZLA)hUYl@N{UTx8KNa4r z$@CKr4FGah;pP__NoApv`VzW=Hq=Zbb`rjb(miQO4b0zXZ=<~8FG1O@&#E&|k;Ax* z7ok0Bj(k=|Y}YLAx}j(NI^9ESVuSz3+zcX-4E6}|;2qlEooS}sp~Hn{^Bv~AeP{#Q zMTReK05G*>igvV5zM8KATBL!_-sS zI)j5^OmvoWI`EXMR&UM#lziI6v+9W*uG%=N(;62rW~L4EHfQ(9xGGNIJjhgPdZY() z9u99qA)2?qBMDBh%jri1UjIE^$}#0spT6e$CG3pHhMS|Qv}o^J;T*o zGZVt<%*pDz&y_zs`?t@vztnTkoL>{YQ+8Pr?^zeL$)NB4$W9X|@{ZQLgul@x^IpMT zx%j-}O>TDc7dEot^+@M@{#f6w|JbLO)~J)2H}dh9zE?*MKQ2nxp3rs3xKO>V!fC%x1C-#9+1+LF9I*>H6CYu|o;*E{`jRPA|75x-W;ukU;N z?>Z}1qTlH2u6p&MYxBE3cjPzvr=dY!`hI%;BzId% zxo~X$?(W&^V}^0j&siSd?dW*@3k62?$8wLV{nPvTjrgdfF1+o#Pd{4w#s&A>#O}|i zFRHh~wTtbsbn;t8@7?|C#6Pp|e)!(v)(uhSkIrvJ;2AU4|K5G`XjR5Kkw;2~1#_nI znJb~aG!{za^6Tj?<6B)FLcK8*&{tetVPBBNMd42s6MxJVrf%^&ZifdtM1-HrHsX*_myydK_W4i6b#7kV3bhKNwFPY=i+ zHFqvwT{VwL4UI|vcEVQP0s^_)6soOOu~kA2sspb49KFXUg0lSF58bkaE4E_WDGG-CVf{5P%c)cQC z1_Na>VobZlV{IBkv;IT@$VesSmn~j$ACwF(x9n<#p@{kk|0)~h)AdA`Kyk7n)dFeg| zI2uGxCQ&39He@Nn;ToMs+tI`kBO+Q>zR$T`uDo_iXLB@B74dPNe?8HXr@gCM6+mRY zzA1d6qv;3AX?jsmpBiX?;kApo&m_MJJG&^Fp&_*5%Njh1onN}X?2XjP9s*gaR3kQ=wc_1;Tb&p|Vf#!7lO1F+*RtM(oD zjT_A9@VCms482!2T&wO}VU0rPXpf#7YCWFa>on{S!@XYajXFVcK(+m%r}}QUKC8}e zD`Z`N?%m+C^qj6M5$v+0DpC9Di;K!->+4in5l7m=#U5(k{!t>dHTfU>qi57!{i3cW6#NdK%>pOcsVsPSX}j9~Dw?z2w6!N8ug&uvWa_uL-2Q?jtR z?*<0#rm1{y=?C6cPUtd8r8Dl>itKP|`1|SUUtY8v^EPH0TJJPTo;S$3;_!&SUuc|? z*0Ti8+1%8ZSKPOw3viR7g8qJUFS>tZ#d!DLYuejC3njm-TMxVDSfg>Yvr86-9>}`E zSczz-xYB)ATi#J?mLAphPlS%x+%~Q*eXYY-uT4nRt-t~tWbbA*zut>Oi+H|oGk!9& zo*YTXeC)tzeFHNf^v9i)j`TU^x#xnR!E)V5dmQTMHQ$-M(ukI>t0_m!rZSDcQ=$i9 zHR;TsSs2)94KC+Ccx_Z%TruP5+mcq%TJOihvc6Vw#UW0h5Rfgr01xC>DOB8Y!=a1AsifP+U1vmL5vIWkgL}2eW92QnAD|m_klSFvdcQdW!Vs8 zF-lMybwkA@U&ic+`}5E~iJ1uM(Ntc^3=(x*=mj?#z1=O}=3_VYAcaLpe8GQx=ft;2 zMZ)o&>)WQ1|NKYwAE-kwoxgzQN+dvxlRIkVgD7DsSfk1T7_W*OcfM?_8X^b^nMf5D zZ~%Ezs>6E6yssnIrS5~~61;)~{33B88XK2|)r@pX>A(ZIdX1^wxa(fVXWj6CK~8)) z>EUj)i|6lYX*om}mB@=#m1O}ev>Q`Jd%fW_2_3J8?tvEYWolcUMyfa1#3{o>b({K; zdz!4qCA1x`@W#AU=O-X~7dL}9w2|yhlsN6q9Y+kYY_KABP%NXfj)}cmch!UUFU5Pd zkP*n%<_6{^a^=9$=lxQht_g1c}^!*v=1mx}qJKf=jvAMtc$QoPzYcBTY`Rv@vdb#d` zC;R;i!7gcg-OS2nSK0CmJP9e&p8M+y`%Sg{&ZV0@c6dlbF+%;H5AIbO43E^)sxCgK zUuAulB{bdLP8x4jbxEB){54m8h0mt^$;Z=<0aEd4Wa!Q#4BKcoK2S~0l+HTOF+{qO zoW+m0I!g7~8|AL8u4;Q!-UcpVaBBXSyL+a@ggq zOvu;sX<;IRp=2n8C8G$ZCA8tr2FZFz52z&6QHnqndr1!jc0L)Kb%I$ZjRvNB=?Oq% zK=0B3u+eNOyMPS8vp}gJIW0KF?QuJ``v5W#N0t_p1jA!!lstPUN!lJ`>4QStIRlpX zp%rx7T3Jqvt)h&O2B{HC>TkNWJj<<#OL?C&> z3C9>WA31-ZWeWWpby6j6RyVIgw`q@nI@wg?IWP-zBjz2158VsV|27#f#yqa|jHe_P z>WE9~PjWJwpDCR84_*{`2>(>lqZcCl$aQin4_$*RkIClEZS%dOJ*rHb=vP-EDiNBVXsFbNY4_uz3?64^q0}lzt<`6fcsxFH$7erQb|Cn+WVQD`bZ^>s ztvqi#(KGqjyCtbL^E>5&Ca7Y3(>x_S@XRz$_#XU^s!KXy*(L8k3Ug}R`s4OLyRY}J zOWWUSRH^LQm3`%qP|>+RIai|&RmL2&oiF>2*1dOSb6;|)^{2(kdPG58H&J~f50#>o z@(zhL^@%n9-dN?=dt=puZ@(9frQW_Kr67Zw^Ud^7G~=aiU%z6CBVVa@Etfs#{cy3L zA0}6^C0#{{0gb~ZUclRVaA8?`_Co=uNhNqyR1}|_Fy$|`PO%-z3fgHn99UqKompNrjwJj|QMR^U1m|J&4Xk4@UqGCFum@~M= zUq3!{GqeOOP)8E80LXEY-B@ZyvOjdo+x;pqP9)n{v06oS+>-vZf6?wNwIARozkJDw zAUM7=Xg6#!Fe)}pV5%6a7MqC!1q}c~DFTzvkOzQB1_hQe^G=2hh%&wbK=h&v6pFJ? z>yS~j&qDPHMZZf-r-&T@v;qMx&>t>>Fti|apth-TSz=kqBGp@%eMt<(@FGtN7W4vI z(gJ*uJn%1Pmev&#jFW9EBlH4w(#OmSEZnGs4ksMexQ`-<>*mS6wd<Upj3yuGAYMLD$>!Q3ju^t9rA; z;tzld3ILJ-R4Hgu(`MZ|PNsyb4(cUjT!I-cF~{buWg@e0gV%hrf%%a1!Urji*5SA! zS`aAfTWp)7*>C{s)!Q}}7nsodSxd10Re@oL3z=_yu8XV@`UPGCYo~s&_lUsXhp%?7 zc&(YxjCJT&L+qw12IirUh)x|NFL^ren-jLL^%=tZMT?cMxbMdUS69}(;fj@OTy?HSKAvmu!(S$mrfd^ZH|ci$A^QG2}NB z`ObLG(L`Gvt}b5(D7|looBe)=?xBywA&F|EDhGJEB#RfLVcwB>@|dRDwM3KT6Sn?# zi8aIjb1ZbE`v_fD!VfkNRK?R|aDgH^q1tAgJ!(j=vpsK0h62sy?X~SkIuK6TeSeRq zzp+^1R_(c_GWq6`LE@GoY26w=QZnIAha?q)J9;->0;eX6o1R`@7rOf<1EbppyLqIZ z27NXPynE?uy2u1n{S@ZvZAOJdN%ocUFyTU5Ej}`1F|L`;>O@6Tu9d2Q(#}JQXrpPw zA(Tp(!9Ysw=Faaph-%+0jMmRXr_1;h5*nj6KV_s#*<%t5PbJweaW&N|gWFK__f{kj z#t<#Rknu!VFU2I)hp-06G0n~63=3_9<&+)IvPvS zP(XsQX93QJ&lvY-S-<6-vIHA=irfVYMuY&@#5m$wdivKMpu`DvZ=AcdE%Bh-D4nFX z5x`N{=zzcIS+Hk;qYNbg+`q7;3s8f=aFBiPU{=#*St zPoqHAdoJnUh}jgalhI*nDO=Wat98B!?t;uS7nDa=rHVMMQ>e16Npv~Y7K`j!uO7~} z3*}!upY-$k)80llv)WeHh&oAa`s3p#l0vaRVF*h-Qje*ttnZNu9&zH7jLL-y8PZhe zp7r7?dv0vLH)R>9h$U-WS%WPFI~~!bbChF3Rg^m_7;j9vu%-4AtV0E&Brq~_2{`u! zgAtSm&3k~a0;SDAF`$B=Eyme$v|Sq?q7?SppnQwSR9bu%S->X>vvD|Za7F?cJA*jE zZm@(sM%U)}A!tnP1VE$&op$}_>r_}1fPxc-Ls`;-cf;96&Jj>74U~z)GWd~BIBij% zBov&g^K9gU|Bo4O`KT=~Mp$#CVN;4V*Rikd^{EgrgV0+t3@!0%967?d$w zqfc)a7TexNm6{CG1z{I=HOxa)aS3tQ5>mz&!kH$9+#u@@GvFl)jgo&eV4o+YP~PpQ z+2GT54$(%pDi_=e0zHZUD|0m>5a=nU3OdMO(9~h0sMnXz5)y(f8-`}f?2~YqQc&BC z43QUTw}H;rlOq)|C{QM+=LkhxLY>+)TbkNG#+QuLc}g2dm^QMPbIp)s zxku`l{6n`rwXB_2ZVixHwD#HlNvzipQ(EaGROLK2x@*s_;cZ2s+w<%&NEohJf*y%X zI9HWay!)B#JImd|suBHcXyHYP-RPQuQn&Huj#@N$_S`^?$9z|KKL*Yo6^j?I8{+su z14)!(kwhbPnsG7n)XN=3?U7TRq0RJubvdWFil-f1Z_#xK_@)_1SVsyM$gSz@>%_Jm zjDXX(x{;b!{c9RXiN^3kZz6Q<9(w{Z1BJw45NEt$if^Nekl+vV_ zt5B-|Qolw6dx7T3u+ds@K41_4637r8^zvafA_Xf(2Uv8(BYQ&U;j*d#urMHWSj^lW z$7z-ZG?swE5XkBLi$jD_@S6awOaW2h+22J-5rtOigdSCu#88Dq4b$xDP>~Z*#CWE% z)@e)T;A#riDfAv;@va6^4Tn&P+GPRAP~zAS(t{ovRKiLyG*l!g*(9Avi4K$h#|43M zX^0DbCUlRMf?#;q*ypvNocBq*8bo?|JcU>*!ctr$WM|(`Dwx+jbMPAglFNy1w#r8LH3YdcnP``yrrWr*w~eLD02r#bh(Un zfvh37p%XOa$dtTUJ3$S%*S6>lr3XUVx*Ga!c@W{}DP)Qe7jft#G73sY(=j>6*ai{Z zo+XQ~OA%a>f;#>HA!o6^%O|rqK)1nqX`M1dg8)H5lt#yCnN-vWqlD6qbo<$s8htFm zNwEO}(whS$Tm%UvkG=5phdsNYAUguRB0wc93xts`0;2p4(EXx->=8lv**rPb3iC*0 zCsZm>phObLZITrH?ZnfXrA+3&6%N;lC(sLriwVCA3ak#xDFM82m=uzITKn@`tBkVr zjB)rp^LGJ~n(!1>gmj&~yo6DL^6;4`}G*F?||TT;Wp#S1<@N zfpnl)A<>9m8-gDeq06QGn^0;(#aD~UYA&r;3 z7EfK0q=AqJbladBP;?a7I0?RUOrwpB!FYjjv;e@&R>~NxfUyNOb3MTEi70dw-N6(= zI<%IAlawcIVekPoptDG6Kv8knk+7kvKtV_=0%?Lb#D$PUSW=WjLMAdZ+_C{+v!>uX zej~u;n};}*8zFu&j>&+U2Df7g0H%l#!XsEDnX^DT(ghI;a)S>ibjuP+-C6;4x-mF6 z(()8O4he(R2W0d^890VM5rqTDOTcFS&48Q-n$#ea zvO|nSR||h+VAVaLy;Kt#1Qq5UDq)5#AW0}WqXsxQ3Scq+8Kp!BvTJFQBch0naBr(6 zgmX;Z@Kd@B0T~dWVyL59Qo+Fi?OlMRfa{CCCSbF0WFTOvcthk068)Merx@%FrUyjX z0asp0Kh%CIa4cC-7CJ>q8e;G>#eSr)Ymloh3?A&3>Ntj&@DV=2B1E%JolO$(Spih` zgvcwRlbx^;9zkysvFtf}wrX&70BD?u6$o*tyq-!t*^Vf3!Ds{gwN)_&z!-=}l&y2E zxu9$iR&dLR3V;6BGM<%C;!v=Wf**n4bX|d~qQH@w72yC9-K+uTABHEr`sDgF>({)( zJk9z4a6n)8ifvQmXsPVWoID4Dn$!0VM#F$ zf3t~4sTftDgOHr9yHhsa25x~_QXX*l3#{wmf)1pHFc!+A(I8IRg#ZyS+c;< zL{(@CxuM!{Ed|4^XgM9^F+c-$KOOQL07 zKUCn?cyuzj+3y6oedPir2Z8Z$*^z)ta{EcX brX8l9yb8AXEb=?JKb?brtCoN7f9?NoY~o|D From 293737a11e420b877d2df2c78a8be1b2afc10b92 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 19:31:40 -0400 Subject: [PATCH 130/186] add --- html/sign-language/index.html | 384 ++++++++++++++++++++++++++++++++++ 1 file changed, 384 insertions(+) create mode 100644 html/sign-language/index.html diff --git a/html/sign-language/index.html b/html/sign-language/index.html new file mode 100644 index 0000000..54f4919 --- /dev/null +++ b/html/sign-language/index.html @@ -0,0 +1,384 @@ + + + + Sign Language + + + + + +

    + + + + + + + + + + + + + + \ No newline at end of file From 9b7edd3e37562676a389f230f44690b85b3bed6b Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 20:04:59 -0400 Subject: [PATCH 131/186] fail --- html/sign-language/index.html | 385 +++++++--------------------------- 1 file changed, 76 insertions(+), 309 deletions(-) diff --git a/html/sign-language/index.html b/html/sign-language/index.html index 54f4919..2157c4d 100644 --- a/html/sign-language/index.html +++ b/html/sign-language/index.html @@ -2,10 +2,23 @@ Sign Language - + - +

    American Manual Alphabet

    @@ -71,9 +36,19 @@

    American Manual Alphabet

    - +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    - +
    From eafef1816c3541cbfce870e57f333c67188b6257 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 21:28:24 -0400 Subject: [PATCH 133/186] make responsive --- html/sign-language/index.html | 68 +++++++++-------------------------- 1 file changed, 17 insertions(+), 51 deletions(-) diff --git a/html/sign-language/index.html b/html/sign-language/index.html index c0c36b0..9a888f4 100644 --- a/html/sign-language/index.html +++ b/html/sign-language/index.html @@ -13,17 +13,15 @@ margin: 10px; } - .alphabet { - width: calc(20vw); - height: calc(50vw - 25vw); - margin-left: auto; - margin-right: auto; - border: 1px solid black !important; + .container .img-thumbnail { + display: block; + width: auto; + max-height: 200px; } - +

    American Manual Alphabet

    @@ -38,17 +36,19 @@

    American Manual Alphabet

    -
    -
    -
    -
    - -
    +
    +
    + +
    +
    +
    + +
    -
    - +
    +
    - +
    From b6f898399651542344692f063464a62337b408d5 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 23:40:19 -0400 Subject: [PATCH 138/186] fix modal --- html/sign-language/index.html | 246 +++++++++++++++++++++++++++++++++- 1 file changed, 240 insertions(+), 6 deletions(-) diff --git a/html/sign-language/index.html b/html/sign-language/index.html index 5006485..e5c5b70 100644 --- a/html/sign-language/index.html +++ b/html/sign-language/index.html @@ -13,10 +13,13 @@ margin: 10px; } - .container .img-thumbnail { + .img-max-height { display: block; width: auto; - max-height: 200px; + margin-left: auto; + margin-right: auto; + max-height: 100px; + } @@ -29,16 +32,16 @@

    American Manual Alphabet

    Wikipedia


    -

    - Learn the AMA -

    +
- +
@@ -69,6 +72,237 @@

American Manual Alphabet

+ + + From e352cc5f01fcfa59a6b4d81adf89a80d1c9f5690 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 23:44:18 -0400 Subject: [PATCH 139/186] fix --- html/sign-language/index.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/html/sign-language/index.html b/html/sign-language/index.html index e5c5b70..23e0958 100644 --- a/html/sign-language/index.html +++ b/html/sign-language/index.html @@ -21,6 +21,10 @@ max-height: 100px; } + .img-max-height.img-lg { + max-height: 400px; + min-height: 200px; + } @@ -41,7 +45,7 @@

American Manual Alphabet

- +
@@ -77,7 +81,7 @@

American Manual Alphabet

Morse Code

-

Morse code audio generator

+

+ Morse code audio generator +


Dih-dah sounds generated using From 97b9772737f287a3bf8cbc4ff1824cce57d9f314 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 14:37:56 -0400 Subject: [PATCH 122/186] fix styling --- html/morse-code/index.html | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/html/morse-code/index.html b/html/morse-code/index.html index 93bb4db..98b88df 100644 --- a/html/morse-code/index.html +++ b/html/morse-code/index.html @@ -9,6 +9,13 @@ body { margin: 10px; } + .letter { + font-size: large; + } + .dihdah { + font-size: xx-large; + font-weight: bolder; + } @@ -74,8 +81,8 @@

Morse Code

} function modifyOutputs(letter, dihDah) { - const lt = letter === '_BT_WORD_SPACE' ? ' ' : letter; - const dd = dihDah === '_BT_WORD_SPACE' ? ' ' : dihDah; + const lt = letter === '_BT_WORD_SPACE' ? ' ' : `${letter}`; + const dd = dihDah === '_BT_WORD_SPACE' ? ' ' : `${dihDah}`; const odd = document.getElementById('dihDahOutput').innerHTML; document.getElementById('letterOutput').innerHTML += lt; From 0e60176490ce49d57ee294fe31cfb9ebfa8aec1a Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 14:53:43 -0400 Subject: [PATCH 123/186] add wav; change cursor on hover --- html/morse-code/audios/0.wav | Bin 0 -> 15244 bytes html/morse-code/audios/1.wav | Bin 0 -> 13644 bytes html/morse-code/audios/2.wav | Bin 0 -> 12044 bytes html/morse-code/audios/3.wav | Bin 0 -> 10444 bytes html/morse-code/audios/4.wav | Bin 0 -> 8844 bytes html/morse-code/audios/5.wav | Bin 0 -> 7244 bytes html/morse-code/audios/6.wav | Bin 0 -> 8844 bytes html/morse-code/audios/7.wav | Bin 0 -> 10444 bytes html/morse-code/audios/8.wav | Bin 0 -> 12044 bytes html/morse-code/audios/9.wav | Bin 0 -> 13644 bytes html/morse-code/audios/A.wav | Bin 0 -> 4044 bytes html/morse-code/audios/B.wav | Bin 0 -> 7244 bytes html/morse-code/audios/C.wav | Bin 0 -> 8844 bytes html/morse-code/audios/D.wav | Bin 0 -> 5644 bytes html/morse-code/audios/E.wav | Bin 0 -> 844 bytes html/morse-code/audios/F.wav | Bin 0 -> 7244 bytes html/morse-code/audios/G.wav | Bin 0 -> 7244 bytes html/morse-code/audios/H.wav | Bin 0 -> 5644 bytes html/morse-code/audios/I.wav | Bin 0 -> 2444 bytes html/morse-code/audios/J.wav | Bin 0 -> 10444 bytes html/morse-code/audios/K.wav | Bin 0 -> 7244 bytes html/morse-code/audios/L.wav | Bin 0 -> 7244 bytes html/morse-code/audios/M.wav | Bin 0 -> 5644 bytes html/morse-code/audios/N.wav | Bin 0 -> 4044 bytes html/morse-code/audios/O.wav | Bin 0 -> 8844 bytes html/morse-code/audios/P.wav | Bin 0 -> 8844 bytes html/morse-code/audios/Q.wav | Bin 0 -> 10444 bytes html/morse-code/audios/R.wav | Bin 0 -> 5644 bytes html/morse-code/audios/S.wav | Bin 0 -> 4044 bytes html/morse-code/audios/T.wav | Bin 0 -> 2444 bytes html/morse-code/audios/U.wav | Bin 0 -> 5644 bytes html/morse-code/audios/V.wav | Bin 0 -> 7244 bytes html/morse-code/audios/W.wav | Bin 0 -> 7244 bytes html/morse-code/audios/X.wav | Bin 0 -> 8844 bytes html/morse-code/audios/Y.wav | Bin 0 -> 10444 bytes html/morse-code/audios/Z.wav | Bin 0 -> 8844 bytes html/morse-code/index.html | 36 ++++++++++++++++++++++++++++++++--- 37 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 html/morse-code/audios/0.wav create mode 100644 html/morse-code/audios/1.wav create mode 100644 html/morse-code/audios/2.wav create mode 100644 html/morse-code/audios/3.wav create mode 100644 html/morse-code/audios/4.wav create mode 100644 html/morse-code/audios/5.wav create mode 100644 html/morse-code/audios/6.wav create mode 100644 html/morse-code/audios/7.wav create mode 100644 html/morse-code/audios/8.wav create mode 100644 html/morse-code/audios/9.wav create mode 100644 html/morse-code/audios/A.wav create mode 100644 html/morse-code/audios/B.wav create mode 100644 html/morse-code/audios/C.wav create mode 100644 html/morse-code/audios/D.wav create mode 100644 html/morse-code/audios/E.wav create mode 100644 html/morse-code/audios/F.wav create mode 100644 html/morse-code/audios/G.wav create mode 100644 html/morse-code/audios/H.wav create mode 100644 html/morse-code/audios/I.wav create mode 100644 html/morse-code/audios/J.wav create mode 100644 html/morse-code/audios/K.wav create mode 100644 html/morse-code/audios/L.wav create mode 100644 html/morse-code/audios/M.wav create mode 100644 html/morse-code/audios/N.wav create mode 100644 html/morse-code/audios/O.wav create mode 100644 html/morse-code/audios/P.wav create mode 100644 html/morse-code/audios/Q.wav create mode 100644 html/morse-code/audios/R.wav create mode 100644 html/morse-code/audios/S.wav create mode 100644 html/morse-code/audios/T.wav create mode 100644 html/morse-code/audios/U.wav create mode 100644 html/morse-code/audios/V.wav create mode 100644 html/morse-code/audios/W.wav create mode 100644 html/morse-code/audios/X.wav create mode 100644 html/morse-code/audios/Y.wav create mode 100644 html/morse-code/audios/Z.wav diff --git a/html/morse-code/audios/0.wav b/html/morse-code/audios/0.wav new file mode 100644 index 0000000000000000000000000000000000000000..63f23a1e96194476fd8e0e27ff5ae2d953e04b7c GIT binary patch literal 15244 zcmeI$Ar6929LMp$&I7y~;Aj**fNxHN3@br{1|JhiHX^~mCBW?^DwzZ51xPmM4ZMIs z=|*SzLSqcJ-{8If=NB%0Kc9%K=c~oxm=2YQ^gidz5jjmo`l4iSQnUNqBa)47p&Lgg z2`cCHY%ka9TwJU6@_JTI5=6$0Z(%kP$y=|!m(~`|_AyXntvB&OZ^n9{wvVE*_Fj5* z-ts*1<9p%%U_D?xW&dEmWIpI-EDjPNf$s_654?ph@ihGb{R@2){ThAZZ~NHqQx{iB zfCRb(@CW|DANT`*;1B$PKkx_sU@|6we4Nj0{8=e T;1B$PKkx_sz#sVIm;QJI+Fe2) literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/1.wav b/html/morse-code/audios/1.wav new file mode 100644 index 0000000000000000000000000000000000000000..b9d7eeec9a9452cdd21744a8c53703a8b98b73fc GIT binary patch literal 13644 zcmeI#Ar6929LMp$&I51*n9Tyo_U3d`rx9hpcadp@Pm&njWWb}KMy2x!IG8RqFZsZ!jGa^^Bw5Pu3 zhPzb%G{x(kKI3;fj{sE{=gsj1ApL; HKK=0phpI~A literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/2.wav b/html/morse-code/audios/2.wav new file mode 100644 index 0000000000000000000000000000000000000000..bc42a81902e804d1507a8eab2c533c8290460b29 GIT binary patch literal 12044 zcmeI0Ar69I7=}L`2jB)cnguSvoCcj%f(9r!!DJ&63|<1}t2mZhxdVi1)@^vMZcn7(XZ%N^s6EL3V+}a{Gs=UzIky10SMp^{DD98{vaRZgM5$==5yxr H-{7)E~`4zM@CF=^2YFpdTttON~OU<8wmNHBN_bY{muHG2TLz$P2R4Y+_o z?NEsNmbSAH-t5QwW`1wESmXnd^=vhd4slP3NayoRZIRy*l{*tv}1NlHckPqYo@B8>4@%w*}FZ{1(B>(^b literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/5.wav b/html/morse-code/audios/5.wav new file mode 100644 index 0000000000000000000000000000000000000000..b3b0f3dd76ebab0b7f9b81a9e0976d7d0640b557 GIT binary patch literal 7244 zcmeI!Ar6Bu7>4103kTo;%UEz2xInXPOGcPQYyu2qfSN-hCb$GFLDix;09>F7N4UW* zfEai%$mOGsK*gK3Pwks&UUo!}^ZgpW;)6^?n{k{JqW6(#OENvZ*xQfa5G8tRtAX!D z7FUL^s2l#t8ZPSL%azFTJvC_UL?=pxR(5$&WR=@XvcZ@Wgv>FRB)ff96-Ae8WhyWq z`u*2>nf3@C6hMLb0`LP~;(oAvADZ7ac#8rkFcp9w@B@Cp51fW5u%-a~fFJM!eylk= P@DB>W5BLE;mi+hufogB) literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/6.wav b/html/morse-code/audios/6.wav new file mode 100644 index 0000000000000000000000000000000000000000..add1f541052d158c43ef05d46189b83830d9ba82 GIT binary patch literal 8844 zcmeH~Ar8VY6owyU2j~q(=4Rjm4FSP2>;woFk`V?9heQyvOKc=lwdfrHE>JZ`c7t62 z0eEK6U+bE-;!EHA`bYC1xOgJV>0-7!90y87dY?IQMb2Z9z9`uy$7KE4BXSznk(X|g zeQ4ZQYwr(p%^$|zU#)TX;U@9YIywzSGV9--MOo%m+&F5a^(x)z)kr%kZt|)upM`(R zEcd~W_dr%y0_1WoTtxll*H<| z(r)uHk6PdITAN4n(e7~-t5Na{&r^}iOv=}_DDo236MX?TjWdfH2nen3w;y)8hzq_``F)G7gr$w rfsO$AgZx4Mu;&k^1Oy;pCxAcj2mZhx_6flq2-peW5Bz~YZ2tHH6d7J- literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/8.wav b/html/morse-code/audios/8.wav new file mode 100644 index 0000000000000000000000000000000000000000..d5ddc6b19d6fa7cad817178774ca0fd16006db17 GIT binary patch literal 12044 zcmeI0u?>Pi7)E~$1Kb7}IvQBuVzkg;OQD4}XGAMIN(u{?023-&YX`suuCg<1-~tvx zubnY5dC&oYF`iGh`*fg0q}QG!SL84h>5Gz$Nlg>9HzW&gv6rmP zE~?z;!`9d8lwT`bKOdF5i`K?VZgJK=d9?odUX*2iSv8IdwO%G$y$rRZR!x2>%X{IU zkCykrkN<`B!G6GgN`8=+%m>|!#Q^~byeEKv;9K}5K23i>|3cqHzeb<<-9GmH)WuZ@ zK%gUlf8ZbZ2mXP7;2-!0{(*nsA56v&_!R;C1OLE3KKsY7)*;`4z&{coKgbXA<5PaT E0Oj>mqyPW_ literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/9.wav b/html/morse-code/audios/9.wav new file mode 100644 index 0000000000000000000000000000000000000000..a613a7c24085919bc841c0b265a8a359a95953a1 GIT binary patch literal 13644 zcmeI$Ar69I7{>8e#{swjj%I;mV@@}9S_vAUz(kYHNHBN_a3fL48~`prqB(Bh1qedN z=16~NjKTH{zVH1#_F=c%EJRN0jCR2`v?0a^FcpjagYEB3@3m;@D{$r)AR@QFZ50HYxIf#?PG_hF0PUQ z3G@lz5Bz~Y@CW|DANT`*;1B%4WK05MC4fKh2mZhx_yd375Bz~Y@W)uQC+{Hv{DD94 I$1i_;0VQ5a;s5{u literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/A.wav b/html/morse-code/audios/A.wav new file mode 100644 index 0000000000000000000000000000000000000000..c7b1a8f4078b3078bf08b94aab695a3fbead4e0c GIT binary patch literal 4044 zcmWIYbaOkx&%hAw80MOmTcRMqz`(!=gbwly3=MV+3``6H3@M2vi3@;g7#M2wt_LZl zCMBkOERp~7{^H>yOJ>hJvgG37Kkt{wr+XwNDy3czs?lR$Xt}7l_TH>{^JZ?3dB7r| zZ(|dknr0KNZ^I%G^I+!odGqeg(p=kean!ug@Ecy~1(Zid!DtAKh5+^u7_C1>>&wyh a!DxGEwEZ{Qeje>FjP{R4`-9Z%PXhoII`wh@ literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/B.wav b/html/morse-code/audios/B.wav new file mode 100644 index 0000000000000000000000000000000000000000..0c3db4b9fad59697383b2ad65d6daad919f12c45 GIT binary patch literal 7244 zcmWIYbaQi(VPFV%40BD(Em06)U|?VbLI-&Uh6XzZ1||jphLpsTL^+@u28J5F>p@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={6^EuX#N;24@S$=(fVVwz8q~IfZAB2 zU^E0qLjZdSjP^f9`&*;^OWgfw?73!CbTkA;LjV*4qxHvV{V`g9jMg8crQv7@kP`x< O^~Y%aFa04!Y z0Q_puU+bEt;!FSc|1U3E&gW-eWIbKY(nCIQMWpxL6Hnwc7U_#CdzGu*_m0SM*hGF3 zt88Js_p81?%(Zx!`u=_yFI&XQPnzgB6uHzv)s|Wpx9!t$M`5^0(r_~h9e4XIZd$ix zP+e-?gCG9|eNYdmr}zhcNj~^xEEWVH&`p5;gMN$t(%w&ZtAF^GKNxfPkF<`HFl+zOv=355oiEb^rhX literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/D.wav b/html/morse-code/audios/D.wav new file mode 100644 index 0000000000000000000000000000000000000000..28d4ff3268df446e52d741a0174703ace00ac4cb GIT binary patch literal 5644 zcmWIYbaP`7V_*n(40BD(Em06)U|?VbLI-&Uh6XzZ1||jphLpsT#0R2435FWI>p@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={6^EuX#N;24@S$=(fVVwz8q~IfZAB2 vU^E0qLjZdSjP^f9`&*;^OWgfw?73!CbTkA;LjV*4qxHvV{V`g9;Hp0WJbG|n literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/E.wav b/html/morse-code/audios/E.wav new file mode 100644 index 0000000000000000000000000000000000000000..6af89a9d7e8dc066a043c77982e50bfdd702a962 GIT binary patch literal 844 zcmWIYbaQiIW?%?+40BD(Em06)U|?VbLI-&Uh6XzZ1||jphLpsTLp@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={DxC{0RVOxf>;0m literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/F.wav b/html/morse-code/audios/F.wav new file mode 100644 index 0000000000000000000000000000000000000000..7e9749b787e5141c19e1479216c6bfa1ccc66310 GIT binary patch literal 7244 zcmeI0Ar6Bu7=`~W9H0kS#)8AZ1<0~38DSQ&2{4cWY7U8*;1aN;sus-w-~uQd;Raj) zG4Nm}m)E+csrb^D_vN>5rg_;BJ7xU&0U8eP}r~I0XR^m!fJ_5MIUkPqYo`M`V)^T}W4 Uv9L@K0D*M^@GJNg{A$gwzN!lAIRF3v literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/G.wav b/html/morse-code/audios/G.wav new file mode 100644 index 0000000000000000000000000000000000000000..de21c4b18587f010b0165558f80c5e96381d0871 GIT binary patch literal 7244 zcmWIYbaQi(VPFV%40BD(Em06)U|?VbLI-&Uh6XzZ1||jphLpsTL^+@u28J5F>p@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={6^EuX#N;24@S$=(fVVwz8q~IfZAB2 zU^E0qLjZdSjP^f9`&*;^%hCSy==j0t_{->c)9Cox=y)P^$78X#x<*AuLtr!nKp`;N O{}}CmjP^fp^*;cigl3rl literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/H.wav b/html/morse-code/audios/H.wav new file mode 100644 index 0000000000000000000000000000000000000000..07c7d528e2fd1b2c1e7a59c45ef219cf99c8247f GIT binary patch literal 5644 zcmWIYbaP`7V_*n(40BD(Em06)U|?VbLI-&Uh6XzZ1||jphLpsT#0R2435FWI>p@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={DxP00p*cVFd71*A%HyuM(dB!`f{{= yfV(|}J=ctij)uT!2!KLhwEh^aKSt}1(fVVwG#m{9azbFV{ur%4M(Yn;^#=efZS?;D literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/I.wav b/html/morse-code/audios/I.wav new file mode 100644 index 0000000000000000000000000000000000000000..de3bdbe098d20f9ab649aa7c439190f2bb2756b7 GIT binary patch literal 2444 zcmWIYbaQLrWMBw)40BD(Em06)U|?VbLI-&Uh6XzZ1||jphLpsT!~~!k28J5F>p@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={DxP00p*cVFd71*A%HyuM(dB!`f{{= IfU7+O07fPLH2?qr literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/J.wav b/html/morse-code/audios/J.wav new file mode 100644 index 0000000000000000000000000000000000000000..d2084dd7115cd017aae43abc3494ac78aaf14dd1 GIT binary patch literal 10444 zcmeI#Ar6929LMp$&I51*97zjYfH@5^tON~Ea01CjBpA2^xG@9O>;d2cBpc%fUVtEU zqcgbgd+qJ*h2P%W`+c09Wz`Fj!)Ct?&+%Llk;yREs>o#}G8IKme(c|dJtB$zbhO~; zM|P?9ucoTYYgU&{)xSzLvX8zNJe@=rNt@-p&5I&?c->4fOw$cQ(>2VQ;&s`hDB65^ zPaDo7zyG=~;~Qa+0113ffd7O4l72uRqW{sK@d7@=gWvV^=hnq436Q{;0RF%q_yd37 l5Bz~Y@CW|DA2eeU_*DY<1ApKT{DD942mZhx_~V=YcmsxV*|z`y literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/K.wav b/html/morse-code/audios/K.wav new file mode 100644 index 0000000000000000000000000000000000000000..db85aecb661ce0593f223314cd0552ec2f1b792d GIT binary patch literal 7244 zcmWIYbaQi(VPFV%40BD(Em06)U|?VbLI-&Uh6XzZ1||jphLpsTL^+@u28J5F>p@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={6^EuX#N;24@S$=(fVVwz8q~IfZAB2 zU^E0qLjZdSjP^f9`&*;^OWgfw?73!CbTkA;LjV*4qxHvV{V`g9;I2PL^T%lZ7|kD} P`D1i`W^{gw^!Yphx))}d literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/L.wav b/html/morse-code/audios/L.wav new file mode 100644 index 0000000000000000000000000000000000000000..144f199510dce2c410d406687261ce28e7d790d0 GIT binary patch literal 7244 zcmeH~Ar6Bu7=`~W9DoBXW5HqI0%X~ij4+GX1elTmY7U8*;1aL|Rg2~TaDgfu;Raj) zG4SA~me;zbsrb_Nz0bK>)@4WZINz_~D?Z3Xw3+5fA$lK)wj|S&#cV(AAxiYtQ3Ibv zHdn?$)D8b+4Hxw|a3!*RrUtE(=tQZ|$}TU8tnzwEHcZnELen)&N%s1zDvB=G%2ePy z@cXa(GQSZF5CDN?0>}^KCHevS5c(hbGkgJl1RwmZPcOGFtbzat%mm;c@DKRMx_{u8 S009tKCxHAwejq>A^5YAUck4L- literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/M.wav b/html/morse-code/audios/M.wav new file mode 100644 index 0000000000000000000000000000000000000000..29ab9a87ccbbee2729f5ef27e534e98628209139 GIT binary patch literal 5644 zcmWIYbaP`7V_*n(40BD(Em06)U|?VbLI-&Uh6XzZ1||jphLpsT#0R2435FWI>p@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={6^EuX#N;24@S$=(fVVwz8q~IfZAB2 qU^E0qLjZdSjP^f9`&*;^%hCSy==j0t_{->c)9Cox=y)PE$72C~t?RG= literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/N.wav b/html/morse-code/audios/N.wav new file mode 100644 index 0000000000000000000000000000000000000000..4e883e3c44199e6cafb1fc1a90528abae9479f26 GIT binary patch literal 4044 zcmWIYbaOkx&%hAw80MOmTcRMqz`(!=gbwly3=MV+3``6H3@M2vi3@;g7#M2wt_LZl zCMBkOERp~7{^H>yOJ>hJvgG37Kkt{wr+XwNDy3czs?lR$Xt}7l_TH>{^JZ?3dB7r| zZ(|dknr0KNZ^I%G^I+!odGqeg(p=kean!ug@Ec7pqxoaBJQyucN9&K#`f{{=0BU26 Yg3%Bd4FT*SFxvkZ?Qf0tFLCv!0sNTtasU7T literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/O.wav b/html/morse-code/audios/O.wav new file mode 100644 index 0000000000000000000000000000000000000000..dfa4887e15b9cf603f1f7c99dce51a955eea7422 GIT binary patch literal 8844 zcmeI0Ar8VY6owyU2j~q(<}h%9g@9lgb^-*1WP}Zco17qIm)JMMAxWO(k z!RC?3uXRmR@uhuz-yf}l;OdEN7VBkt&PGZ^2Hl*yBA1!SP?Q|wEZ%o}MDocy@{&V* z3XR(~_W3fm@@4F^ZH#*g53!fLqkJM#*zvutv@RdJkE5o(zfDqqJM|s4`;-r@>uP*2 zEa$ynvpfNf~aAnW|VgeDI+!z^*;SylN)Rmb7zy&(75pKW* z7=#@+<6vI9HBE z5BdGqeVN|~1`f1nv7fnOy6f50E`$0vWh0o#`1b^rhX literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/Q.wav b/html/morse-code/audios/Q.wav new file mode 100644 index 0000000000000000000000000000000000000000..bff6a2dcf837692dd34bb72eb3b641601aed1c16 GIT binary patch literal 10444 zcmeI0Ar8Vo6huFy2iO~wR8a#L*boqqVk|vYafYyZxc3M5NQ4u`6;KiF8HDHabMt<{OdY;1PQ9 zCQ1V1)-QW6%_S?1z1J_}Cc!51;zxKKh@{ppp65KzZtKcXL#H(7(_((XY`b{p@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={DxP00p*cVFd71*A%HyuM(dB!`f{{= xFxnm(ZU2q7pGW%(qy3}N{vdVx)7V>GqoSiBFd71&5E$)$jP^f9`yaUa9{^Pia9;ob literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/S.wav b/html/morse-code/audios/S.wav new file mode 100644 index 0000000000000000000000000000000000000000..08be62a463598dbe3be291292a500c092ae123f0 GIT binary patch literal 4044 zcmWIYbaOkx&%hAw80MOmTcRMqz`(!=gbwly3=MV+3``6H3@M2vi3@;g7#M2wt_LZl zCMBkOERp~7{^H>yOJ>hJvgG37Kkt{wr+XwNDy3czs?lR$Xt}7l_TH>{^JZ?3dB7r| zZ(|dknr0KNZ^I%G^I+!odGqeg(p=kean!ug@Ecy~1(Zid!DtAKh5+^u7_C1>>&wyh f0q*t?_FOY6IvN6_Api=2(fVVw{ur%4aMd3G)A)KJ literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/T.wav b/html/morse-code/audios/T.wav new file mode 100644 index 0000000000000000000000000000000000000000..4f9eaa824d5e43143e3bc5f313adc0d647bb56d3 GIT binary patch literal 2444 zcmWIYbaQLrWMBw)40BD(Em06)U|?VbLI-&Uh6XzZ1||jphLpsT!~~!k28J5F>p@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={6^EuX#N;24@S$=(fVVwz8vZ80|19u Bd6fVF literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/U.wav b/html/morse-code/audios/U.wav new file mode 100644 index 0000000000000000000000000000000000000000..ae7b47f657d6812409b13e4f3728f8c77febc6a1 GIT binary patch literal 5644 zcmWIYbaP`7V_*n(40BD(Em06)U|?VbLI-&Uh6XzZ1||jphLpsT#0R2435FWI>p@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={DxP00p*cVFd71*A%HyuM(dB!`f{{= zfV(|}J=ctij)uT!2!KLhwEh^aKSt{h-1Wz3{us?4qxoYre~gZ=jgC)}J{}7IZJ=;p literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/V.wav b/html/morse-code/audios/V.wav new file mode 100644 index 0000000000000000000000000000000000000000..a04a67600e2621d259c70d72a451b5c63f34e87a GIT binary patch literal 7244 zcmWIYbaQi(VPFV%40BD(Em06)U|?VbLI-&Uh6XzZ1||jphLpsTL^+@u28J5F>p@DX zNr~wmOXUB&zj*k_lG!tlEV+32&-*3v=^jamN~za_YV;TwS}tm?y*F##yqVi$9rrAX6+pq}4JeawC-n@IWG}pFV95rt={DxP00p*cVFd71*A%HyuM(dB!`f{{= zfV(|}J=ctij)uT!2!KLhwEh^aKSt}1(fVVwG#m{9azbFV{ur%4M(YpU^~Y%b7|kD} S`C~MHjLy%D&To-Ep9cWKo$EOO literal 0 HcmV?d00001 diff --git a/html/morse-code/audios/W.wav b/html/morse-code/audios/W.wav new file mode 100644 index 0000000000000000000000000000000000000000..8f7b4e6a4ff6f69e608e8c2c2232c3452e90a0a2 GIT binary patch literal 7244 zcmeI#Ar6Bu7zN;e3kT={ma*V4aDisomW(iq*aVm^1JoQ6F~KEZ2?~qm0C0gS9N`9B z05R}L)bd)_G!-vx`ab7oS(hEr<9xpc@94mYXfw@|O7uArZHduKL}EYfA&QOG(fp?f z?Lr*~SvSQuZ3;_x_ z0eBFgzt%NP#h3l>>&qI>eE;ByEGF~mW|#Gph;&|a?27D1B3)6kPO@bA+9Q$=uA!H% zl5Jqz$K75Ub1WNUFOR!%x4|m$(rcIxL<-wK-Kx4S&vEOhq1I8l(a}&lDsIbjUEiwy zsj!>}KfV|8K|P?J;tzbu{osAaVn6@_p9#=^&~MRSe($G0r-oGsK;TUPf8Y=Nfj_8* e5cr1x{=gsjvj6o!wE2e@y5GfB}GU`~ThD?x)6oItV>4F+EV-R=yxl6e4mftzTIH}C}v zYL`O(pfN`H#()3s>;&uOvK)zQ=bJ@*N(V|rdf$8Iid?25eNl1@)9~?qN8~)Nf?;$B zla+DbFZ(RbJu8iUzF)>oR)=sHRl#{Ia~@xPD{&I8U<`h&j24}Olt1px^BC&2u{yv2OkK2QHo4NoBefgb_-gZ`jD+WUii skPq@fKG@H&-|Di@!!jWNfp!A;6@Gg1F0hrI;Ras7 zLhYrqe9#d>@xsoZ_v1wvo;;D&Y&qW@@}VOlz0W;$MUE4ZzBsZ~xmthT5h=#^*vmF* z9~t-cv~^=HRby=ZdKz~hZIqYY<6DBP dz?T62fq&p1-TuLpfB*!#36LM;2l>&JA8)E~;&uQ4 literal 0 HcmV?d00001 diff --git a/html/morse-code/index.html b/html/morse-code/index.html index 98b88df..70404cb 100644 --- a/html/morse-code/index.html +++ b/html/morse-code/index.html @@ -11,10 +11,12 @@ } .letter { font-size: large; + cursor: pointer; } .dihdah { font-size: xx-large; font-weight: bolder; + cursor: pointer; } @@ -36,7 +38,7 @@

Morse Code

- +

@@ -50,6 +52,7 @@

Morse Code

@@ -76,6 +81,9 @@

Morse Code

function showOutputs() { document.getElementById('letterOutput').style.display = 'block'; document.getElementById('dihDahOutput').style.display = 'block'; + + document.getElementById('letterOutputHint').style.display = 'block'; + document.getElementById('dihDahOutputHint').style.display = 'block'; } function clearOutputs() { @@ -83,17 +91,44 @@

Morse Code

document.getElementById('dihDahOutput').innerHTML = ''; } - function modifyOutputs(letter, dihDah) { - const lt = letter === '_BT_WORD_SPACE' ? ' ' : `${letter}`; - const dd = dihDah === '_BT_WORD_SPACE' ? ' ' : `${dihDah}`; - const odd = document.getElementById('dihDahOutput').innerHTML; + function modifyOutputs(index, size, letter, dihDah) { + function modifyLetter() { + let normLetter = letter === '_BT_WORD_SPACE' ? ' ' : letter; + document.getElementById('letterOutput').innerHTML += normLetter; + } + + function postProcessWords() { + if (index === size - 1) { + const words = document.getElementById('letterOutput').innerHTML + .split(' ') + .map(word => `${word}`) + .join(' '); - document.getElementById('letterOutput').innerHTML += lt; - if (lt === ' ') { - document.getElementById('dihDahOutput').innerHTML = `
${odd}`; - } else { - document.getElementById('dihDahOutput').innerHTML = `${lt} : ${dd}
${odd}`; + document.getElementById('letterOutput').innerHTML = words; + } } + + function modifyDihDah() { + const lt = letter === '_BT_WORD_SPACE' ? ' ' : `${letter}`; + const dd = dihDah === '_BT_WORD_SPACE' ? ' ' : `${dihDah}`; + const odd = document.getElementById('dihDahOutput').innerHTML; + + if (lt === ' ') { + document.getElementById('dihDahOutput').innerHTML = `
${odd}`; + } else { + document.getElementById('dihDahOutput').innerHTML = `${lt} : ${dd}
${odd}`; + } + } + + modifyLetter(); + modifyDihDah(); + postProcessWords(); + } + + function playWord(word) { + const morseCode = getMorseCode(word, undefined); + isPlaying = true; + morseCode.play(); } function playLetter(letter) { @@ -114,7 +149,7 @@

Morse Code

playLetter(d2l.get(dihDah)); } - function getMorseCode(text, handler) { + function getMorseCode(text, letterHandler) { function getCode(c) { function getSrc(dd) { const audioPattern = [...dd].join(' '); @@ -202,7 +237,11 @@

Morse Code

} const letter = this.letters[this.letterIndex]; - handler(letter.letter, letter.dd); + + if (letterHandler) { + letterHandler(this.letterIndex, this.letters.length, letter.letter, letter.dd); + } + this.letterIndex += 1; const playable = getLetterPlayable(letter, this); playable.play(); From 5fb45fce633720342831633493e50b5a7341dee1 Mon Sep 17 00:00:00 2001 From: "Jee Vang, Ph.D" Date: Fri, 3 Jul 2020 16:20:47 -0400 Subject: [PATCH 126/186] fix bug --- html/morse-code/index.html | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/html/morse-code/index.html b/html/morse-code/index.html index 60a9949..3ab9271 100644 --- a/html/morse-code/index.html +++ b/html/morse-code/index.html @@ -38,7 +38,7 @@

Morse Code