Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama Java Şans Oyunu (Rastgele Sayılar)


Şans Oyunu (Rastgele Sayılar)

AÇIKLAMA

1. İlk defa çevir butonuna basıldığında rastgele gelecek iki sayının

   1.1 Toplamı 7 veya 11 ise oyuncu kazanır.

   1.2 Toplam 2,3 veya 12 olursa bilgisayar kazanır.

   1.3  Eğer toplam bu durumların dışında birsayı olursa (4,5,6,8,9,10) oluşan toplam bir tarafta saklanır.

        1.3.1  Bu aşamadan sonra oluşan yeni toplam

        1.3.2  Eğer 7 ise  bilgisayar kazanır.

        1.3.3  Eğer oluşan toplam daha önceki toplamla aynı olursa oyuncu kazanır.

 1.3.2 ve 1.3.3 adımları program sonlanıncaya kadar devam eder.

import java.awt.*;
import java.applet.*;
import javax.swing.*;
import java.awt.event.*;
 
public class Oyuncu extends JApplet implements ActionListener {
   
   
    final int kazan = 0, kaybet= 1, devam = 2;
   
    boolean ilkcevirme=true;
    int cevirmetoplami;
    int oyuncusayitoplami;
    int oyundurumu=devam;
   
    JLabel sayi1label,sayi2label,toplamlabel,aktarmalabel;
    JTextField sayi1,sayi2,toplam,aktarma;
    JButton cevir;
   
    public void init()
   
    {
    Container pencere=getContentPane();
    pencere.setLayout(new FlowLayout());
    sayi1label=new JLabel("1.Sayı");
    pencere.add(sayi1label);
    sayi1=new JTextField(40);
    sayi1.setEditable(false);
    pencere.add(sayi1);
   
    sayi2label=new JLabel("2.Sayı");
    pencere.add(sayi2label);
    sayi2=new JTextField(40);
    sayi2.setEditable(false);
    pencere.add(sayi2);
   
    toplamlabel=new JLabel("Toplam");
    pencere.add(toplamlabel);
    toplam=new JTextField(40);
    toplam.setEditable(false);
    pencere.add(toplam);
   
    aktarmalabel=new JLabel("Aktarma");
    pencere.add(aktarmalabel);
    aktarma=new JTextField(40);
    aktarma.setEditable(false);
    pencere.add(aktarma);
    cevir=new JButton("Rastgele");
    cevir.addActionListener(this);
    pencere.add(cevir);                    
    }
   
    public int rastgelesec ()
    {
        
    int birinci= 1 + (int) (Math.random()*6);
    int  ikinci=  1 +(int) (Math.random()*6);
    int aratoplam=birinci+ikinci;
   
    sayi1.setText( Integer.toString(birinci));
    sayi2.setText( Integer.toString(ikinci));
    toplam.setText( Integer.toString(aratoplam));
   
    return aratoplam;    
    }
   
    public void altbilgigoster()
    {
     if(oyundurumu==devam)
     showStatus("Tekrar Çevir");
     else
     {
      if(oyundurumu==kazan)
      showStatus("Tebrikler Kazandınız.");
      else
      showStatus("Üzgünüm Bilgisayar Kazandı.Nihahahaha");
     }
    }    
   
    public void actionPerformed(ActionEvent o)
    {
    if((oyundurumu==kazan)||(oyundurumu==kaybet))
    {
        sayi1.setText("");
        sayi2.setText("");
        toplam.setText("");
        aktarma.setText("");
        oyundurumu=devam;
        ilkcevirme=true;
    }
    cevirmetoplami=rastgelesec();
    if(ilkcevirme)
    {
    switch (cevirmetoplami)
    {
     
     case 7 : oyundurumu=kazan; break;
     case 11: oyundurumu=kazan; break;
     
     case 2:  oyundurumu=kaybet; break;
     case 3:  oyundurumu=kaybet; break;
     case 12: oyundurumu=kaybet; break;    
     
     default:
     oyundurumu=devam;
     oyuncusayitoplami=cevirmetoplami;
     ilkcevirme=false;
     aktarma.setText(Integer.toString(cevirmetoplami));
     break;
     
    } // switch sonu
    } //if sonu    
    else
    {
     if(cevirmetoplami==oyuncusayitoplami)
     oyundurumu=kazan;
     else
     {
      if(cevirmetoplami==7)
      oyundurumu=kaybet;
          
     }
   
    }// else sonu
   
    altbilgigoster();
        
 
    }  //actionperformed sonu
        
}//class sonu

 

Yorumlar (2)
  • Murat Aykut  - Rastgele olamaz...
    Deterministik bir makineden nasıl nondeterministik bir sonuç (rastgelelik) beklenebilir?
  • NEO
    avatar
    Şimdi Murat'ım şöyle oluyor; bahsettiğin konu üzerine bundan 3 sene önce seninle aynı fikirde olduğum ve cok geniş çaplı düşünüldüğünde aslında rastgeliliğin olmadığını eninde sonunda bir periyotun olduğunu düşünüyordum. Halada aynı fikirdeyim fakat gel görki bu periyodun uzunluğunun kafamda oldukca büyük olması ve bir anda kestirelememesi ( sahsen kestirebiliyorsa benide aydınlat) sebebiyle aslında rastgele olmayan sayıların göreceli bir düşünce ile rastgele olduğunu kabul edebiliriz. Bir çeşit paradox :)
Sadece kayıtlı kullanıcılar yorum yazabilir!
Son Güncelleme ( Cuma, 03 Nisan 2009 00:55 )