1. Anasayfa
  2. Java

Java ile Amiral Battı Oyunu

Java ile Amiral Battı Oyunu
0

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

Click here to preview your posts with PRO themes ››

Bu Yazıya Tepkiniz Ne Oldu?
  • 0
    be_endim
    Beğendim
  • 0
    alk_l_yorum
    Alkışlıyorum
  • 0
    e_lendim
    Eğlendim
  • 0
    d_nceliyim
    Düşünceliyim
  • 0
    _rendim
    İğrendim
  • 0
    _z_ld_m
    Üzüldüm
  • 1
    _ok_k_zd_m
    Çok Kızdım

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

Yazarın Profili
Paylaş
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir