Game Sederhana My AI Pong menggunakan Artificial Intelligent
Game MyAIPong adalah sebuah game arcade
yang menarik untuk dimainkan. Cara bermainnya cukup mudah yaitu pemain (player) menggerakkan brick atau papan ke kiri dan ke kanan
sesuai arah bola untuk memantulkan bola ke arah lawan. Pada game ini kita akan melawan sebuah artificial inteligent yang sudah di program sebelumnya. Fyi game ini terinspirasi dari permainan bola ping-pong loh.
Artificial
Inteligent atau kecerdasan buatan
adalah ilmu yang mempelajari cara membuat komputer melakukan sesuatu seperti
yang dilakukan manusia (Minsky, 1989). Definisi lain diungkapkan oleh H. A. Simon
(1987), kecerdasan buatan merupakan kawasan penelitian, aplikasi dan instruksi
yang terkait dengan pemrograman komputer untuk melakukan sesuatu hal yang dalam
pandangan manusia adalah cerdas. Definisi kecerdasan buatan lainnya juga
diungkapkan oleh Rich and Knight (1991), kecerdasan buatan merupakan sebuah
studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat
dilakukan lebih baik oleh manusia. Dan definisi lainnya juga ditulis dalam
Encyclopedia Britania, Kecerdasan Buatan (AI) merupakan cabang dari ilmu
komputer yang dalam merepresentasi pengetahuan lebih banyak menggunakan bentuk
simbol-simbol daripada bilangan, dan memproses informasi berdasarkan metode heuristic atau dengan berdasarkan
sejumlah aturan.
Game
ini dibuat dengan menggunakan Processing,
yang merupakan sebuah software
sederhana yang digunakan untuk coding
di suatu komputer, penggunaannya hampir sama mudahnya dengan software text editor sederhana (seperti
TextEdit atau Notepad) yang dikombinasikan dengan sebuah media player. Setiap sketsa (program pada Processing disebut dengan
sketsa) memiliki sebuah nama file,
sebuah tempat dimana kamu dapat membuat coding,
dan beberapa tombol untuk menyimpan, membuka, dan menjalankan sketsa.
jika anda ingin mencoba anda harus mendownload source code sebelumnya di diodwiki.blogspot.com part 1 dan wisnudhanti.blogspot.com part2
Berikut Source code Part 3 Lanjutannya
Source code Program/Game
void
drawPembatas() {
fill(0, 100);
rectMode(CENTER);
rect(pembatasX, pembatasY, pembatasWidth,
pembatasHeight);
}
void
printScore() {
textAlign(CENTER);
text("Player Score : " + scorePong,
60, 15);
text("AI Score : " + AIscorePong,
45, 35);
}
void
scorePong() {
scorePong++;
}
void
AIscorePong() {
AIscorePong++;
}
//JENIS-JENIS
SKILL BOLA
void
skillAdder() {
if (millis() - lastAddTime >
skillInterval) {
int sX = round(random(0, width));
int sY = round(random(0, height));
int skillSpeedHor = round(random(-8, 8));
int skillSpeedVert = round(random(-8, 8));
int destroySkill = lastAddTime + 9000;
int Ability = round(random(0, width));
int[] randSkill = {sX, sY, skillSize,
skillSize, skillSpeedHor, skillSpeedVert, destroySkill, Ability};
skills.add(randSkill);
lastAddTime = millis();
}
}
//MEMPERODUKSI
SKILL BOLA
void
skillHandler() {
for (int i = 0; i < skills.size(); i++) {
skillSpeedHor(i);
skillSpeedVert(i);
keepSkillInScreen(i);
AIkejarSkill(i);
//pongKejarSkill(i);
skillDrawer(i);
destroySkill(i);
}
}
void
skillDrawer(int index) {
int[] skill = skills.get(index);
int skillsX = skill[0];
int skillsY = skill[1];
int skillsWidth = skill[2];
int skillsHeight = skill[3];
fill(random(255), random(255), random(255));
ellipseMode(CENTER);
ellipse(skillsX, skillsY, skillsWidth,
skillsHeight);
}
void
skillSpeedVert(int index) {
int[] skill = skills.get(index);
skill[1] = skill[1] + skill[5];
}
void
skillSpeedHor(int index) {
int[] skill = skills.get(index);
skill[0] = skill[0] + skill[4];
}
void
keepSkillInScreen(int index) {
int[] skill = skills.get(index);
if (skill[1] > height) {
bounceSkillBottom(index, height);
}
if (skill[1] < 0) {
bounceSkillTop(index, 0);
}
if (skill[0] > width) {
bounceSkillRight(index, width);
}
if (skill[0] < 0) {
bounceSkillLeft(index, 0);
}
}
void
bounceSkillBottom(int index, int surface) {
int skill[] = skills.get(index);
skill[1] = surface-(skill[3]/2);
skill[5] *= -1;
}
void
bounceSkillTop(int index, int surface) {
int[] skill = skills.get(index);
skill[1] = surface+(skill[3]/2);
skill[5] *= -1;
}
void
bounceSkillRight(int index, int surface) {
int[] skill = skills.get(index);
skill[0] = surface-(skill[2]/2);
skill[4] *= -1;
}
void
bounceSkillLeft(int index, int surface) {
int[] skill = skills.get(index);
skill[0] = surface+(skill[2]/2);
skill[4] *= -1;
}
void
destroySkill(int index) {
int[] skill = skills.get(index);
if (millis() >= skill[6]) {
skills.remove(index);
println("Skill Hilang");
}
if ((skill[0]+(skill[3]/2) >
pongX-(pongWidth/2)) && (skill[0]-(skill[3]/2) <
pongX+(pongWidth/2))) {
if (skill[1]+(skill[4]/2) >= pongY) {
pongWidth = skill[7];
skills.remove(index);
}
}
if ((skill[0]+(skill[3]/2) >
AIpongX-(AIpongWidth/2)) && (skill[0]-(skill[3]/2) <
AIpongX+(AIpongWidth/2))) {
if (skill[1]-(skill[4]/2) <= AIpongY) {
AIpongWidth = skill[7];
skills.remove(index);
}
}
}
void
AIkejarSkill(int index) {
int[] skill = skills.get(index);
if (skill[1] < height/2 &&
skill[1] < ballY) {
if (!(skill[0]+(skill[3]/2) >
AIpongX-(AIpongWidth/2))) {
AIpongX = AIpongX + (AIpongSpeed * -1);
} else if (!(skill[0]-(skill[3]/2) <
AIpongX+(AIpongWidth/2))) {
AIpongX = AIpongX + (AIpongSpeed * 1);
}
}
}
void
pongKejarSkill(int index) {
int[] skill = skills.get(index);
if (skill[1] > height/2 &&
skill[1] > ballY) {
if (!(skill[0]+(skill[3]/2) >
pongX-(pongWidth/2))) {
pongX = pongX + (pongSpeed * -1);
} else if (!(skill[0]-(skill[3]/2) <
pongX+(pongWidth/2))) {
pongX = pongX + (pongSpeed * 1);
}
}
}
Berikut langkah-langkah memainkannya
a. Run program
b. Klik start pada program
c. Gunakan tombol A
untuk menggeser papan milik player(bawah)
kekiri, dan tombol D untuk
menggeser ke Kanan
d. Usahakan bola
mengenai papan
e. Jika bola mengenai
lantai maka point lawan akan bertambah
f. Usakan juga papan
terkena bola bayangan. Bola bayangan dapat memperpanjang dan memperpendek papan
kita, jika papan masih kecil maka bola bayangan akan membuat papan menjadi
panjang, sebaliknya jika papan panjang maka anda harus menghindari bola
bayangan.
Tampilan Game
Selamat mencoba.Tampilan Game
18 comments:
sangat membantu, lanjutkan
Makasih
Mantap lae
makasih lae
mantap
bagus gamenya, bisa gak bolanya ditambah ?
Sangat bermanfaat, terimakasih gan
sangat membantu
Naisu info gan
Nice
cukup paten, paten kali
Bagus
Bisa, tapi harus mengubah AI-nya juga
Mantep game nya. Semoga bermanfaat ya
Mantap gan gamenya
Mantap sangat bermanfaat
bisa di mainkn di hp min ?
klo bisa kyk mna biar bisa di main kn di ho min ?
Nice info gan
Post a Comment