Game My AI Pong Part 1


My AI Pong adalah sebuah game arcade yang cukup menarik untuk dimainkan. cara bermainnya 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. Game ini terinspirasi dari permainan bola ping-pong.
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.
Berikut adalah langkah-langkah dalam proses pembuatan game My AI Pong :

1.        Inisialisasi Objek :
float xAnimation = 0;
float yAnimation = 0;
float spacing = 10;

float gameScreen = 0;

float ballX;
float ballY;
float ballSize = 20;
color ballColor = color(255, 0, 100);
float ballSpeedVert;
float ballSpeedHor;
float pongX;
float pongY;
float pongWidth = 70;
float pongHeight = 10;
float pongSpeed = 0;
color pongColor = color(255, 0, 100);

float AIpongX;
float AIpongY;
float AIpongWidth = 70;
float AIpongHeight = 10;
float AIpongSpeed = 0;
color AIpongColor = color(255, 0, 100);
boolean terpantul = false;
boolean terpantulPong = false;

float health;
float maxHealth;
float healthWidth = 50;
float healthHeight = 7;

int scorePong = 0;
int AIscorePong = 0;

float pembatasX;
float pembatasY;
float pembatasWidth;
float pembatasHeight;

float skillX;
float skillY;
int skillSize = 20;
int lastAddTime = 0;
int skillInterval = 5000;

ArrayList<int[]> skills = new ArrayList<int[]>();



2.        Membuat Fungsi Utama:
void setup() {
  size(500, 500);
  background(0);

  ballX = random(width/2);
  ballY = height/2;
  ballSpeedVert = 3.5;
  ballSpeedHor = 3.5;

  pongX = width/2;
  pongY = height - 20;
  pongSpeed = 20;

  AIpongX = width/2;
  AIpongY = 0 + 20;
  AIpongSpeed = 5;

  pembatasX = width/2;
  pembatasY = height/2;
  pembatasWidth = width;
  pembatasHeight = 7;
}

3.        Membuat Fungsi Gambar :
void draw() {
  if (gameScreen == 0) {
    initScreen();
  } else if (gameScreen == 1) {
    gameScreen();
  } else if (gameScreen == 2) {
    gameOverScreen();
  }
}



4.        Membuat Fungsi Untuk Menjalankan Game :
void mousePressed() {
  if (gameScreen == 0) {
    startGame();
  } else if (gameScreen == 2) {
    restart();
  }
}

void keyPressed() {
  if (key == 'D') {
    pongX = pongX + (pongSpeed * 1);
  } else if (key == 'A') {
    pongX = pongX + (pongSpeed * -1);
  }
}

5.        Fungsi Untuk Memulai Game :
void startGame() {
  gameScreen = 1;
}

void restart() {
  scorePong = 0;
  gameScreen = 0;
  pongWidth = 70;
  AIpongWidth = 70;
  ballColor = color(255,0,100);
}

6.        Fungsi Inisialisasi Untuk Animasi dalam Game :
void initScreen() {
  //background(0);
 
  if(yAnimation > height/2 - 50 && yAnimation < height/2) {
    stroke(0);
  } else if(yAnimation >= height/2 && yAnimation < height/2 + 30) {
    stroke(0);
  } else {
    stroke(255);
  }
 
  //stroke(255);
  if(random(1) < 0.5) {
    line(xAnimation, yAnimation, xAnimation + spacing, yAnimation + spacing);
  } else {
    line(xAnimation, yAnimation + spacing, xAnimation + spacing, yAnimation);
  }
 
  xAnimation = xAnimation + spacing;
  if(xAnimation > width) {
   xAnimation = 0;
   yAnimation = yAnimation + spacing;
  }
 
  if(yAnimation > height) {
   yAnimation = height;
  }
  fill(100, 255, 100);
  textAlign(CENTER);
  textSize(15);
  text("Click to start!", width/2, height/2);
}

Part 2
Part 3

Catatan: silahkan copy semua coding sampai part 3 dan mainkan di laptop teman-teman sekalian, happy enjooyy!!!๐Ÿ˜„

Comments

Post a Comment