Java

Java ile Amiral Battı Oyunu

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.");
}
}
mertinko

Yazılım hakkında bildiklerini anlatan sıradan biri.

Share
Published by
mertinko

Recent Posts

AnyDesk Nedir? AnyDesk 15 Saniye Bekletiyor Hatası ve Çözümü (Full Kullanım Rehberi)

AnyDesk Nedir? AnyDesk, bilgisayarlar ve mobil cihazlar arasında hızlı ve güvenli uzaktan erişim ile masaüstü…

1 ay ago

Makerworld Koleksiyon İndirici | Download Your MakerWorld Collections in One Click

MakerWorld Koleksiyon İndirici MakerWorld üzerinde koleksiyonunuza eklediğiniz modelleri tek tek indirmek zaman alıcı ve zahmetli…

5 ay ago

Elektronik Raf Etiketi (ESL) Nedir? Fiyatları, Avantajları ve Mağazalar İçin Dijital Dönüşüm Rehberi

Elektronik Raf Etiketi (ESL) Nedir? Fiyatları, Avantajları ve Mağazalar İçin Dijital Dönüşüm Rehberi Perakende sektörü…

5 ay ago

Gigabyte G6 KF / MF 2024 Boot Sorunu Çözümü – No OS Will Boot Fix Rehberi

Gigabyte G6 Boot Sorunu Çözümü (KF ve MF 2024) – No OS Will Boot Fix…

5 ay ago

Microsoft Office 2016, 2019 ve 2021 KMS Aktivasyonu Nasıl Kaldırılır? [Detaylı Rehber]

Microsoft Office 2016, 2019 ve 2021 KMS Aktivasyonu Nasıl Kaldırılır? [Detaylı Rehber] Office KMS kaldırma,…

1 yıl ago

WooCommerce Kategori Menü Eklentisi – Menü Yönetimini Akıllandıran WordPress Eklentisi

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…

1 yıl ago