Merhaba arkadaşlar bugün Java ile Amiral Battı oyununu kodlayacağız. Oyun alanımız 10*10 luk bir büyüklükte olacak. Gerekli açıklamaları kodun aralarına bırakacağım. Şimdiden iyi oyunlar.
Kodu seçmek için kod editörüne çift tıklayın!
import java.util.Scanner;
public class Amiralbattızz {
public static void main(String args[]) throws Exception
{
java.util.Random generator =
new java.util.Random(System.currentTimeMillis());
//gemilerin yerleştirildiği matris
int gemiler[][] = new int [10][10];
//oyuncunun hamlelerinin tutulduğu matris
int oyuncu[][] = new int [10][10];
//gemilerin adedini tutan dizi
//0 nolu eleman kullanılmıyor
int gemi[] = {0, 4, 3, 2, 1};
int i, j, row, col, size;
int num, dir, gemiSize, count, r, c, rl, cl, flag;
int right, down, vurus;
row = 10;
col = 10;
size = 5;
count = 0;
gemiSize = 1;
while (gemiSize <= 4) {
//yon üretiliyor (0 sağa, 1 aşağıya)
dir = generator.nextInt(2);
//yöne göre satır sütun sınırları ve
//yerleştirilecek
// geminin sınırları belirleniyor
if (dir == 0) {
rl = row;
cl = col - gemiSize + 1;
right = 2 + gemiSize;
down = 3;
}
else {
rl = row - gemiSize + 1;
cl = col;
right = 3;
down = 2 + gemiSize;
}
//geminin nereye
// yerleştirileceği üretiliyor
r = generator.nextInt(rl);
c = generator.nextInt(cl);
//geminin yerleştirileceği yerin
//boş olup olmadığına bakılıyor
flag = 0;
for (i = r-1; i < (r-1) + down; i = i + 1)
for (j = c-1; j < (c-1) + right; j = j + 1)
if (i >=0 && i < row && j >= 0 && j < col)
if (gemiler[i][j] != 0)
flag = 1;
//flag'in 0'a eşit olması geminin
// yerleştirileceği yerin
//boş olduğunu gösteriyor.
if (flag == 0) {
//gemi yerleştiriliyor
for (i = r; i < r + down - 2; i = i + 1)
for (j = c; j < c + right - 2; j = j + 1)
gemiler[i][j] = gemiSize;
//adet bir arttırılıyor
count = count + 1;
//gemiden istenen adet
// yerleştirilmişse
//bir sonraki gemiye geçiliyor
if (gemi[gemiSize] == count) {
gemiSize = gemiSize + 1;
count = 0;
}
}
}
//gemilerin yerleştirildiği
// matris yazdırılıyor
for (i = 0; i < row; i = i + 1) {
for (j = 0; j < col; j = j + 1)
System.out.print(gemiler[i][j] + " ");
System.out.println();
}
System.out.println();
//toplam 20 isabetli atış
// yapıldığında oyun bitiyor
count = 0;
vurus = 0;
while(vurus < 20) {
//atış sayısı bir arttırılıyor
count = count + 1;
//atış yapılıyor
Scanner input=new Scanner(System.in);
System.out.print("Satiri giriniz : ");
r = input.nextInt();
System.out.print("Sutunu giriniz : ");
c = input.nextInt();
//atışın isabetli olup
// olmadığına bakılıyor
//eğer isabetli ise
// oyuncunun matrisine
//gemi numarası yazdırılıyor
//değilse 9 sayısı yazdırılıyor
if (gemiler[r]
!= 0){
vurus = vurus + 1;
oyuncu[r]
= gemiler[r]
;
}
else
oyuncu[r]
= 9;
//gemilerin matrisi yazdırılıyor
for (i = 0; i < row; i = i + 1) {
for (j = 0; j < col; j = j + 1)
System.out.print(gemiler[i][j] + " ");
System.out.println();
}
System.out.println();
//oyuncunun matrisi yazdırılıyor
for (i = 0; i < row; i = i + 1) {
for (j = 0; j < col; j = j + 1)
System.out.print(oyuncu[i][j] + " ");
System.out.println();
}
}
System.out.println("Tebrikler! " + count + " adimda bildiniz.");
}
} MakerWorld Koleksiyon İndirici MakerWorld üzerinde koleksiyonunuza eklediğiniz modelleri tek tek indirmek zaman alıcı ve zahmetli…
Elektronik Raf Etiketi (ESL) Nedir? Fiyatları, Avantajları ve Mağazalar İçin Dijital Dönüşüm Rehberi Perakende sektörü…
Gigabyte G6 Boot Sorunu Çözümü (KF ve MF 2024) – No OS Will Boot Fix…
Microsoft Office 2016, 2019 ve 2021 KMS Aktivasyonu Nasıl Kaldırılır? [Detaylı Rehber] Office KMS kaldırma,…
Merhaba!Bu yazıda WooCommerce Kategori Menü Eklentisi anlatıyor olacağım. WooCommerce mağazalarında menü yönetimini kolaylaştıran, akıllı hale…
microsoft ace oledb 12.0 hatası,oledb 12.0 provider not registered,microsoft access database engine indir,accessdatabaseengine.exe indir,oledb provider…