pas lagi makan siang, kongkow-kongkow sama temen yang lagi ngambil kuliah
Game Programming,
dia ngasih saya teka-teki kira-kira begini:
Ada dua buah robot identik dan sebuah sensor sentuh, ketiganya diletakan pada satu garis lurus, katakanlah robot-1 pada posisi -p, sensor di posisi 0, robot-2 di posisi +q.
Script untuk robot hanya terdiri dari lima perintah saja:
RIGHT (kanan 1 step)
LEFT (kiri 1 step)
NOP (diam 1 step)
GOTO (jump program ke label)
IF (kena sensor) GOTOBuatlah sebuah rutin yang akan di-load pada kedua robot (jadi kedua robot diprogram dengan program yang sama persis) yang akan membuat kedua robot bertabrakan!
note:
panjang garis ialah tak hingga,
robot hanya bisa bergerak sepanjang garis tersebut saja, kanan atau kiri, menghadap ke arah yang sama (tidak berhadap-hadapan tapi bersebelahan), tidak maju atau mundur
(-) <---------[robot-1]-------[sensor]------------------------------[robot-2]--------------> (+)
Sorry but you are not allowed to view spoiler contents.
tapi gerak masing masing robotnya bebas kesemua arah kan?
Kutip dari: L pada Juni 13, 2009, 07:55:42 PM
tapi gerak masing masing robotnya bebas kesemua arah kan?
semua arahnya ialah: RIGHT dan LEFT
dan kedua robot akan di-load dengan program yang sama persis
Kutip dari: ksatriabajuhitam pada Juni 13, 2009, 08:43:33 PM
semua arahnya ialah: RIGHT dan LEFT
dan kedua robot akan di-load dengan program yang sama persis
sama?
kalo
yg satu code 1. right yang satunya juga right
Kutip dari: Ginji pada Juni 15, 2009, 07:30:19 PM
sama?
kalo
yg satu code 1. right yang satunya juga right
ya, akan di-load dengan code yang sama persis
ingat kita diijinkan untuk mnggunakan ke-5 instruksi di atas
Aku masih ga ngerti peristiwa yang diinginkan yang seperti apa...
Kutip dari: Sky pada Juni 15, 2009, 09:17:25 PM
Aku masih ga ngerti peristiwa yang diinginkan yang seperti apa...
pokoknya asal kedua robot bisa bersentuhan saja
Tapi kan terhalang sensor???
Kutip dari: Sky pada Juni 15, 2009, 09:56:09 PM
Tapi kan terhalang sensor???
sensornya ga ngalangin
kira-kira begini
(http://i39.tinypic.com/2a7vfx5.jpg)
Jarak antar kedua robot ke sensor ngga sentring (jaraknya sama) kan??
trus kalo kita kirim perintah right ke robot satu,,robot jg ikut right?
trus perintah Goto itu jump kelabel?? label apa? hehe masi kurang ngerti :D
Kutip dari: L pada Juni 17, 2009, 06:40:07 AM
Jarak antar kedua robot ke sensor ngga sentring (jaraknya sama) kan??
trus kalo kita kirim perintah right ke robot satu,,robot jg ikut right?
trus perintah Goto itu jump kelabel?? label apa? hehe masi kurang ngerti :D
iya sama.. masi bingung sama yang GOTO
jelasin yang IF sekalian juga donk..
>_______<
masi rada kurang nangkep...
hue hue
sensornya serata dengan lintasan robot, jadi nggak mungkin tertabrak,. begitu kah?
robot-1 =a; robot-2=b
------------
a:=right(sejauh 2p), b:=left(sejauh -2q)------------------(posisi kedua obot akan bertabrakan)
beginikah?
hm,, tampaknya saya kurang detail menjelaskannya, ok.
jadi kondisinya:
1. ada dua buah robot identik dalam suatu garis lurus (hanya bisa bergerak dalam 1 garis lurus, kiri atau kanan)
2. ada sensor di antara kedua robot yang tidak akan menghalangi gerak robot, hanya memberi sinyal saja ke robot (mempengaruhi instruksi
IF(kena sensor)), ya misalkanlah robot punya detektor warna merah, dan 'sensor' ialah lantai berwarna merah sehingga ketika robot mencapai lantai itu akan menerima sinyal kena_sensor = TRUE
3. kedua robot akan di-program dengan script yang SAMA persis
4. tujuan akhirnya ialah "
bagaimanakah script-nya yang akan membuat kedua robot bertabrakan/bersentuhan?"
detail instruksinya:
LEFTbergerak ke kiri 1 cycle
RIGHTbergerak ke kanan 1 cycle
NOPdiam 1 cycle
GOTO labelketika dieksekusi maka program counter akan lompat ke label, contoh
instruksi1iniloh:
instruksi2instruksi3GOTO iniloh
instruksi4instruksi5GOTO ayolah
instruksi6ayolah
instruksi7misal program dimulai dari
instruksi1, jadi ketika program mencapai baris
GOTO iniloh maka program akan lompat dan mengeksekusi
instruksi2 lagi,
begitu pula ketika mencapai baris
GOTO ayolah akan lompat ke
instruksi7IF(kena sensor) GOTO labelbisa dibilang
conditional jump, misal
instruksi1IF(kena sensor) GOTO betulkah
instruksi2betulkah:
instruksi3jadi ketika program mencapai baris perintah
IF(kena sensor) GOTO betulkah,
jika robot menyentuh sensor, maka akan lompat ke
instruksi3,
jika robot tidak menyentuh sensor, maka tidak lompat tetapi lanjut ke instruksi selanjutnya yaitu
instruksi2 lalu
instruksi3solusinya ga cuma satu loh, ada banyak cara
programming banget ya, tapi ya itulah kehidupan, punya ide saja ga cukup, mesti bisa diimplementasikan
Sorry but you are not allowed to view spoiler contents.
cycle boleh dianggap sebagai satuan waktu, misal 1 detik untuk SEMUA instruksi, (sebetulnya lama satu instruksi dieksekusi)
yu mari....
1. RIGHT
2. IF (kena sensor) GOTO 4.
3. LEFT
4. NOP
gitu gak ksatria baju hitam
^
dikit lagi,
modif dikit lagi bisa bener
coba aja terapin "program" itu ke gambar di atas ke kedua robot, ga menjamin bisa tabrakan
1. right
2. nop
3. left
4. nop
5. IF (kena sensor) Goto 1
antara paham n ga paham,, :D.. tapi mencoba,, benerkah gerangan?
coba "compile" yah program di atas :D
misal robot-1 di posisi -10, robot-2 di posisi +33, sensor di 0
coba robot-1:
step-1 : -9 ( = -10 + +1)
step-2 : -9
step-3 : -10
step-4 : -10
step-5 : ga kena sensor, trus ngapain?
mungkin:
1. right
2. if (kena sensor) goto 3.
else jump to 4.
3. nop
4.left
@kbh.. hahai,, gitu yah,,
hmm,, mikir lagi,,
ada yang bisa program sensor compass ngak