misalkan ada 2 orang ingin membagi 2 sebuah pie. dan hanya salah satu orang yang diizinkan untuk memotong kue tersebut, bagaimana caranya agar kedua orang tersebut mendapat pie yang sama besarnya?
caranya adalah dengan mengizinkan orang yang tidak memotong untuk memilih bagian mana yang diinginkan. hal ini akan membuat orang yang memotong kue akan berusaha untuk seadil-adilnya dalam memotong. karena kalau dia memotong tidak adil tentu orang kedua yang akan memilih pie yang lebih besar.
hal ini dapat diterapkan pada permainan dimana pemain yang melangkah lebih dahulu sangat diuntungkan. jadi cara kerjanya adalah pemain pertama melangkah lalu pemain kedua diberi pilihan apakah ingin bertukar sisi (swap) atau tidak.
hal ini akan menyebabkan pemain pertama tidak melangkah ke tempat yang tidak terlalu bagus dan juga tidak terlalu jelek untuk dia (seimbang).
Friday, January 15, 2010
swap rule dalam permainan
Katanya
Arfan
pada jam
2:21 PM
2
komentar
Links ke sini
Saturday, January 09, 2010
full control of your process
saya pernah membuat sebuah program simulasi, dan dalam pembuatan program tersebut ada banyak proses yang berjalan. misalkan untuk simulasi antrian kendaraan di jalan tol. mada masing-masing mobil yang masuk ke jalan tol dapat dianggap satu proses tersendiri yang pergerakannya dalam dunia nyata memang berjalan masing-masing tapi dalam simulasi pergerakannya dibuat dengan menganggap seolah-olah mobil tersebut memang berjalan sendiri-sendiri padahal sebenarnya proses yang berjalan hanya satu dan setiap mobil akan patuh terhadap perintah dari satu proses itu.
pendekatan untuk ini biasanya dengan menggunakan thread. setiap mobil akan dianggap 1 thread. dan setiap thread akan berjalan masing-masing sesuai dengan pembagian waktu yang dilakukan oleh komputer terhadap masing-masing thread tersebut.
kelemahan dari hal ini adalah saya tidak punya full control terhadap thread-thread tersebut. karena proses penjatahan thread sangat tergantung dengan keadaan prosesor atau kalau membuat programnya dengan java maka akan tergantung dengan jvm nya. dan kontrol penuh ini menjadi penting saat saya benar-benar ingin mengetahui setiap hal yang terjadi dengan yang disimulasikan.
maka untuk menyelesaikan ini saya menggunakan konsep 1 thread yang digunakan sebagai clock atau timer tunggal dari segala hal yang disimulasikan. dan setiap proses dalam program saya akan ada method seperti jalankanWaktu().
sebagai contoh saat saya ingin mensimulasikan jalannya mobil maka di mobil akan ada method maju() yang jika dipanggil akan memajukan waktu di mobil sehingga akan menyebabkan posisi mobil berubah.
dengan cara ini saya akan mendapatkan full control dari segala hal yang ada di simulasi yang saya buat.
oh iya sebagai tambahan saya juga menggunakan trik yang sama pada pembuatan uibooth yaitu pada modul untuk komunikasi dengan smartcard device. mudah2-an cara ini dapat membuat uibooth e-access menjadi lebih stabil dan tidak gampang hang
Katanya
Arfan
pada jam
10:11 PM
0
komentar
Links ke sini
Sunday, December 20, 2009
mahasiswa dan mahasiswi
menurut KBBI Daring mahasiswa adalah:
ma·ha·sis·wa n orang yg belajar di perguruan tinggi;
sedangkan mahasiswi adalah:
ma·ha·sis·wi n mahasiswa wanita
ini berarti bahwa kedudukan antara mahasiswa dan mahasiswi tidak setara sebab mahasiswi adalah subset (himpunan bagian) dari mahasiswa. yaitu mahasiswa yang memiliki jenis kelamin wanita.
lalu bagaimana caranya untuk menyatakan seorang mahasiswa yang memiliki jenis kelamin laki-laki? hal ini bisa dilakukan dengan menyebut secara eksplisit mahasiswa laki-laki atau bisa juga dengan menggunakan operator himpunan yaitu:
mahasiswa laki-laki = mahasiswa - mahasiswi
makanya kita sering mendengan adanya majelis wali amanat unsur mahasiswa (tidak disebut unsur mahasiswi). dan juga ucapan-ucapan "HIDUP MAHASISWA" bukannya "HIDUP MAHASISWI".
Katanya
Arfan
pada jam
4:49 PM
0
komentar
Links ke sini
Friday, December 18, 2009
angka dalam bahasa indonesia
dari buku jarimatika
1+9=10
2+8=10
3+7=10
4+6=10
5+5=10
kalau diucapkan dalam bahasa indonesia
Satu + Sembilan = Sepuluh
Dua + Delapan = Sepuluh
Tiga + Tujuh = Sepuluh
Empat + Enam = Sepuluh
Lima + Lima = Sepuluh
ternyata angka dari 1 sampai 9 yang berhuruf depan sama kalau dijumlahkan akan
menjadi 10
Katanya
Arfan
pada jam
8:00 AM
2
komentar
Links ke sini
Wednesday, December 16, 2009
Wednesday, December 09, 2009
cheat ClickFan on Facebook
saya menggunakan class java.awt.Robot untuk membuat click sebanyak2nya di game http://apps.facebook.com/click-fan/?ref=mf
penggunaany java.awt.Robot ini sebenarnya untuk testing suatu software GUI. tapi kali ini saya akan menggunakannya untuk tujuan iseng yaitu mengklik pada suatu game di facebook.
game ini bertujuan untuk melakukan klik sebanyak2nya dalam waktu tertentu
easy:60 detik
normal:30 detik
advance:15 detik
dengan menggunakan program ini saya dapat melakukan klik sebanyak 2543 untuk level easy, 1616 untuk level normal dan 757 untuk level advanced.
berikut ini saya sertakan source code dari program yang saya buat ini
import java.awt.*;
import java.awt.event.*;
public class Clicker
{
public static void main(String args[]) throws Exception
{
Robot robot = new Robot();
robot.delay(5000);
Point lokasi = MouseInfo.getPointerInfo().getLocation();
for (;;)
{
//robot.delay(5000);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.delay(5);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(5);
Point lokasi2 = MouseInfo.getPointerInfo().getLocation();
if (lokasi2.x!=lokasi.x || lokasi2.y!=lokasi.y)
{
break;
}
}
}
}
Katanya
Arfan
pada jam
4:39 PM
1 komentar
Links ke sini
Friday, December 04, 2009
penggunaan struktur data Bitset di java
di java ada struktur data namanya bitset
yang biasanya digunakan untuk menyimpan himpunan, tapi himpunan yang bisa disimpan sama
si bitset terbatas untuk menyimpan angka saja.
bitset bisa dianalogikan seperti kita memiliki sebuah string binary yang panjang (panjangnya bisa panjang sekali). dan kita bisa mengubah2 nilai dari masing2 elemen bit pada string tersebut.
bisa 0 dan bisa juga 1.
berikut contoh penggunaan bitset
buat file HelloBitset.java yang berisi
import java.util.*;
public class HelloBitset
{
public static void main(String args[])
{
BitSet b = new BitSet();
b.set(12);
System.out.println(b.get(12));
System.out.println(b.get(1));
System.out.println(b);
}
}
lalu compile dan jalankan
class BitSet pada java memiliki fungsi toString() sehingga kita bisa langsung mencetaknya menggunakan System.out.println dan akan mencetak semua bit yang bernilai true dari BitSet tersebut
Katanya
Arfan
pada jam
12:56 PM
0
komentar
Links ke sini


