Skip to content

Commit 2a076fb

Browse files
committed
new recipe MakeALogo w/ @dcoopersmith
1 parent 8e246d9 commit 2a076fb

3 files changed

Lines changed: 305 additions & 0 deletions

File tree

Lines changed: 254 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,254 @@
1+
package org.teachingextensions.logo.utils.TKPLogoUtils;
2+
3+
import org.teachingextensions.logo.Tortoise;
4+
import org.teachingextensions.logo.utils.ColorUtils.ColorWheel;
5+
import org.teachingextensions.logo.utils.ColorUtils.PenColors;
6+
import org.teachingkidsprogramming.recipes.completed.section00demos.MakeALogo;
7+
8+
public class TKPLogo
9+
{
10+
public static void setupColorWheel()
11+
{
12+
ColorWheel.addColor(PenColors.Grays.Gray);
13+
ColorWheel.addColor(PenColors.Greens.Green);
14+
ColorWheel.addColor(PenColors.Pinks.Pink);
15+
ColorWheel.addColor(PenColors.Purples.Purple);
16+
ColorWheel.addColor(PenColors.Blues.Blue);
17+
ColorWheel.addColor(PenColors.Yellows.Yellow);
18+
ColorWheel.addColor(PenColors.Browns.Brown);
19+
ColorWheel.addColor(PenColors.Oranges.Orange);
20+
ColorWheel.addColor(PenColors.Reds.Red);
21+
ColorWheel.addColor(PenColors.Whites.White);
22+
Tortoise.getBackgroundWindow().setBackground(ColorWheel.getRandomColorFromWheel());
23+
Tortoise.setPenWidth(4);
24+
}
25+
public static void draw_inner_tkp_P()
26+
{
27+
Tortoise.setX(MakeALogo.XValue + 355);
28+
Tortoise.setY(MakeALogo.YValue - 135);
29+
Tortoise.turn(180);
30+
Tortoise.move(10);
31+
TKPLogo.curve6();
32+
Tortoise.move(10);
33+
Tortoise.turn(90);
34+
Tortoise.move(50);
35+
Tortoise.hide();
36+
Tortoise.turn(1);
37+
}
38+
public static void draw_outer_tkp_P()
39+
{
40+
Tortoise.setAngle(180);
41+
Tortoise.setX(MakeALogo.XValue + 320);
42+
Tortoise.setY(MakeALogo.YValue);
43+
Tortoise.turn(180);
44+
Tortoise.move(15);
45+
Tortoise.turn(80);
46+
Tortoise.move(10);
47+
Tortoise.turn(-80);
48+
Tortoise.move(120);
49+
Tortoise.turn(-80);
50+
Tortoise.move(10);
51+
Tortoise.turn(80);
52+
Tortoise.move(15);
53+
Tortoise.turn(90);
54+
Tortoise.move(47);
55+
TKPLogo.curve5();
56+
Tortoise.move(12);
57+
Tortoise.turn(-90);
58+
Tortoise.move(50);
59+
Tortoise.turn(-80);
60+
Tortoise.move(10);
61+
Tortoise.turn(80);
62+
Tortoise.move(15);
63+
Tortoise.turn(90);
64+
Tortoise.move(43);
65+
}
66+
public static void drawRightBracket()
67+
{
68+
Tortoise.setAngle(-90);
69+
Tortoise.setX(MakeALogo.XValue + 250);
70+
Tortoise.setY(MakeALogo.YValue - 20);
71+
Tortoise.turn(180);
72+
Tortoise.move(30);
73+
TKPLogo.curve3();
74+
Tortoise.move(40);
75+
TKPLogo.curve4();
76+
Tortoise.move(10);
77+
Tortoise.turn(-90);
78+
Tortoise.move(10);
79+
Tortoise.turn(-90);
80+
Tortoise.move(10);
81+
TKPLogo.curve4();
82+
Tortoise.move(40);
83+
TKPLogo.curve3();
84+
Tortoise.move(30);
85+
Tortoise.turn(-90);
86+
Tortoise.move(10);
87+
Tortoise.turn(-90);
88+
Tortoise.move(15);
89+
TKPLogo.curve1();
90+
Tortoise.move(35);
91+
TKPLogo.curve2();
92+
Tortoise.turn(180);
93+
TKPLogo.curve2();
94+
Tortoise.move(35);
95+
TKPLogo.curve1();
96+
Tortoise.move(15);
97+
Tortoise.turn(-90);
98+
Tortoise.move(11);
99+
}
100+
public static void drawLeftBracket()
101+
{
102+
Tortoise.setAngle(-90);
103+
Tortoise.setX(MakeALogo.XValue + 130);
104+
Tortoise.setY(MakeALogo.YValue - 20);
105+
Tortoise.move(30);
106+
TKPLogo.curve1();
107+
Tortoise.move(40);
108+
TKPLogo.curve2();
109+
Tortoise.move(10);
110+
Tortoise.turn(90);
111+
Tortoise.move(10);
112+
Tortoise.turn(90);
113+
Tortoise.move(10);
114+
TKPLogo.curve2();
115+
Tortoise.move(40);
116+
TKPLogo.curve1();
117+
Tortoise.move(30);
118+
Tortoise.turn(90);
119+
Tortoise.move(10);
120+
Tortoise.turn(90);
121+
Tortoise.move(15);
122+
TKPLogo.curve3();
123+
Tortoise.move(35);
124+
TKPLogo.curve4();
125+
Tortoise.turn(180);
126+
TKPLogo.curve4();
127+
Tortoise.move(35);
128+
TKPLogo.curve3();
129+
Tortoise.move(15);
130+
Tortoise.turn(90);
131+
Tortoise.move(10);
132+
}
133+
public static void draw_tkp_T()
134+
{
135+
Tortoise.setX(MakeALogo.XValue);
136+
Tortoise.setY(MakeALogo.YValue);
137+
Tortoise.move(15);
138+
Tortoise.turn(80);
139+
Tortoise.move(10);
140+
Tortoise.turn(-80);
141+
Tortoise.move(120);
142+
Tortoise.turn(-90);
143+
Tortoise.move(15);
144+
Tortoise.turn(-75);
145+
Tortoise.move(10);
146+
Tortoise.turn(75);
147+
Tortoise.move(15);
148+
Tortoise.turn(90);
149+
Tortoise.move(35);
150+
Tortoise.turn(90);
151+
Tortoise.move(95);
152+
Tortoise.turn(90);
153+
Tortoise.move(35);
154+
Tortoise.turn(90);
155+
Tortoise.move(15);
156+
Tortoise.turn(75);
157+
Tortoise.move(10);
158+
Tortoise.turn(-75);
159+
Tortoise.move(15);
160+
Tortoise.turn(-90);
161+
Tortoise.move(120);
162+
Tortoise.turn(-80);
163+
Tortoise.move(10);
164+
Tortoise.turn(80);
165+
Tortoise.move(15);
166+
Tortoise.turn(90);
167+
Tortoise.move(50);
168+
}
169+
public static void curve6()
170+
{
171+
for (int i = 0; i < 180; i++)
172+
{
173+
double size = 0.43;
174+
Tortoise.turn(1);
175+
Tortoise.move(size);
176+
}
177+
}
178+
public static void curve5()
179+
{
180+
for (int i = 0; i < 180; i++)
181+
{
182+
double size = 0.75;
183+
Tortoise.turn(1);
184+
Tortoise.move(size);
185+
Tortoise.move(-size);
186+
Tortoise.move(size);
187+
}
188+
}
189+
public static void curve4()
190+
{
191+
for (int i = 0; i < 90; i++)
192+
{
193+
double size = 0.15;
194+
Tortoise.turn(1);
195+
Tortoise.move(size);
196+
}
197+
}
198+
public static void curve2()
199+
{
200+
for (int i = 0; i < 90; i++)
201+
{
202+
double size = 0.15;
203+
Tortoise.turn(-1);
204+
Tortoise.move(size);
205+
}
206+
}
207+
public static void curve1()
208+
{
209+
for (int i = 0; i < 90; i++)
210+
{
211+
double size = 0.25;
212+
Tortoise.turn(1);
213+
Tortoise.move(size);
214+
}
215+
}
216+
public static void curve3()
217+
{
218+
for (int i = 0; i < 90; i++)
219+
{
220+
double size = 0.25;
221+
Tortoise.turn(-1);
222+
Tortoise.move(size);
223+
}
224+
}
225+
public static void draw_tkp_K()
226+
{
227+
Tortoise.setAngle(180);
228+
Tortoise.setX(MakeALogo.XValue + 150);
229+
Tortoise.setY(MakeALogo.YValue + 15);
230+
Tortoise.turn(180);
231+
Tortoise.move(200);
232+
Tortoise.turn(90);
233+
Tortoise.move(30);
234+
Tortoise.turn(90);
235+
Tortoise.move(128);
236+
Tortoise.turn(-150);
237+
Tortoise.move(70);
238+
Tortoise.turn(90);
239+
Tortoise.move(30);
240+
Tortoise.turn(90);
241+
Tortoise.move(70);
242+
Tortoise.turn(-80);
243+
Tortoise.move(80);
244+
Tortoise.turn(140);
245+
Tortoise.move(40);
246+
Tortoise.turn(40);
247+
Tortoise.move(60);
248+
Tortoise.turn(-130);
249+
Tortoise.move(45);
250+
Tortoise.turn(90);
251+
Tortoise.move(30);
252+
Tortoise.turn(2);
253+
}
254+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.teachingkidsprogramming.recipes.completed.section00demos;
2+
3+
import org.teachingextensions.logo.Tortoise;
4+
import org.teachingextensions.logo.utils.TKPLogoUtils.TKPLogo;
5+
6+
public class MakeALogo
7+
8+
{
9+
public static int YValue = 300;
10+
public static int XValue = 100;
11+
public static void main(String[] args)
12+
{
13+
// Show the Tortoise --#1
14+
Tortoise.show();
15+
// Make the Tortoise draw a line as fast as possible --#2
16+
Tortoise.setSpeed(10);
17+
// Setup the Color Wheel --#3 HINT: Use the TKPLogo object
18+
TKPLogo.setupColorWheel();
19+
// Draw a TKP 'T' --#4
20+
TKPLogo.draw_tkp_T();
21+
// Draw a left bracket --#8
22+
TKPLogo.drawLeftBracket();
23+
// Draw a TKP 'K' --#5
24+
TKPLogo.draw_tkp_K();
25+
// Draw a right bracket --#9
26+
TKPLogo.drawRightBracket();
27+
// Draw an outer TKP 'P' --#6
28+
TKPLogo.draw_outer_tkp_P();
29+
// Call the make_Inner_P() method --#7
30+
TKPLogo.draw_inner_tkp_P();
31+
}
32+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.teachingkidsprogramming.section00demos;
2+
3+
public class MakeALogo
4+
{
5+
public static int YValue = 300;
6+
public static int XValue = 100;
7+
public static void main(String[] args)
8+
{
9+
// Show the Tortoise --#1
10+
// Make the Tortoise draw a line as fast as possible --#2
11+
// Setup the Color Wheel --#3 HINT: Use the TKPLogo object
12+
// Draw a TKP 'T' --#4
13+
// Draw a left bracket --#8
14+
// Draw a TKP 'K' --#5
15+
// Draw a right bracket --#9
16+
// Draw an outer TKP 'P' --#6
17+
// Call the make_Inner_P() method --#7
18+
}
19+
}

0 commit comments

Comments
 (0)