Forum Sains Indonesia

Hobi => Olah Otak => Topik dimulai oleh: ksatriabajuhitam pada Juni 13, 2009, 08:13:36 AM

Judul: 2 robot tabrakan
Ditulis oleh: ksatriabajuhitam pada Juni 13, 2009, 08:13:36 AM
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) GOTO

Buatlah 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.
Judul: Re: 2 robot tabrakan
Ditulis oleh: L pada Juni 13, 2009, 07:55:42 PM
tapi  gerak masing  masing  robotnya bebas kesemua  arah kan?
Judul: Re: 2 robot tabrakan
Ditulis oleh: ksatriabajuhitam pada Juni 13, 2009, 08:43:33 PM
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
Judul: Re: 2 robot tabrakan
Ditulis oleh: Ginji pada Juni 15, 2009, 07:30:19 PM
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
Judul: Re: 2 robot tabrakan
Ditulis oleh: ksatriabajuhitam pada Juni 15, 2009, 09:09:14 PM
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
Judul: Re: 2 robot tabrakan
Ditulis oleh: Sky pada Juni 15, 2009, 09:17:25 PM
Aku masih ga ngerti peristiwa yang diinginkan yang seperti apa...
Judul: Re: 2 robot tabrakan
Ditulis oleh: ksatriabajuhitam pada Juni 15, 2009, 09:35:00 PM
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
Judul: Re: 2 robot tabrakan
Ditulis oleh: Sky pada Juni 15, 2009, 09:56:09 PM
Tapi kan terhalang sensor???
Judul: Re: 2 robot tabrakan
Ditulis oleh: ksatriabajuhitam pada Juni 16, 2009, 10:21:42 PM
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)
Judul: Re: 2 robot tabrakan
Ditulis oleh: 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
Judul: Re: 2 robot tabrakan
Ditulis oleh: Lole pada Juni 20, 2009, 04:12:14 AM
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
Judul: Re: 2 robot tabrakan
Ditulis oleh: M pada Juni 20, 2009, 10:56:49 AM
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?
Judul: Re: 2 robot tabrakan
Ditulis oleh: ksatriabajuhitam pada Juni 20, 2009, 11:33:06 AM
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:
LEFT
bergerak ke kiri 1 cycle
RIGHT
bergerak ke kanan 1 cycle
NOP
diam 1 cycle
GOTO label
ketika dieksekusi maka program counter akan lompat ke label, contoh

instruksi1
iniloh:
instruksi2
instruksi3
GOTO iniloh
instruksi4
instruksi5
GOTO ayolah
instruksi6
ayolah
instruksi7

misal 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 instruksi7

IF(kena sensor) GOTO label
bisa dibilang conditional jump, misal

instruksi1
IF(kena sensor) GOTO betulkah
instruksi2
betulkah:
instruksi3

jadi 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 instruksi3

solusinya 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....
Judul: Re: 2 robot tabrakan
Ditulis oleh: Ginji pada Agustus 03, 2009, 04:20:06 PM
1. RIGHT
2. IF (kena sensor) GOTO 4.
3. LEFT
4. NOP

gitu gak ksatria baju hitam
Judul: Re: 2 robot tabrakan
Ditulis oleh: ksatriabajuhitam pada Agustus 05, 2009, 09:32:31 PM
^

dikit lagi,
modif dikit lagi bisa bener

coba aja terapin "program" itu ke gambar di atas ke kedua robot, ga menjamin bisa tabrakan
Judul: Re: 2 robot tabrakan
Ditulis oleh: L pada Agustus 06, 2009, 04:23:17 PM
1. right
2. nop
3. left
4. nop
5. IF (kena sensor) Goto 1

antara paham n ga paham,, :D.. tapi mencoba,, benerkah gerangan?
Judul: Re: 2 robot tabrakan
Ditulis oleh: ksatriabajuhitam pada Agustus 06, 2009, 08:37:41 PM
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?
Judul: Re: 2 robot tabrakan
Ditulis oleh: Ginji pada Agustus 08, 2009, 06:37:20 PM
mungkin:
1. right
2. if (kena sensor) goto 3.
    else jump to 4.
3. nop
4.left
Judul: Re: 2 robot tabrakan
Ditulis oleh: L pada Agustus 11, 2009, 10:27:38 PM
@kbh..  hahai,, gitu  yah,,

hmm,, mikir  lagi,,
Judul: Re: 2 robot tabrakan
Ditulis oleh: boncis pada Februari 07, 2010, 06:49:43 PM
ada yang bisa program sensor compass ngak