Turkhackteam.net/org - Turkish Hacking & Security Platform  
Geri git   Turkhackteam.net/org - Turkish Hacking & Security Platform >
Programlama
> Java

Java Object Oriented Programming temeline dayanan, çok işlevli, step by step işleyen dilin dökümanlarının paylaşım alanı.




Java Yılan Oyunu

Java

Yeni Konu aç Cevapla
 
Seçenekler
Alt 20-10-2017 12:42   #1
  • Siber Güvenlik Ekibi Sorumlusu
  • Üye Bilgileri
Üyelik tarihi
04/2016
Nereden
Teşkilat
Mesajlar
Konular

Teşekkür (Etti): 115
Teşekkür (Aldı): 2842


Java Yılan Oyunu



İlk sınıfımız Cell.java olsun. Bu sınıfı hem yılanı oluşturmak için hem de yılanın hareket edeceği alanı oluşturmak için kullanacağız. Sınıfımız şöyle:

Alıntı:
public class Cell {

final static int CELL_TYPE_EMPTY = 0, CELL_TYPE_FOOD = 10, CELL_TYPE_SNAKE_NODE = 20;
final int row, col;
int type;

public Cell(int row, int col) {
this.row = row;
this.col = col;
}
}
Bu sınıfımız sadece satır ve sütun değerlerini tutuyor. Bir de hücrelerin tiplerini belirleyecek olan sabit integer değerler tutuyor.

İkinci sınıfımız Board.java olsun. Bu sınıf, yılanın gezineceği alanı tanımlamamızı sağlayacak (satranç tahtası gibi). Sınıfımız şöyle:

Alıntı:
public class Board {

final int ROW_COUNT, COL_COUNT;
Cell[][] cells;

public Board(int rowCount, int columnCount) {
ROW_COUNT = rowCount;
COL_COUNT = columnCount;

cells = new Cell[ROW_COUNT][COL_COUNT];
for (int row = 0; row < ROW_COUNT; row++) {
for (int column = 0; column < COL_COUNT; column++) {
cells[row][column] = new Cell(row, column);
}
}
}

public voıd generateFood() {
int row = (int) (Math.random() * ROW_COUNT);
int column = (int) (Math.random() * COL_COUNT);

cells[row][column].type = Cell.CELL_TYPE_FOOD;
}
}
Bu sınıfta, Cell sınıfımızdan rowCount * colCount büyüklüğünde iki boyutlu bir array oluşturuyoruz ve constructor içerisinde bu hücrelerin atamasını yapıyoruz.

Bir diğer methodumuz ise generateFood() methodu. Bu method, rastgele bir satır-sütundaki Cell nesnesinin tipini CELL_TYPE_FOOD'a eşitliyor. Dolayısıyla o hücreyi yılan için bir yem haline getirmiş oluyoruz.

Gelelim üçüncü sınıfımız olan Snake.java sınıfına. Sınıfımız şöyle:

Alıntı:
public class Snake {

LinkedList<Cell> snakePartList = new LinkedList<>();
Cell head;

public Snake(Cell initPos) {
head = initPos;
snakePartList.add(head);
}

public voıd grow() {
snakePartList.add(head);
}

public voıd move(Cell nextCell) {
Cell tail = snakePartList.removeLast();
tail.type = Cell.CELL_TYPE_EMPTY;

head = nextCell;
snakePartList.addFirst(head);
}

public boolean checkCrash(Cell nextCell) {
for (Cell cell : snakePartList) {
if (cell == nextCell) {
return true;
}
}

return false;
}
}
Yılanın kafasını oluşturan hücre, bir sonraki hamlemizi oluşturacağı ve çarpışma kontrolü sırasında önemli olduğu için, bunu 'head' değişkeninde tutuyoruz.

Burada move() methodunu inceleyecek olursak, yılanı nasıl hareketlendirdiğimizi anlamış oluruz. Buradaki espiri, her bir adımda, yılanın en sonunda bulunan hücreyi, yılanın en önüne taşımak (hareket yönünü dikkate alarak tabi ki).

Diğer bir methodumuz olan checkCrash()'i incelersek, burada yapılan işlem, yılanın bir sonraki harekette gideceği hücrenin, yılanın herhangi bir parçasına denk gelip gelmediğini kontrol etmek.

Bir sonraki sınıfımız ise Router.java olsun. Bu sınıf, kullanıcı tarafından verilen yön bilgisine göre yılanın bir sonraki adımının nasıl olacağını hesaplayan, çarpışma testini yapacak olan sınıftır. Bir nevi yılanın yol göstericisidir. Sınıfımız şöyle:

