bato 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d6b9645582634e8f245ba76432b7f991d0426b4f61b096380e4ba8f0b1f0d76f
4
- data.tar.gz: 3907dfcb5270abf053d2c19ff11f154fad208148fc5da56819255a8beb1062ea
3
+ metadata.gz: e0af351f99cfb3448d817d493510a34e488fe690f78287919b2dc4135d5f1af6
4
+ data.tar.gz: 7f32c985adac8183048303538855ec39fedf3f860617d080e7ea14661a046136
5
5
  SHA512:
6
- metadata.gz: e52df88c526a19bd0afdf04581c240c036fc06d2a2cf4cc0b0deca0c40f9f31a217cc16e59c941f9be3c561a5e959d498b150f58c8943649031784be1844dd1b
7
- data.tar.gz: ae89a2cd816c9df23433bf19477137feb388bc378ba1a83d833561828f1bec4cc3b6dff9aba517e53bf1f6ed52d7975718ce0027627be765716ceb173c980ca6
6
+ metadata.gz: 8d0066c438ed51b3fc1fbea595071e769f52ecda08ab6cf2b8eed6da02180654c0eb36ae883423515dd746d7b807d9d044aef774f545ea88497721434a2b311c
7
+ data.tar.gz: 5c20bbcf8e25aebacc062eec0c6a71695962cd1dc0bd2eea5cbb40b3822eb35e3a7c219ce305a795536910732e05802fa8ff28d85eba910f770b5f26da5222e0
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Bato
2
2
 
