Amiral Battı Kodlama Ödevi

KoKi

Hectopat
Katılım
24 Nisan 2019
Mesajlar
71
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Arkadaşlar merhaba;
Bir dersimizin final sınavının bir kısmını hocamız ödev olarak vermeye karar verdi. Ödevimiz C++ veya C# 'ta amiral battı kodlamamızı istiyor.

-100x100 kare.
-Gemi sayısını kendimiz belirleyebiliriz.
-Gemi yerlerini kendimiz belirleyebiliriz.
-Kodlama sadece tek bir atış çalışsa yeter. Döngüye girmesine çokta gerek yok.

Açıkçası bunu yapıp atabilecek var mı ? Programlama işinde daha çok yeniyim. sınıfımdakiler benden daha iyiler ve hoca grup şekilde yapmayın puan vermem dediği için de pek paylaşmıyorlar kendi yaptıklarını. ben böyle tek başıma kaldım gibi. sizden yardım bekliyorum. 16.05.2019'a kadar yapmam gerekiyor.
 
Son düzenleyen: Moderatör:
Bunun sana hiç bir faydası olmaz. Bence sen biraz araştır yapmaya çalış. Takıldığın noktalarda yardım iste inan daha fazla yardım görüceksin.
Kesinlikle katılıyorum. Başkasının yapıp attığı bir dersin sana ne faydası var? Sen öğrenmezsen mezun olunca kendi başına kalınca ne yapacaksın?
 
Evet beklenen yorumlar geldi... Neyse ,ciddi yardımcı olabilecek varsa mesaj atarsa sevinirim. mail adresimi verebilirim iletişim için.
 
C:
class Admiral {
   public static void main(String args[]) throws Exception
   {
 
      java.util.Random generator =
            new java.util.Random(System.currentTimeMillis());
 
      //gemilerin yerleştirildiği matris
      int board[][] = new int [10][10];
 
      //oyuncunun hamlelerinin tutulduğu matris
      int player[][] = new int [10][10];
 
      //gemilerin adedini tutan dizi   
      //0 nolu eleman kullanılmıyor   
      int ship[] = {0, 4, 3, 2, 1};
 
      int i, j, row, col, size;
      int num, dir, shipSize, count, r, c, rl, cl, flag;
      int right, down, hit;
 
      row = 10;
      col = 10;
      size = 5;
 
      count = 0;
      shipSize = 1;
 
      while (shipSize <= 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 - shipSize + 1;
            right = 2 + shipSize;
            down = 3;
         }
         else {
            rl = row - shipSize + 1;
            cl = col;
            right = 3;
            down = 2 + shipSize;
         }
 
         //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 (board[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)
                  board[i][j] = shipSize;
 
            //adet bir arttırılıyor
            count = count + 1;
 
            //gemiden istenen adet yerleştirilmişse
            //bir sonraki gemiye geçiliyor
            if (ship[shipSize] == count) {
               shipSize = shipSize + 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(board[i][j] + " ");
         System.out.println();
      }
 
      System.out.println();
 
      //toplam 20 isabetli atış yapıldığında oyun bitiyor
      count = 0;
      hit = 0;
      while(hit < 20) {
         //atış sayısı bir arttırılıyor
         count = count + 1;
 
         //atış yapılıyor
         System.out.print("Satiri giriniz : ");
         r = Keyboard.readInt();
         System.out.print("Sutunu giriniz : ");
         c = Keyboard.readInt();
 
 
 
         //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 (board[r][c] != 0){
            hit = hit + 1;
            player[r][c] = board[r][c];
         }
         else
            player[r][c] = 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(board[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(player[i][j] + " ");
            System.out.println();
         }
      }
      System.out.println("Tebrikler! " + count + " adimda bildiniz.");
   }
}

Kendinize göre editleyebilirsiniz kolay gelsin.
 

Geri
Yukarı