Alıntı:
public class Router {

public static final int DIRECTION_NONE = 0, DIRECTION_RIGHT = 1, DIRECTION_LEFT = -1, DIRECTION_UP = 2, DIRECTION_DOWN = -2;
private Snake snake;
private Board board;
private int direction;
private boolean gameOver;

public Router(Snake snake, Board board) {
this.snake = snake;
this.board = board;
}

public voıd setDirection(int direction) {
this.direction = direction;
}

public voıd update() {
if (!gameOver) {
if (direction != DIRECTION_NONE) {
Cell nextCell = getNextCell(snake.head);

if (snake.checkCrash(nextCell)) {
setDirection(DIRECTION_NONE);
gameOver = true;
} else {
snake.move(nextCell);
if (nextCell.type == Cell.CELL_TYPE_FOOD) {
snake.grow();
board.generateFood();
}
}
}
}
}
private Cell getNextCell(Cell currentPosition) {
int row = currentPosition.row;
int col = currentPosition.col;

if (direction == DIRECTION_RIGHT) {
col++;
} else if (direction == DIRECTION_LEFT) {
col--;
} else if (direction == DIRECTION_UP) {
row--;
} else if (direction == DIRECTION_DOWN) {
row++;
}

Cell nextCell = board.cells[row][col];

return nextCell;
}
}

Evet, yılanımızın temelini oluşturmuş olduk. Geriye sadece kullanıcının yön bilgisini tayin etmesini sağlayacak ve yılanın ekranda çizilmesini sağlayacak sınıfın yazılması kaldı. Bir JFrame ve bir JPanel yardımıyla bu dediklerimizi de kolaylıkla yapabiliriz.

Oyunumuzun bitmiş hali aşağıdaki gibi olacak. İstediğimiz gibi şekillendirmek elimizde:





___________________________________________


ceys@thtmoderasyon.com
 Online  
 
Alıntı ile Cevapla
Teşekkür

khpsn41 Teşekkür etti.
Alt 20-10-2017 12:47   #2
  • Yarbay
  • Üye Bilgileri
Üyelik tarihi
12/2015
Nereden
(nowhere) in
Mesajlar
Konular

Teşekkür (Etti): 69
Teşekkür (Aldı): 479




Ellerine sağlık



___________________________________________

ЖАГГУ РОKCИЭС
 Offline  
 
Alıntı ile Cevapla
Alt 20-10-2017 12:48   #3
  • Binbaşı
  • Üye Bilgileri
Üyelik tarihi
06/2017
Mesajlar
Konular

Teşekkür (Etti): 120
Teşekkür (Aldı): 159




Paylaşım için sağol.
Deniyeceğim.



___________________________________________

And içtik hemde defalarca...

Ey Büyük Atatürk!

Açtığın yolda, gösterdiğin hedefe durmadan yürüyeceğime and içerim.
Varlığım Türk varlığına armağan olsun.
Ne mutlu Türküm diyene!

 Offline  
 
Alıntı ile Cevapla
Alt 20-10-2017 12:52   #4
  • Yarbay
  • Üye Bilgileri
Üyelik tarihi
01/2016
Nereden
Nebula
Yaş
21
Mesajlar
Konular

Teşekkür (Etti): 109
Teşekkür (Aldı): 838




Eline saglik



___________________________________________

"İnsanın özgürlüğü istediği her şeyi yapabilmesinde değil, istemediği hiçbir şeyi yapmak zorunda olmamasındadır."


 Offline  
 
Alıntı ile Cevapla
Alt 20-10-2017 12:56   #5
  • Teğmen
  • Üye Bilgileri
Üyelik tarihi
01/2017
Mesajlar
Konular
4

Teşekkür (Etti): 42
Teşekkür (Aldı): 21




Elinize sağlık.
 Offline  
 
Alıntı ile Cevapla
Alt 11-11-2017 22:45   #6
  • Teğmen
  • Üye Bilgileri
Üyelik tarihi
08/2017
Nereden
root@isystr
Mesajlar
Konular

Teşekkür (Etti): 38
Teşekkür (Aldı): 16




peki bu anlattıklarını kali linux da nasıl yaparım (: eline sağlık bu arada faydalı konu sayende java ya merakım başladı



___________________________________________

Silahlı milletin en canlı örneği Türklerdir. Bu diyar köylüsünün orak, kâtibinin kalem ve hatta kadınlarının etek tutuşunda silaha sarılmış bir pençe kıvraklığı vardır. Türk ata biner gibi oturur, keşfe yollanan asker gibi uyanık yürür.
- Moltke

SOLO-TÜRK!

 Offline  
 
Alıntı ile Cevapla
Alt 11-11-2017 22:47   #7
  • Yarbay
  • Üye Bilgileri
Üyelik tarihi
01/2017
Mesajlar
Konular

Teşekkür (Etti): 373
Teşekkür (Aldı): 539




Ellerine Sağlık



___________________________________________

"Zamanı Gelmiş Bir Fikrin Önünde Hiçbir Ordu Duramaz."

 Offline  
 
Alıntı ile Cevapla
Alt 11-11-2017 22:55   #8
  • Siber Güvenlik Ekibi Sorumlusu
  • Üye Bilgileri
Üyelik tarihi
04/2016
Nereden
Teşkilat
Mesajlar
Konular

Teşekkür (Etti): 115
Teşekkür (Aldı): 2842




Alıntı:
iSysTR´isimli üyeden Alıntı Mesajı göster
peki bu anlattıklarını kali linux da nasıl yaparım (: eline sağlık bu arada faydalı konu sayende java ya merakım başladı
Merhaba.
Öncelikle bu konudan yardım alarak netbeans ide adlı programı kurunuz.
Konu Tıklayın : http://www.turkhackteam.org/linux/14...lumu-c3y5.html
Daha sonra kodları sınıflar açarak yazınız.(bu konuda anlatılıyor)
Kendinizi javada jsp tabanlı geliştirmeniz sizin yararınıza olacaktır.
İyi çalışmalar dilerim



___________________________________________


ceys@thtmoderasyon.com
 Online  
 
Alıntı ile Cevapla
Alt 11-11-2017 23:02   #9
  • Teğmen
  • Üye Bilgileri
Üyelik tarihi
08/2017
Nereden
root@isystr
Mesajlar
Konular

Teşekkür (Etti): 38
Teşekkür (Aldı): 16




Alıntı:
C3Y5´isimli üyeden Alıntı Mesajı göster
Merhaba.
Öncelikle bu konudan yardım alarak netbeans ide adlı programı kurunuz.
Konu Tıklayın : http://www.turkhackteam.org/linux/14...lumu-c3y5.html
Daha sonra kodları sınıflar açarak yazınız.(bu konuda anlatılıyor)
Kendinizi javada jsp tabanlı geliştirmeniz sizin yararınıza olacaktır.
İyi çalışmalar dilerim
Çok teşekkür ederim eğer ki yapamazsam özelden mesaj atabilirmiyim size?



___________________________________________

Silahlı milletin en canlı örneği Türklerdir. Bu diyar köylüsünün orak, kâtibinin kalem ve hatta kadınlarının etek tutuşunda silaha sarılmış bir pençe kıvraklığı vardır. Türk ata biner gibi oturur, keşfe yollanan asker gibi uyanık yürür.
- Moltke

SOLO-TÜRK!

 Offline  
 
Alıntı ile Cevapla
Alt 11-11-2017 23:12   #10
  • Siber Güvenlik Ekibi Sorumlusu
  • Üye Bilgileri
Üyelik tarihi
04/2016
Nereden
Teşkilat
Mesajlar
Konular

Teşekkür (Etti): 115
Teşekkür (Aldı): 2842




Alıntı:
iSysTR´isimli üyeden Alıntı Mesajı göster
Çok teşekkür ederim eğer ki yapamazsam özelden mesaj atabilirmiyim size?
tabi



___________________________________________


ceys@thtmoderasyon.com
 Online  
 
Alıntı ile Cevapla
Cevapla

Bookmarks

Seçenekler


Bilgilendirme Turkhackteam.net/org
Sitemizde yer alan konular üyelerimiz tarafından paylaşılmaktadır.
Bu konular yasalara uygunluk ve telif hakkı konusunda yönetimimiz tarafından kontrol edilse de, gözden kaçabilen içerikler yer alabilmektedir.
Bu tür konuları turkhackteamiletisim [at] gmail.com mail adresimize bildirebilirsiniz, konular hakkında en kısa sürede gerekli işlemler yapılacaktır.
Please Report Abuse, DMCA, Harassment, Scamming, Warez, Crack, Divx, Mp3 or any Illegal Activity to turkhackteamiletisim [at] gmail.com

Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz.
Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.



         

Powered by vBulletin® Copyright ©2000 - 2019

TSK Mehmetçik Vakfı

Türk Polis Teşkilatını Güçlendirme Vakfı

Google+

web tasarım

wau