3
- Ang 'Bato' ay ang unang programming language sa wikang Filipino.
3
+ Ang 'Bato Programming Language' ay isang scripting language sa wikang Filipino.
4
+
5
+ Subukan ang [Bato](https://trybato.herokuapp.com/)
4
6
 
5
7
  ## Pagtatalaga
6
8
 
@@ -19,9 +21,9 @@ Ang kadahilanang ginamit ang pangalang 'bato' ay dahil ang Ruby ay isang uri ng
19
21
  Gumawa ng isang file na kamusta_mundo.bato na may mga sumusunod na nilalaman
20
22
 
21
23
  kapag 1 > 0
22
- iprint "Kumusta mundo!"
24
+ mag_print "Kumusta mundo!"
23
25
  kung_hindi
24
- iprint "Mayroong sira"
26
+ mag_print "Mayroong sira"
25
27
  wakas
26
28
 
27
29
  at pa-andarin ang program sa pamamagitan ng
@@ -78,16 +80,16 @@ Paggamit ng kondisyon.
78
80
  subukang_muli kapag bilang_ng_pagkakamali < 3
79
81
  iangat "malubhang pagkakamali"
80
82
  siguraduhing
81
- iprint "Tapos na"
83
+ mag_print "Tapos na"
82
84
  wakas
83
85
 
84
86
  ### Panuntunan
85
87
 
86
88
  ang iprintAngPangalan(pangalan = wala)
87
89
  kapag pangalan != wala
88
- iprint "Magandang araw sa iyo #{pangalan}!"
90
+ mag_print "Magandang araw sa iyo #{pangalan}!"
89
91
  kung_hindi
90
- iprint "Magandang araw!"
92
+ mag_print "Magandang araw!"
91
93
  wakas
92
94
  wakas
93
95
 
@@ -104,13 +106,13 @@ Maari kang gumamit sa alin sa mga sumusunod sa pagtatapos ng program
104
106
  dulo
105
107
  katapusan
106
108
 
107
- Sampol
109
+ Halimbawa
108
110
 
109
- bilang = 0
110
- kapag bilang > 1
111
- iprint "Mayroon ng laman ang bilang na #{bilang}"
111
+ bilang_ng_saging = 2
112
+ kapag bilang_ng_saging > 1
113
+ mag_print "Mayroon akong #{bilang_ng_saging} saging! 🍌"
112
114
  kung_hindi
113
- iprint "Wala pang laman ang bilang"
115
+ mag_print "Wala na akong saging! 😐"
114
116
  wakas
115
117
 
116
118
  ### kung_iba
@@ -134,13 +136,13 @@ Kapag ang ekspresyon ay hindi nasunod maaring gumamit sa alin sa mga sumusunod
134
136
  maliban_dito
135
137
  maliban_sa_mga_ito
136
138
 
137
- Sampol
139
+ Halimbawa
138
140
 
139
141
  pangalan_mo = "Maliksi"
140
142
  kapag_ang pangalan_mo == "Maliksi"
141
- iprint "Ikaw ay si #{pangalan_mo}!"
143
+ mag_print "Ikaw ay si #{pangalan_mo}!"
142
144
  kung_hindi_naman
143
- iprint "Magandang araw sa iyo #{pangalan_mo}!"
145
+ mag_print "Magandang araw sa iyo #{pangalan_mo}!"
144
146
  wakas
145
147
 
146
148
  ### sakali
@@ -155,19 +157,19 @@ Kapag mayroon kang ekspresyon na madaming resulta gawa ng mga iba't ibang kondis
155
157
  kalagayan
156
158
  kaukulan
157
159
 
158
- Sampol
160
+ Halimbawa
159
161
 
160
162
  pangalan_mo = "Mabait"
161
163
 
162
164
  sakaling pangalan_mo
163
165
  ay "Maliksi"
164
- iprint "Ikaw ay si Maliksi!"
166
+ mag_print "Ikaw ay si Maliksi!"
165
167
  ay "Matipuno"
166
- iprint "Ikaw ay si Matipuno!"
168
+ mag_print "Ikaw ay si Matipuno!"
167
169
  ay "Mabait"
168
- iprint "Ikaw ay si Mabait!"
170
+ mag_print "Ikaw ay si Mabait!"
169
171
  maliban_dito
170
- iprint "Magandang araw sa iyo!"
172
+ mag_print "Magandang araw sa iyo!"
171
173
  wakas
172
174
 
173
175
  ### tiyakin
@@ -181,15 +183,15 @@ Kung mayroon kang ekspresyon na gusto mong masunod kahit ano pa ang kahihinatnan
181
183
  siguraduhin
182
184
  panigurado
183
185
 
184
- Sampol
186
+ Halimbawa
185
187
 
186
188
  simulan
187
189
  itaas "May sira!"
188
190
  agapan
189
- iprint "Ipagpatuloy..."
191
+ mag_print "Ipagpatuloy..."
190
192
  itaas "May nasira na na-agapan"
191
193
  tiyaking
192
- iprint "Tapos na"
194
+ mag_print "Tapos na"
193
195
  wakas
194
196
 
195
197
  ### grupo
@@ -198,22 +200,22 @@ Ang grupo ay ang lalagyanan ng mga kabilang na klase sa iyong program
198
200
 
199
201
  grupo
200
202
 
201
- Sampol
203
+ Halimbawa
202
204
 
203
205
  grupo Hayop
204
206
  KABUUAN = 5
205
207
 
206
208
  bilang Aso
207
209
  ang tahol
208
- iprint "Woof..."
210
+ mag_print "Woof..."
209
211
  wakas
210
212
 
211
213
  ang kumanin
212
- iprint "..."
214
+ mag_print "..."
213
215
  wakas
214
216
 
215
217
  ang ikembot_ang_buntot
216
- iprint "Ginagawa ko ito dahil masaya ako!"
218
+ mag_print "Ginagawa ko ito dahil masaya ako!"
217
219
  wakas
218
220
  wakas
219
221
  wakas
@@ -231,15 +233,15 @@ Gumamit ng ngunit_kapag kapag mayroon ka pang kondisyon maliban sa nauna ng kond
231
233
  ngunit_kapag_ang
232
234
  kung_kapag_ang
233
235
 
234
- Sampol
236
+ Halimbawa
235
237
 
236
238
  pangalan_mo = "Masipag"
237
239
  kapag_ang pangalan_mo == "Matipuno"
238
- iprint "Ikaw ay si Matipuno!"
240
+ mag_print "Ikaw ay si Matipuno!"
239
241
  ngunit_kapag_ang pangalan_mo == "Masipag"
240
- iprint "Ikaw ay si Masipag!"
242
+ mag_print "Ikaw ay si Masipag!"
241
243
  maliban_sa_mga_ito
242
- iprint "Wala kang rekord saamin!"
244
+ mag_print "Wala kang rekord saamin!"
243
245
  wakas
244
246
 
245
247
  ### ang
@@ -250,7 +252,7 @@ Ang ang ay may kalakip na pangalan upang ito ay matawag sa program
250
252
  panuntunan
251
253
  panuntunang
252
254
 
253
- Sampol
255
+ Halimbawa
254
256
 
255
257
  ang id(estudyante = {})
256
258
  pangalan = estudyante[:pangalan]
@@ -259,7 +261,7 @@ Sampol
259
261
  baitang = estudyante[:baitang]
260
262
  seksiyon = estudyante[:seksiyon]
261
263
 
262
- iprint <<-KATAPUSAN
264
+ mag_print <<-KATAPUSAN
263
265
  Pangalan: #{pangalan}
264
266
  Edad: #{edad}
265
267
  Tirahan: #{tirahan}
@@ -283,12 +285,12 @@ Ang agapan ay ginagamit kung mayroon maaaring mangyaring pagkakamali na gusto mo
283
285
  iligtas
284
286
  agapan
285
287
 
286
- Sampol
288
+ Halimbawa
287
289
 
288
290
  simulan
289
291
  1 / 0
290
292
  agapan
291
- iprint "Hindi ito posible!"
293
+ mag_print "Hindi ito posible!"
292
294
  wakas
293
295
 
294
296
  ### dapat
@@ -297,7 +299,7 @@ Kapag mayroon kang ekspresyon na mayroong inaasahan na resulta, gumamit ng dapat
297
299
 
298
300
  dapat
299
301
 
300
- Sampol
302
+ Halimbawa
301
303
 
302
304
  panulat_mo = "lapis"
303
305
 
@@ -307,7 +309,7 @@ Sampol
307
309
  maliban_sa_mga_ito "intermediate paper"
308
310
  wakas
309
311
 
310
- iprint "Ang papel na gagamitin mo ay #{papel}"
312
+ mag_print "Ang papel na gagamitin mo ay #{papel}"
311
313
 
312
314
  ### magbigay_daan
313
315
 
@@ -316,17 +318,17 @@ Kapag ang ekspresyon ay mayroong inaasahang dapat na ibigay na resulta habang gu
316
318
  magbigay_daan
317
319
  bigyang_daan
318
320
 
319
- Sampol
321
+ Halimbawa
320
322
 
321
323
  ang gumawaNgID
322
- iprint "------------------------------------------"
324
+ mag_print "------------------------------------------"
323
325
  magbigay_daan
324
- iprint "------------------------------------------"
326
+ mag_print "------------------------------------------"
325
327
  wakas
326
328
 
327
329
  ang ID(impormasyon = {})
328
330
  gumawaNgID na_ganito
329
- iprint <<-KATAPUSAN
331
+ mag_print <<-KATAPUSAN
330
332
  Pangalan: #{impormasyon[:pangalan]}
331
333
  Edad: #{impormasyon[:edad]}
332
334
  Tirahan: #{impormasyon[:tirahan]}
@@ -351,11 +353,11 @@ Kapag may listahan na nais mong isa isahin, gumamit ng para_sa
351
353
  para_sa
352
354
  para_ang
353
355
 
354
- Sampol
356
+ Halimbawa
355
357
 
356
358
  listahan_ng_mga_prutas = ["mansanas", "mangga", "guava", "santol", "ubas"]
357
359
  para_sa prutas na_nasa listahan_ng_mga_prutas ganito_gawin
358
- iprint prutas.sa_malaking_titik
360
+ mag_print prutas.sa_malaking_titik
359
361
  wakas
360
362
 
361
363
  ### subukang_muli
@@ -364,7 +366,7 @@ Ginagamit ang subukang_muli upang umikot muli ang ekspresyon kung may sirang nan
364
366
 
365
367
  subukang_muli
366
368
 
367
- Sampol
369
+ Halimbawa
368
370
 
369
371
  bilang_ng_pagkakamali = 0
370
372
  simula
@@ -374,7 +376,7 @@ Sampol
374
376
  subukang_muli kapag bilang_ng_pagkakamali < 3
375
377
  iangat "malubhang pagkakamali"
376
378
  siguraduhing
377
- iprint "Tapos na"
379
+ mag_print "Tapos na"
378
380
  wakas
379
381
 
380
382
  ### ibalik
@@ -392,7 +394,7 @@ Kapag mayroon kang ibabalik na resulta sa nagtawag ng ang
392
394
  magbigay
393
395
  magbigay_nang
394
396
 
395
- Sampol
397
+ Halimbawa
396
398
 
397
399
  ang magdagdag_ng_isa(halaga)
398
400
  idadagdag = halaga + 1
@@ -409,12 +411,12 @@ Ginagamit ang kapag kung meron kang kondisyon sa iyong ekspresyon
409
411
  kung
410
412
  kung_ang
411
413
 
412
- Sampol
414
+ Halimbawa
413
415
 
414
416
  kapag_ang 1 > 0
415
- iprint "mas madami!"
417
+ mag_print "mas madami!"
416
418
  kung_iba
417
- iprint "may sira"
419
+ mag_print "may sira"
418
420
  wakas
419
421
 
420
422
  ### bilang
@@ -423,12 +425,12 @@ Ang bilang ay ang pagsasabilang ng isang kaukulang klasipikasyon
423
425
 
424
426
  bilang
425
427
 
426
- Sampol
428
+ Halimbawa
427
429
 
428
430
  grupo Tinapay
429
431
  bilang Donut
430
432
  ang flavor
431
- iprint 'Strawberry!'
433
+ mag_print 'Strawberry!'
432
434
  wakas
433
435
  wakas
434
436
  wakas
@@ -444,12 +446,12 @@ Gumamit ng habang kung may hinihintay pa na resulta, kondisyon o pangyayari
444
446
  habang
445
447
  habang_ang
446
448
 
447
- Sampol
449
+ Halimbawa
448
450
 
449
451
  may_buhay = totoo
450
452
 
451
453
  habang may_buhay
452
- iprint 'may pag-asa!'
454
+ mag_print 'may pag-asa!'
453
455
  hinto
454
456
  wakas
455
457
  => 'may pag-asa!'
@@ -460,11 +462,11 @@ Gumamit ng alyas kung kailangan mo tawagin sa ibang pangalan ang iyong panuntuna
460
462
 
461
463
  alyas
462
464
 
463
- Sampol
465
+ Halimbawa
464
466
 
465
467
  bilang Hayop
466
468
  ang aso
467
- iprint 'si browny ay mabait!'
469
+ mag_print 'si browny ay mabait!'
468
470
  wakas
469
471
  alyas browny aso
470
472
  wakas
@@ -480,20 +482,20 @@ Ang nakatukoy? ay ginagamit kung kailangan malaman kung umiiral ang isang grupo
480
482
  nakatukoy?
481
483
  nakasaad?
482
484
 
483
- Sampol
485
+ Halimbawa
484
486
 
485
487
  grupo Manggagawa
486
488
  bilang Magsasaka
487
489
  ang pananim
488
490
  ['sibuyas', 'kamatis', 'sili', 'palay', 'mais'].isaisahin na_ganito |pananim|
489
- iprint "Mag tatanim ng #{pananim} ngayong panahon"
491
+ mag_print "Mag tatanim ng #{pananim} ngayong panahon"
490
492
  wakas
491
493
  wakas
492
494
  wakas
493
495
  wakas
494
496
 
495
497
  kung nakatukoy?(Manggagawa::Magsasaka)
496
- iprint 'May nakatukoy!'
498
+ mag_print 'May nakatukoy!'
497
499
  wakas
498
500
 
499
501
  ### tanggalin
@@ -503,12 +505,12 @@ Ginagamit ang tanggalin kung may tatanggaling panuntunan sa isang klase
503
505
  tanggalin
504
506
  magtanggal
505
507
 
506
- Sampol
508
+ Halimbawa
507
509
 
508
510
  grupo Hayop
509
511
  bilang Aso
510
512
  ang tahol
511
- iprint 'baw waw!'
513
+ mag_print 'baw waw!'
512
514
  wakas
513
515
  wakas
514
516
  wakas
@@ -516,7 +518,7 @@ Sampol
516
518
  bilang Pusa < Hayop::Aso
517
519
  tanggalin tahol
518
520
  ang meow
519
- iprint 'meow wahu!'
521
+ mag_print 'meow wahu!'
520
522
  wakas
521
523
  wakas
522
524
 
@@ -525,7 +527,7 @@ Sampol
525
527
  simulan
526
528
  pusa.tahol
527
529
  agapan => pagkakamali
528
- iprint "ang pagkakamali ay '#{pagkakamali}'"
530
+ mag_print "ang pagkakamali ay '#{pagkakamali}'"
529
531
  wakas
530
532
 
531
533
  ### ihinto
@@ -535,16 +537,16 @@ Gumamit ng 'hinto' kung may nais kang matapos na kondisyon gamit ang 'habang'
535
537
  ihinto
536
538
  hinto
537
539
 
538
- Sampol
540
+ Halimbawa
539
541
 
540
542
  nakamit = mali
541
543
 
542
544
  habang nakamit == mali
543
- iprint 'hindi pa nakakamit!'
545
+ mag_print 'hindi pa nakakamit!'
544
546
  hinto
545
547
  wakas
546
548
 
547
- iprint 'nakamit na!'
549
+ mag_print 'nakamit na!'
548
550
 
549
551
  ### sa
550
552
 
@@ -555,7 +557,7 @@ Ginagamit ang 'sa' kung nais mong matukoy ang kasulukuyang listahan
555
557
  nasa
556
558
  na_nasa
557
559
 
558
- Sampol
560
+ Halimbawa
559
561
 
560
562
  Tignan ang [para_sa](#para_sa)
561
563
 
@@ -567,7 +569,7 @@ Ginagamit ang 'ganito' kung nais mong i konteksto ang kasulukuyang listahan
567
569
  nang_ganito
568
570
  ganito
569
571
 
570
- Sampol
572
+ Halimbawa
571
573
 
572
574
  Tignan ang [magbigay_daan](#magbigay_daan), [nakatukoy?](#nakatukoy?)
573
575
 
@@ -579,12 +581,12 @@ Ang 'hanggang' ay magpapatuloy tumakbo hanggang maabot ang tamang kundisyon.
579
581
  hanggang_ang
580
582
  mapa_hanggang
581
583
 
582
- Sampol
584
+ Halimbawa
583
585
 
584
586
  numero = 0
585
587
  panghuling_numero = 5
586
588
  simula
587
- iprint "Ang numero ay #{numero} na"
589
+ mag_print "Ang numero ay #{numero} na"
588
590
  numero += 1
589
591
  wakas hanggang numero < panghuling_numero
590
592
 
@@ -594,7 +596,7 @@ Sampol
594
596
  maliban_na
595
597
  maliban_ang
596
598
 
597
- Sampol
599
+ Halimbawa
598
600
 
599
601
  mga_persona = [
600
602
  { pangalan: 'Gener', kasarian: 'lalaki' },
@@ -603,9 +605,9 @@ Sampol
603
605
 
604
606
  mga_persona.isaisahin ng_ganito |tao|
605
607
  malibang tao[:kasarian] == 'lalaki'
606
- iprint "si #{tao[:pangalan]} ay babae!"
608
+ mag_print "si #{tao[:pangalan]} ay babae!"
607
609
  maliban_dito
608
- iprint "si #{tao[:pangalan]} ay lalaki!"
610
+ mag_print "si #{tao[:pangalan]} ay lalaki!"
609
611
  wakas
610
612
  wakas
611
613
 
@@ -616,7 +618,7 @@ Ang 'o' ay ginagamit upang piliin ang nagsasauli ng tama.
616
618
  o
617
619
  o_ang
618
620
 
619
- Sampol
621
+ Halimbawa
620
622
 
621
623
  totoo o mali
622
624
  => totoo
data/_config.yml ADDED
@@ -0,0 +1 @@
1
+ theme: jekyll-theme-cayman
data/lib/bato/bersiyon.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Bato
2
- BERSIYON = '0.0.9'.freeze
2
+ BERSIYON = '0.0.10'.freeze
3
3
  end
@@ -1,4 +1,5 @@
1
1
  class Array
2
+ alias baliktad reverse
2
3
  alias umikot cycle
3
4
  alias isuksok inject
4
5
  alias magbagsak drop
@@ -13,4 +14,6 @@ class Array
13
14
  alias bawat each
14
15
  alias kada_isa each
15
16
  alias sa_bawat_isa each
17
+ alias bilang_bawat_isa each_with_index
18
+ alias haba length
16
19
  end
@@ -2,6 +2,8 @@ module Kernel
2
2
  alias isulat puts
3
3
  alias sabihin puts
4
4
  alias iprint puts
5
+ alias mag_print puts
5
6
  alias iangat raise
6
7
  alias itaas raise
8
+ alias matulog sleep
7
9
  end
@@ -1,3 +1,4 @@
1
1
  class Module
2
2
  alias panguri attr_accessor
3
+ alias palawigin extend
3
4
  end
@@ -1,5 +1,5 @@
1
1
  simulan
2
2
  1 / 0
3
3
  agapan
4
- iprint "Hindi ito posible!"
4
+ mag_print "Hindi ito posible!"
5
5
  wakas
@@ -1,6 +1,6 @@
1
1
  bilang Hayop
2
2
  ang aso
3
- iprint 'si browny ay mabait!'
3
+ mag_print 'si browny ay mabait!'
4
4
  wakas
5
5
  alyas browny aso
6
6
  wakas
@@ -0,0 +1,286 @@
1
+ require 'io/console'
2
+
3
+ grupo Batotris
4
+ BERSIYON = '0.1'.freeze
5
+ palawigin sarili
6
+
7
+ bilang Piyesa
8
+ MGA_PIYESA = [
9
+ [ [0, 1, 0, 0],
10
+ [1, 1, 1, 0],
11
+ [0, 0, 0, 0],
12
+ [0, 0, 0, 0], ],
13
+
14
+ [ [0, 1, 1, 0],
15
+ [1, 1, 0, 0],
16
+ [0, 0, 0, 0],
17
+ [0, 0, 0, 0], ],
18
+
19
+ [ [1, 1, 0, 0],
20
+ [0, 1, 1, 0],
21
+ [0, 0, 0, 0],
22
+ [0, 0, 0, 0], ],
23
+
24
+ [ [1, 1, 1, 1],
25
+ [0, 0, 0, 0],
26
+ [0, 0, 0, 0],
27
+ [0, 0, 0, 0], ],
28
+
29
+ [ [1, 1, 0, 0],
30
+ [1, 1, 0, 0],
31
+ [0, 0, 0, 0],
32
+ [0, 0, 0, 0], ],
33
+
34
+ [ [1, 0, 0, 0],
35
+ [1, 1, 1, 0],
36
+ [0, 0, 0, 0],
37
+ [0, 0, 0, 0], ],
38
+
39
+ [ [0, 0, 1, 0],
40
+ [1, 1, 1, 0],
41
+ [0, 0, 0, 0],
42
+ [0, 0, 0, 0], ],
43
+ ]
44
+
45
+ ang initialize(x, y, piyesa = bagong_bloke)
46
+ @x = x
47
+ @y = y
48
+ @piyesa = piyesa
49
+ wakas
50
+
51
+ ang magiba_ng_posisyon
52
+ bilang_ng_paglipat = 0
53
+ ang_posisyon = Array.kumatawan(4)
54
+ @piyesa.bilang_bawat_isa na_ganito |bloke, y|
55
+ bloke.bilang_bawat_isa na_ganito |b, x|
56
+ kapag b == 1
57
+ ang_posisyon[bilang_ng_paglipat] = [ @x + x, @y + y ]
58
+ bilang_ng_paglipat += 1
59
+ wakas
60
+ wakas
61
+ wakas
62
+ ang_posisyon
63
+ wakas
64
+
65
+ ang kanan
66
+ Piyesa.kumatawan(@x + 1, @y, @piyesa)
67
+ wakas
68
+
69
+ ang kaliwa
70
+ Piyesa.kumatawan(@x - 1, @y, @piyesa)
71
+ wakas
72
+
73
+ ang mahulog
74
+ Piyesa.kumatawan(@x, @y + 1, @piyesa)
75
+ wakas
76
+
77
+ ang pagikot
78
+ pansamantala = Array.kumatawan(4){ Array.kumatawan(4, 0)}
79
+ @piyesa.bilang_bawat_isa na_ganito |linya, y|
80
+ linya.bilang_bawat_isa na_ganito |l, x|
81
+ pansamantala[x][y] = l
82
+ wakas
83
+ wakas
84
+ pansamantala.bilang_bawat_isa na_ganito |linya, i|
85
+ pansamantala[i] = linya.baliktad
86
+ wakas
87
+ Piyesa.kumatawan(@x, @y, pansamantala)
88
+ wakas
89
+
90
+ ang bagong_bloke
91
+ rnd = rand(MGA_PIYESA.haba)
92
+ MGA_PIYESA[rnd]
93
+ wakas
94
+ wakas
95
+
96
+ grupo Pananda
97
+ WALA = 0
98
+ PADER = 1
99
+ AKTIBO = 2
100
+ NAKALINYA = 3
101
+ wakas
102
+
103
+ bilang Babagsakan
104
+ LAWAK = 11
105
+ TAAS = 20
106
+ DAMI = 40
107
+ PADER_LETRA = "🀫 "
108
+ BLOCK_LETRA = "⚀ "
109
+ WALA_LETRA = " "
110
+ panguri :dako
111
+
112
+ ang initialize
113
+ @sakop = gagalawan
114
+ @dako = 0
115
+ wakas
116
+
117
+ ang burahin
118
+ @sakop.bilang_bawat_isa na_ganito |linya, y|
119
+ linya.bilang_bawat_isa na_ganito |l, x|
120
+ @sakop[y][x] = 0 kapag l == Pananda::AKTIBO
121
+ wakas
122
+ wakas
123
+ wakas
124
+
125
+ ang burahin_ang_linya
126
+ @sakop.bilang_bawat_isa na_ganito |linya, y|
127
+ kapag linya == [Pananda::PADER, Pananda::NAKALINYA, Pananda::NAKALINYA, Pananda::NAKALINYA, Pananda::NAKALINYA, Pananda::NAKALINYA, Pananda::NAKALINYA, Pananda::NAKALINYA, Pananda::NAKALINYA, Pananda::NAKALINYA, Pananda::PADER]
128
+ @dako += 1
129
+ @sakop.delete_at(y)
130
+ @sakop.insert(0, [Pananda::PADER, Pananda::WALA, Pananda::WALA, Pananda::WALA, Pananda::WALA, Pananda::WALA, Pananda::WALA, Pananda::WALA, Pananda::WALA, Pananda::WALA, Pananda::PADER])
131
+ wakas
132
+ wakas
133
+ wakas
134
+
135
+ ang tapos_na?
136
+ @dako >= 40
137
+ wakas
138
+
139
+ ang ay_bloke?(susunod_na_posisyon)
140
+ resulta = mali
141
+ susunod_na_posisyon.isaisahin na_ganito |pos|
142
+ kapag isang_bloke?(pos[0], pos[1])
143
+ resulta = tama
144
+ wakas
145
+ wakas
146
+ resulta
147
+ wakas
148
+
149
+ ang ipirme(kasulukuyang_posisyon)
150
+ kasulukuyang_posisyon.isaisahin na_ganito |pos|
151
+ @sakop[pos[1]][pos[0]] = Pananda::NAKALINYA
152
+ wakas
153
+ wakas
154
+
155
+ ang bago_ipirme(kasulukuyang_posisyon)
156
+ kasulukuyang_posisyon.isaisahin na_ganito |pos|
157
+ @sakop[pos[1]][pos[0]] = Pananda::AKTIBO
158
+ wakas
159
+ wakas
160
+
161
+ ang write
162
+ teksto = "\n\e[25D"
163
+ @sakop.isaisahin na_ganito |linya|
164
+ linya.isaisahin na_ganito |l|
165
+ kapag l == Pananda::WALA
166
+ teksto += WALA_LETRA
167
+ kung_kapag l == Pananda::AKTIBO || l == Pananda::NAKALINYA
168
+ teksto += BLOCK_LETRA
169
+ kung_hindi
170
+ teksto += PADER_LETRA
171
+ wakas
172
+ wakas
173
+ teksto += "\n\e[25D"
174
+ wakas
175
+ mag_print teksto
176
+ wakas
177
+
178
+ private
179
+
180
+ ang isang_bloke?(x, y)
181
+ @sakop[y][x] == Pananda::PADER || @sakop[y][x] == Pananda::NAKALINYA
182
+ wakas
183
+
184
+ ang gagalawan
185
+ f = []
186
+ TAAS.beses na_ganito |i|
187
+ linya = []
188
+ LAWAK.beses na_ganito |j|
189
+ linya[j] = (j == 0 || j == LAWAK - 1 || i == TAAS - 1) ? Pananda::PADER : Pananda::WALA
190
+ wakas
191
+ f[i] = linya
192
+ wakas
193
+ ibalik_ang f
194
+ wakas
195
+ wakas
196
+
197
+ ang burahin_ang_screen
198
+ print "\x1b[2J\x1b[0;0H"
199
+ wakas
200
+
201
+ ang mahulog_to_bloke(piyesa, sakop)
202
+ resulta = piyesa
203
+ loop na_ganito
204
+ susunod_na_posisyon = resulta.mahulog.magiba_ng_posisyon
205
+ kapag sakop.ay_bloke?(susunod_na_posisyon)
206
+ isauli_ang resulta
207
+ kung_hindi
208
+ resulta = resulta.mahulog
209
+ wakas
210
+ wakas
211
+ wakas
212
+
213
+ ang tetris
214
+ burahin_ang_screen
215
+
216
+ sakop = Babagsakan.kumatawan
217
+ sakop.write
218
+
219
+ piyesa = Piyesa.kumatawan(5, 0)
220
+
221
+ pinindot = 'n'
222
+ thread = Thread::start na_ganito
223
+ habang (pinindot = STDIN.getch)
224
+ kapag pinindot == "\C-c"
225
+ ihinto
226
+ wakas
227
+ wakas
228
+ wakas
229
+
230
+ loop na_ganito
231
+ matulog(0.2)
232
+ sarili.burahin_ang_screen
233
+ mag_print "kaliwa: [left key], kanan: [right key], mahulog: [space], ikutin: [up key], q: exit \e[25D"
234
+ mag_print "\e[25D#{sakop.dako}\e[25D"
235
+
236
+ kung_sakaling pinindot
237
+ ay 'q' dapat
238
+ exit
239
+ ay "D" dapat
240
+ pansamantala = piyesa.kaliwa
241
+ ay "C" dapat
242
+ pansamantala = piyesa.kanan
243
+ ay 'B' dapat
244
+ pansamantala = sarili.mahulog_to_bloke(piyesa, sakop)
245
+ ay ' ' dapat
246
+ pansamantala = sarili.mahulog_to_bloke(piyesa, sakop)
247
+ ay "A" dapat
248
+ pansamantala = piyesa.pagikot
249
+ kung_hindi
250
+ pansamantala = piyesa.mahulog
251
+ wakas
252
+
253
+ susunod_na_posisyon = pansamantala.magiba_ng_posisyon
254
+
255
+ kapag !sakop.ay_bloke?(susunod_na_posisyon)
256
+ sakop.bago_ipirme(susunod_na_posisyon)
257
+ piyesa = pansamantala
258
+
259
+ kung_kapag pinindot != 'n'
260
+ piyesa = piyesa
261
+ kung_hindi
262
+ sakop.ipirme(piyesa.magiba_ng_posisyon)
263
+ piyesa = Piyesa.kumatawan(5, 0)
264
+ susunod_na_posisyon = piyesa.magiba_ng_posisyon
265
+ kapag sakop.ay_bloke?(susunod_na_posisyon)
266
+ mag_print "game over"
267
+ ihinto
268
+ wakas
269
+ wakas
270
+
271
+ sakop.write
272
+ sakop.burahin
273
+ sakop.burahin_ang_linya
274
+
275
+ pinindot = 'n'
276
+ kapag sakop.tapos_na?
277
+ mag_print "matagumpay!"
278
+ ihinto
279
+ wakas
280
+ wakas
281
+ Thread.kill(thread)
282
+ wakas
283
+ wakas
284
+
285
+
286
+ Batotris.tetris
@@ -1,7 +1,7 @@
1
1
  grupo Tinapay
2
2
  bilang Donut
3
3
  ang flavor
4
- iprint 'Strawberry!'
4
+ mag_print 'Strawberry!'
5
5
  wakas
6
6
  wakas
7
7
  wakas
@@ -6,4 +6,4 @@ papel = sakaling panulat_mo
6
6
  maliban_sa_mga_ito "intermediate paper"
7
7
  wakas
8
8
 
9
- iprint "Ang papel na gagamitin mo ay #{papel}"
9
+ mag_print "Ang papel na gagamitin mo ay #{papel}"
@@ -1,7 +1,7 @@
1
1
  may_buhay = totoo
2
2
 
3
3
  habang may_buhay
4
- iprint 'may pag-asa!'
4
+ mag_print 'may pag-asa!'
5
5
 
6
6
  hinto
7
7
  wakas
@@ -1,8 +1,8 @@
1
1
  nakamit = mali
2
2
 
3
3
  habang nakamit == mali
4
- iprint 'hindi pa nakakamit!'
4
+ mag_print 'hindi pa nakakamit!'
5
5
  hinto
6
6
  wakas
7
7
 
8
- iprint 'nakamit na!'
8
+ mag_print 'nakamit na!'
@@ -1,17 +1,17 @@
1
1
  # isaisahin loop
2
2
  ['a','b','c','d'].isaisahin na_ganito |titik|
3
- iprint "Ang titik ay #{titik}"
3
+ mag_print "Ang titik ay #{titik}"
4
4
  wakas
5
5
 
6
6
  # isaisahin loop on range
7
7
  (1..10).isaisahin na_ganito |numero|
8
- iprint "Ang numero ay #{numero}"
8
+ mag_print "Ang numero ay #{numero}"
9
9
  wakas
10
10
 
11
11
  # while loop
12
12
  numero = 1
13
13
  habang numero < 10 ganito
14
- iprint "Ang numero ay #{numero} na"
14
+ mag_print "Ang numero ay #{numero} na"
15
15
  numero += 1
16
16
  wakas
17
17
 
@@ -19,7 +19,7 @@ wakas
19
19
  numero = 0
20
20
  panghuling_numero = 5
21
21
  simula
22
- iprint "Ang numero ay #{numero} na"
22
+ mag_print "Ang numero ay #{numero} na"
23
23
  numero += 1
24
24
  wakas habang numero < panghuling_numero
25
25
 
@@ -27,7 +27,7 @@ wakas habang numero < panghuling_numero
27
27
  numero = 0
28
28
  panghuling_numero = 5
29
29
  hanggang numero > panghuling_numero ganito
30
- iprint "Ang numero ay #{numero} na"
30
+ mag_print "Ang numero ay #{numero} na"
31
31
  numero += 1
32
32
  wakas
33
33
 
@@ -35,11 +35,11 @@ wakas
35
35
  numero = 0
36
36
  panghuling_numero = 5
37
37
  simula
38
- iprint "Ang numero ay #{numero} na"
38
+ mag_print "Ang numero ay #{numero} na"
39
39
  numero += 1
40
40
  wakas hanggang numero < panghuling_numero
41
41
 
42
42
  # for loop
43
43
  para_ang numero na_nasa 0..5
44
- iprint "Ang numero ay #{numero} na"
44
+ mag_print "Ang numero ay #{numero} na"
45
45
  wakas
@@ -1,5 +1,5 @@
1
1
  kapag 1 > 0
2
- iprint "Kumusta mundo!"
2
+ mag_print "Kumusta mundo!"
3
3
  kung_hindi
4
- iprint "Mayroong sira"
4
+ mag_print "Mayroong sira"
5
5
  wakas
@@ -1,14 +1,14 @@
1
1
  ang gumawaNgID
2
- iprint "------------------------------------------"
2
+ mag_print "------------------------------------------"
3
3
 
4
4
  magbigay_daan
5
5
 
6
- iprint "------------------------------------------"
6
+ mag_print "------------------------------------------"
7
7
  wakas
8
8
 
9
9
  ang ID(impormasyon = {})
10
10
  gumawaNgID na_ganito
11
- iprint <<-KATAPUSAN
11
+ mag_print <<-KATAPUSAN
12
12
  Pangalan: #{impormasyon[:pangalan]}
13
13
  Edad: #{impormasyon[:edad]}
14
14
  Tirahan: #{impormasyon[:tirahan]}
@@ -5,8 +5,8 @@ mga_persona = [
5
5
 
6
6
  mga_persona.isaisahin ng_ganito |tao|
7
7
  malibang tao[:kasarian] == 'lalaki'
8
- iprint "si #{tao[:pangalan]} ay babae!"
8
+ mag_print "si #{tao[:pangalan]} ay babae!"
9
9
  maliban_dito
10
- iprint "si #{tao[:pangalan]} ay lalaki!"
10
+ mag_print "si #{tao[:pangalan]} ay lalaki!"
11
11
  wakas
12
12
  wakas
@@ -2,15 +2,15 @@ grupo MgaAlagangHayop
2
2
  KAILANGAN_DAMI_NG_ASO = 5
3
3
  bilang Aso
4
4
  ang tahol
5
- iprint "Woof..."
5
+ mag_print "Woof..."
6
6
  wakas
7
7
 
8
8
  ang kumanin
9
- iprint "..."
9
+ mag_print "..."
10
10
  wakas
11
11
 
12
12
  ang ikembot_ang_buntot
13
- iprint "Ginagawa ko ito dahil masaya ako!"
13
+ mag_print "Ginagawa ko ito dahil masaya ako!"
14
14
  wakas
15
15
  wakas
16
16
  wakas
@@ -2,12 +2,12 @@ grupo Manggagawa
2
2
  bilang Magsasaka
3
3
  ang pananim
4
4
  ['sibuyas', 'kamatis', 'sili', 'palay', 'mais'].isaisahin na_ganito |pananim|
5
- iprint "Mag tatanim ng #{pananim} ngayong panahon"
5
+ mag_print "Mag tatanim ng #{pananim} ngayong panahon"
6
6
  wakas
7
7
  wakas
8
8
  wakas
9
9
  wakas
10
10
 
11
11
  kung nakatukoy?(Manggagawa::Magsasaka)
12
- iprint 'May nakatukoy!'
12
+ mag_print 'May nakatukoy!'
13
13
  wakas
@@ -1,8 +1,8 @@
1
1
  pangalan_mo = "Masipag"
2
2
  kapag_ang pangalan_mo == "Matipuno"
3
- iprint "Ikaw ay si Matipuno!"
3
+ mag_print "Ikaw ay si Matipuno!"
4
4
  ngunit_kapag_ang pangalan_mo == "Masipag"
5
- iprint "Ikaw ay si Masipag!"
5
+ mag_print "Ikaw ay si Masipag!"
6
6
  maliban_sa_mga_ito
7
- iprint "Wala kang rekord dito!"
7
+ mag_print "Wala kang rekord dito!"
8
8
  wakas
@@ -1,3 +1,3 @@
1
1
  kapag (totoo o mali)
2
- iprint 'totoo'
2
+ mag_print 'totoo'
3
3
  wakas
@@ -7,5 +7,5 @@ agapan => pagkakamali
7
7
  subukang_muli kapag bilang_ng_pagkakamali < 3
8
8
  iangat "malubhang pagkakamali"
9
9
  siguraduhing
10
- iprint "Tapos na"
10
+ mag_print "Tapos na"
11
11
  wakas
@@ -1,8 +1,8 @@
1
1
  ang iprintAngPangalan(pangalan = wala)
2
2
  kapag pangalan != wala
3
- iprint "Magandang araw sa iyo #{pangalan}!"
3
+ mag_print "Magandang araw sa iyo #{pangalan}!"
4
4
  kung_hindi
5
- iprint "Magandang araw!"
5
+ mag_print "Magandang araw!"
6
6
  wakas
7
7
  wakas
8
8
 
@@ -6,7 +6,7 @@ bilang Pangalan
6
6
  wakas
7
7
 
8
8
  ang ipakitaAngPangalan
9
- iprint sariling.pangalan
9
+ mag_print sariling.pangalan
10
10
  wakas
11
11
  wakas
12
12
 
@@ -5,7 +5,7 @@ ang gumawaNgID(estudyante = {})
5
5
  baitang = estudyante[:baitang]
6
6
  seksiyon = estudyante[:seksiyon]
7
7
 
8
- iprint <<-KATAPUSAN
8
+ mag_print <<-KATAPUSAN
9
9
  Pangalan: #{pangalan}
10
10
  Edad: #{edad}
11
11
  Tirahan: #{tirahan}
@@ -1,4 +1,4 @@
1
1
  listahan_ng_mga_prutas = ["mansanas", "mangga", "guava", "santol", "ubas"]
2
2
  para_sa prutas na_nasa listahan_ng_mga_prutas ganito_gawin
3
- iprint prutas.sa_malaking_titik
3
+ mag_print prutas.sa_malaking_titik
4
4
  wakas
@@ -51,9 +51,9 @@ ang pibonasyingPaguulitNaUmiikot(n, n1 = 1, n2 = 1)
51
51
  magbalik n1
52
52
  wakas
53
53
 
54
- iprint "Gamit ang Panuntunang Pibonasyi sa 10 ay #{pibonasyi 10}"
55
- iprint "Gamit ang Panuntunang Pibonasying May Pagsuksok sa 9 ay #{pibonasyingPagsuksok 9}"
56
- iprint "Gamit ang Panuntunang Pibonasying Inuulit sa 8 ay #{pibonasyingInuulit 8}"
57
- iprint "Gamit ang Panuntunang Pibonasying May Buntot na Inuulit sa 7 ay #{pibonasyingBuntutangInuulit 7}"
58
- iprint "Gamit ang Panuntunang Pibonasying Paguulit sa 6 ay #{pibonasyingPaguulit 6}"
59
- iprint "Gamit ang Panuntunang Pibonasying Paguulit na Umiikot sa 5 ay #{pibonasyingPaguulitNaUmiikot 5}"
54
+ mag_print "Gamit ang Panuntunang Pibonasyi sa 10 ay #{pibonasyi 10}"
55
+ mag_print "Gamit ang Panuntunang Pibonasying May Pagsuksok sa 9 ay #{pibonasyingPagsuksok 9}"
56
+ mag_print "Gamit ang Panuntunang Pibonasying Inuulit sa 8 ay #{pibonasyingInuulit 8}"
57
+ mag_print "Gamit ang Panuntunang Pibonasying May Buntot na Inuulit sa 7 ay #{pibonasyingBuntutangInuulit 7}"
58
+ mag_print "Gamit ang Panuntunang Pibonasying Paguulit sa 6 ay #{pibonasyingPaguulit 6}"
59
+ mag_print "Gamit ang Panuntunang Pibonasying Paguulit na Umiikot sa 5 ay #{pibonasyingPaguulitNaUmiikot 5}"
@@ -1,8 +1,8 @@
1
1
  simulan
2
2
  itaas "Chismosa!"
3
3
  agapan
4
- iprint "Balik sa trabaho!"
4
+ mag_print "Balik sa trabaho!"
5
5
  itaas "May kaguluhan!"
6
6
  siguraduhing
7
- iprint "Walang kakain kung hindi tapos!"
7
+ mag_print "Walang kakain kung hindi tapos!"
8
8
  wakas
@@ -1,7 +1,7 @@
1
1
  grupo Hayop
2
2
  bilang Aso
3
3
  ang tahol
4
- iprint 'baw waw!'
4
+ mag_print 'baw waw!'
5
5
  wakas
6
6
  wakas
7
7
  wakas
@@ -10,7 +10,7 @@ bilang Pusa < Hayop::Aso
10
10
  tanggalin tahol
11
11
 
12
12
  ang meow
13
- iprint 'meow wahu!'
13
+ mag_print 'meow wahu!'
14
14
  wakas
15
15
  wakas
16
16
 
@@ -19,5 +19,5 @@ pusa = Pusa.kumatawan
19
19
  simulan
20
20
  pusa.tahol
21
21
  agapan => pagkakamali
22
- iprint "ang pagkakamali ay '#{pagkakamali}'"
22
+ mag_print "ang pagkakamali ay '#{pagkakamali}'"
23
23
  wakas
@@ -4,15 +4,15 @@ grupo TimeBomb
4
4
  BILANG = 5
5
5
  bilang Bomba
6
6
  ang tik
7
- iprint 'tik'
7
+ mag_print 'tik'
8
8
  wakas
9
9
 
10
10
  ang tok
11
- iprint 'tok'
11
+ mag_print 'tok'
12
12
  wakas
13
13
 
14
14
  ang sabog
15
- iprint 'kaboom!'
15
+ mag_print 'kaboom!'
16
16
  wakas
17
17
  wakas
18
18
  wakas
@@ -21,7 +21,7 @@ pasabog = TimeBomb::Bomba.gumawa
21
21
 
22
22
  numero = 1
23
23
  habang numero <= TimeBomb::BILANG ganito
24
- iprint "#{numero}"
24
+ mag_print "#{numero}"
25
25
 
26
26
  kapag (numero == TimeBomb::BILANG)
27
27
  pasabog.sabog
@@ -31,7 +31,7 @@ habang numero <= TimeBomb::BILANG ganito
31
31
  pasabog.tok
32
32
  wakas
33
33
 
34
- sleep 1
34
+ matulog 1
35
35
  numero += 1
36
36
  wakas
37
37
 
@@ -83,7 +83,7 @@ isalaysay_ang 'Tagatala' do
83
83
  subukang_muli
84
84
  iangat pagkakamali, pagkakamali.iulat
85
85
  siguraduhing
86
- iprint "Katapusan"
86
+ mag_print "Katapusan"
87
87
  katapusan').should be_like(pasimulang_kodigo +
88
88
  'begin
89
89
  (1 / 0)
@@ -91,15 +91,15 @@ isalaysay_ang 'Tagatala' do
91
91
  retry
92
92
  iangat(pagkakamali, pagkakamali.iulat)
93
93
  ensure
94
- iprint("Katapusan")
94
+ mag_print("Katapusan")
95
95
  end')
96
96
  end
97
97
  end
98
98
 
99
99
  isalaysay_ang 'pamamaraan sa Kernel' do
100
- ito_ang "ekspresyon ng pagsusulat gamit ang 'iprint'" do
101
- tagatala.sa_ruby("iprint 'abc'").should ==
102
- pasimulang_kodigo + 'iprint("abc")'
100
+ ito_ang "ekspresyon ng pagsusulat gamit ang 'mag_print'" do
101
+ tagatala.sa_ruby("mag_print 'abc'").should ==
102
+ pasimulang_kodigo + 'mag_print("abc")'
103
103
  end
104
104
  end
105
105
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bato
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel Bryan Juliano
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-11 00:00:00.000000000 Z
11
+ date: 2018-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ruby2ruby
@@ -82,6 +82,7 @@ files:
82
82
  - README.md
83
83
  - Rakefile
84
84
  - TODO.md
85
+ - _config.yml
85
86
  - bato.gemspec
86
87
  - bin/bato
87
88
  - lib/bato.rb
@@ -99,6 +100,7 @@ files:
99
100
  - lib/bato/tagatala.rb
100
101
  - mga_halimbawa/agapan.bato
101
102
  - mga_halimbawa/alyas.bato
103
+ - mga_halimbawa/batotris.rb
102
104
  - mga_halimbawa/bilang.bato
103
105
  - mga_halimbawa/dapat.bato
104
106
  - mga_halimbawa/habang.bato