If etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
If etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

9 Ocak 2019 Çarşamba

C Sharp Form Seri Port Haberleşme - RS232 Haberleşme







using System.Windows.Forms;
using System.IO.Ports;
using System;
using System.Threading;
using System.Collections.Generic;
using System.ComponentModel;


namespace C_Sharp_Seri_Port_Haberlesme
{
    public partial class Form1 : Form
    {
  
        Thread readThread;
        volatile bool keepReading;
        String SerialIn = "";
        internal delegate void StringDelegate(string data);

        public Form1()
        {
            InitializeComponent();
        }
        
        private void Form1_Load(object sender, EventArgs e)
        {
            string[] portList = SerialPort.GetPortNames();
         
            for (int i = 0; i < portList.Length; ++i)
            {
                string name = portList[i];
                cmbSerialPortCom.Items.Add(name);
                cmbSerialPortCom.SelectedIndex = i;
            }

            Int32[] baudRates = {
                100,300,600,1200,2400,4800,9600,14400,19200,
                38400,56000,57600,115200,128000,256000,0
            };
  
            for (int i = 0; baudRates[i] != 0; ++i)
            {
                cmbSerialPortBaudRate.Items.Add(baudRates[i].ToString());
            }

            cmbSerialPortBaudRate.SelectedIndex = 6;

            cmbSerialPortDataBits.Items.Add("5");
            cmbSerialPortDataBits.Items.Add("6");
            cmbSerialPortDataBits.Items.Add("7");
            cmbSerialPortDataBits.Items.Add("8");
            cmbSerialPortDataBits.SelectedIndex = 3;

            foreach (string s in Enum.GetNames(typeof(Parity)))
            {
                cmbSerialPortParity.Items.Add(s);
            }
            cmbSerialPortParity.SelectedItem = Parity.None.ToString();

            foreach (string s in Enum.GetNames(typeof(StopBits)))
            {
                cmbSerialPortStopBits.Items.Add(s);
            }
            cmbSerialPortStopBits.SelectedItem = StopBits.One.ToString();

            foreach (string s in Enum.GetNames(typeof(Handshake)))
            {
                cmbSerialPortHandshaking.Items.Add(s);
            }
            cmbSerialPortHandshaking.SelectedItem =  Handshake.None.ToString();

        }

        //begin Observer pattern
        public delegate void EventHandler(string param);
        public EventHandler StatusChanged;
        public EventHandler DataReceived;
        //end Observer pattern

        private void StartReading()
        {
            if (!keepReading)
            {
                keepReading = true;
                readThread = new Thread(ReadPort);
                readThread.Start();
            }
        }

        private void StopReading()
        {
            if (keepReading)
            {
                keepReading = false;
                readThread.Join(); //block until exits
                readThread = null;
            }
        }

        ///  Get the data and pass it on. 
        private void ReadPort()
        {
            while (keepReading)
            {
                if (serialPort1.IsOpen)
                {
                    byte[] readBuffer = new byte[serialPort1.ReadBufferSize + 1];
                    try
                    {
                        int count = serialPort1.Read(readBuffer, 0, serialPort1.ReadBufferSize);

                        SerialIn = System.Text.Encoding.UTF7.GetString(readBuffer, 0, count);

                        DataReceived(SerialIn);
                    }
                    catch (TimeoutException) { }
                }
                else
                {
                    TimeSpan waitTime = new TimeSpan(0, 0, 0, 0, 50);
                    Thread.Sleep(waitTime);
                }
            }
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (serialPort1.IsOpen) serialPort1.Close();
        }
 

        private void btnOpenPort_Click(object sender, EventArgs e)
        {
            try
            {
                serialPort1.PortName = cmbSerialPortCom.Text;
                serialPort1.BaudRate = int.Parse(cmbSerialPortBaudRate.Text);
                serialPort1.DataBits = cmbSerialPortDataBits.SelectedIndex + 5;
                serialPort1.Parity = (Parity)cmbSerialPortParity.SelectedIndex;
                serialPort1.StopBits = (StopBits)cmbSerialPortStopBits.SelectedIndex;
                serialPort1.Handshake = (Handshake)cmbSerialPortHandshaking.SelectedIndex;

                // Set the read/write timeouts
                serialPort1.ReadTimeout = 50;
                serialPort1.WriteTimeout = 50;

                serialPort1.Open();

                this.DataReceived += OnDataReceived;
                  
                StartReading();

                EnableControls(false);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Bir hata oluştu. Seçimlerinizi kontrol edip tekrar deneyiniz.\n Hata : " + ex.Message,"HATA",MessageBoxButtons.OK,MessageBoxIcon.Error); 
            }
        }

        public void OnDataReceived(string dataIn)
        {
            //Handle multi-threading
            if (InvokeRequired)
            {
                Invoke(new StringDelegate(OnDataReceived), new object[] { dataIn });
                return;
            }

            lstReceivedData.Items.Add(dataIn);

        }

        private void btnClosePort_Click(object sender, EventArgs e)
        {
            StopReading();
            serialPort1.Close();
            EnableControls(true);
        }

        private void EnableControls(bool enabled)
        {
            btnClosePort.Enabled = !enabled;
            btnOpenPort.Enabled = enabled;
            cmbSerialPortBaudRate.Enabled = enabled;
            cmbSerialPortCom.Enabled = enabled;
            cmbSerialPortDataBits.Enabled = enabled;
            cmbSerialPortHandshaking.Enabled = enabled;
            cmbSerialPortParity.Enabled = enabled;
            cmbSerialPortStopBits.Enabled = enabled;
        }

        private void btnSend_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                serialPort1.Write(txtSendData.Text);
            }
           
        }

        private void btnOn_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                serialPort1.Write("1");
            }
        }

        private void btnOff_Click(object sender, EventArgs e)
        {
            if (serialPort1.IsOpen)
            {
                serialPort1.Write("0");
            }
        }

    }
}






DESIGNER




namespace C_Sharp_Seri_Port_Haberlesme
{
    partial class Form1
    {
        /// 
        /// Required designer variable.
        /// 
        private System.ComponentModel.IContainer components = null;

        /// 
        /// Clean up any resources being used.
        /// 
        /// true if managed resources should be disposed; otherwise, false.        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// 
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// 
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            this.serialPort1 = new System.IO.Ports.SerialPort(this.components);
            this.btnSend = new System.Windows.Forms.Button();
            this.btnOpenPort = new System.Windows.Forms.Button();
            this.grpSerialPortConfiguration = new System.Windows.Forms.GroupBox();
            this.btnClosePort = new System.Windows.Forms.Button();
            this.cmbSerialPortHandshaking = new System.Windows.Forms.ComboBox();
            this.cmbSerialPortStopBits = new System.Windows.Forms.ComboBox();
            this.cmbSerialPortParity = new System.Windows.Forms.ComboBox();
            this.cmbSerialPortDataBits = new System.Windows.Forms.ComboBox();
            this.cmbSerialPortBaudRate = new System.Windows.Forms.ComboBox();
            this.lblSerialPortHandshaking = new System.Windows.Forms.Label();
            this.lblSerialPortParity = new System.Windows.Forms.Label();
            this.lblSerialPortStopBits = new System.Windows.Forms.Label();
            this.lblSerialPortDataBits = new System.Windows.Forms.Label();
            this.lblSerialPortBaudRate = new System.Windows.Forms.Label();
            this.lblSerialPortCom = new System.Windows.Forms.Label();
            this.cmbSerialPortCom = new System.Windows.Forms.ComboBox();
            this.lstReceivedData = new System.Windows.Forms.ListBox();
            this.lstSendData = new System.Windows.Forms.ListBox();
            this.txtSendData = new System.Windows.Forms.TextBox();
            this.btnOn = new System.Windows.Forms.Button();
            this.btnOff = new System.Windows.Forms.Button();
            this.grpSerialPortConfiguration.SuspendLayout();
            this.SuspendLayout();
            // 
            // btnSend
            // 
            this.btnSend.Location = new System.Drawing.Point(363, 9);
            this.btnSend.Name = "btnSend";
            this.btnSend.Size = new System.Drawing.Size(141, 24);
            this.btnSend.TabIndex = 3;
            this.btnSend.Text = "Send";
            this.btnSend.UseVisualStyleBackColor = true;
            this.btnSend.Click += new System.EventHandler(this.btnSend_Click);
            // 
            // btnOpenPort
            // 
            this.btnOpenPort.Location = new System.Drawing.Point(9, 185);
            this.btnOpenPort.Name = "btnOpenPort";
            this.btnOpenPort.Size = new System.Drawing.Size(66, 23);
            this.btnOpenPort.TabIndex = 4;
            this.btnOpenPort.Text = "Open Port";
            this.btnOpenPort.UseVisualStyleBackColor = true;
            this.btnOpenPort.Click += new System.EventHandler(this.btnOpenPort_Click);
            // 
            // grpSerialPortConfiguration
            // 
            this.grpSerialPortConfiguration.Controls.Add(this.btnClosePort);
            this.grpSerialPortConfiguration.Controls.Add(this.cmbSerialPortHandshaking);
            this.grpSerialPortConfiguration.Controls.Add(this.cmbSerialPortStopBits);
            this.grpSerialPortConfiguration.Controls.Add(this.btnOpenPort);
            this.grpSerialPortConfiguration.Controls.Add(this.cmbSerialPortParity);
            this.grpSerialPortConfiguration.Controls.Add(this.cmbSerialPortDataBits);
            this.grpSerialPortConfiguration.Controls.Add(this.cmbSerialPortBaudRate);
            this.grpSerialPortConfiguration.Controls.Add(this.lblSerialPortHandshaking);
            this.grpSerialPortConfiguration.Controls.Add(this.lblSerialPortParity);
            this.grpSerialPortConfiguration.Controls.Add(this.lblSerialPortStopBits);
            this.grpSerialPortConfiguration.Controls.Add(this.lblSerialPortDataBits);
            this.grpSerialPortConfiguration.Controls.Add(this.lblSerialPortBaudRate);
            this.grpSerialPortConfiguration.Controls.Add(this.lblSerialPortCom);
            this.grpSerialPortConfiguration.Controls.Add(this.cmbSerialPortCom);
            this.grpSerialPortConfiguration.Location = new System.Drawing.Point(22, 12);
            this.grpSerialPortConfiguration.Name = "grpSerialPortConfiguration";
            this.grpSerialPortConfiguration.Size = new System.Drawing.Size(172, 218);
            this.grpSerialPortConfiguration.TabIndex = 7;
            this.grpSerialPortConfiguration.TabStop = false;
            this.grpSerialPortConfiguration.Text = "Port configuration";
            // 
            // btnClosePort
            // 
            this.btnClosePort.Location = new System.Drawing.Point(79, 185);
            this.btnClosePort.Name = "btnClosePort";
            this.btnClosePort.Size = new System.Drawing.Size(66, 23);
            this.btnClosePort.TabIndex = 12;
            this.btnClosePort.Text = "Close Port";
            this.btnClosePort.UseVisualStyleBackColor = true;
            this.btnClosePort.Click += new System.EventHandler(this.btnClosePort_Click);
            // 
            // cmbSerialPortHandshaking
            // 
            this.cmbSerialPortHandshaking.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.cmbSerialPortHandshaking.FormattingEnabled = true;
            this.cmbSerialPortHandshaking.Location = new System.Drawing.Point(9, 158);
            this.cmbSerialPortHandshaking.Name = "cmbSerialPortHandshaking";
            this.cmbSerialPortHandshaking.Size = new System.Drawing.Size(136, 21);
            this.cmbSerialPortHandshaking.TabIndex = 11;
            // 
            // cmbSerialPortStopBits
            // 
            this.cmbSerialPortStopBits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.cmbSerialPortStopBits.FormattingEnabled = true;
            this.cmbSerialPortStopBits.Location = new System.Drawing.Point(68, 116);
            this.cmbSerialPortStopBits.Name = "cmbSerialPortStopBits";
            this.cmbSerialPortStopBits.Size = new System.Drawing.Size(77, 21);
            this.cmbSerialPortStopBits.TabIndex = 10;
            // 
            // cmbSerialPortParity
            // 
            this.cmbSerialPortParity.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.cmbSerialPortParity.FormattingEnabled = true;
            this.cmbSerialPortParity.Location = new System.Drawing.Point(68, 92);
            this.cmbSerialPortParity.Name = "cmbSerialPortParity";
            this.cmbSerialPortParity.Size = new System.Drawing.Size(77, 21);
            this.cmbSerialPortParity.TabIndex = 9;
            // 
            // cmbSerialPortDataBits
            // 
            this.cmbSerialPortDataBits.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.cmbSerialPortDataBits.FormattingEnabled = true;
            this.cmbSerialPortDataBits.Location = new System.Drawing.Point(68, 68);
            this.cmbSerialPortDataBits.Name = "cmbSerialPortDataBits";
            this.cmbSerialPortDataBits.Size = new System.Drawing.Size(77, 21);
            this.cmbSerialPortDataBits.TabIndex = 8;
            // 
            // cmbSerialPortBaudRate
            // 
            this.cmbSerialPortBaudRate.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.cmbSerialPortBaudRate.FormattingEnabled = true;
            this.cmbSerialPortBaudRate.Location = new System.Drawing.Point(68, 44);
            this.cmbSerialPortBaudRate.Name = "cmbSerialPortBaudRate";
            this.cmbSerialPortBaudRate.Size = new System.Drawing.Size(77, 21);
            this.cmbSerialPortBaudRate.TabIndex = 7;
            // 
            // lblSerialPortHandshaking
            // 
            this.lblSerialPortHandshaking.AutoSize = true;
            this.lblSerialPortHandshaking.Location = new System.Drawing.Point(6, 143);
            this.lblSerialPortHandshaking.Name = "lblSerialPortHandshaking";
            this.lblSerialPortHandshaking.Size = new System.Drawing.Size(119, 13);
            this.lblSerialPortHandshaking.TabIndex = 6;
            this.lblSerialPortHandshaking.Text = "Hardware Handshaking";
            // 
            // lblSerialPortParity
            // 
            this.lblSerialPortParity.AutoSize = true;
            this.lblSerialPortParity.Location = new System.Drawing.Point(6, 96);
            this.lblSerialPortParity.Name = "lblSerialPortParity";
            this.lblSerialPortParity.Size = new System.Drawing.Size(33, 13);
            this.lblSerialPortParity.TabIndex = 5;
            this.lblSerialPortParity.Text = "Parity";
            // 
            // lblSerialPortStopBits
            // 
            this.lblSerialPortStopBits.AutoSize = true;
            this.lblSerialPortStopBits.Location = new System.Drawing.Point(6, 119);
            this.lblSerialPortStopBits.Name = "lblSerialPortStopBits";
            this.lblSerialPortStopBits.Size = new System.Drawing.Size(48, 13);
            this.lblSerialPortStopBits.TabIndex = 4;
            this.lblSerialPortStopBits.Text = "Stop bits";
            // 
            // lblSerialPortDataBits
            // 
            this.lblSerialPortDataBits.AutoSize = true;
            this.lblSerialPortDataBits.Location = new System.Drawing.Point(6, 73);
            this.lblSerialPortDataBits.Name = "lblSerialPortDataBits";
            this.lblSerialPortDataBits.Size = new System.Drawing.Size(49, 13);
            this.lblSerialPortDataBits.TabIndex = 3;
            this.lblSerialPortDataBits.Text = "Data bits";
            // 
            // lblSerialPortBaudRate
            // 
            this.lblSerialPortBaudRate.AutoSize = true;
            this.lblSerialPortBaudRate.Location = new System.Drawing.Point(6, 48);
            this.lblSerialPortBaudRate.Name = "lblSerialPortBaudRate";
            this.lblSerialPortBaudRate.Size = new System.Drawing.Size(53, 13);
            this.lblSerialPortBaudRate.TabIndex = 2;
            this.lblSerialPortBaudRate.Text = "Baud rate";
            // 
            // lblSerialPortCom
            // 
            this.lblSerialPortCom.AutoSize = true;
            this.lblSerialPortCom.Location = new System.Drawing.Point(6, 23);
            this.lblSerialPortCom.Name = "lblSerialPortCom";
            this.lblSerialPortCom.Size = new System.Drawing.Size(26, 13);
            this.lblSerialPortCom.TabIndex = 1;
            this.lblSerialPortCom.Text = "Port";
            // 
            // cmbSerialPortCom
            // 
            this.cmbSerialPortCom.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.cmbSerialPortCom.FormattingEnabled = true;
            this.cmbSerialPortCom.Location = new System.Drawing.Point(68, 20);
            this.cmbSerialPortCom.Name = "cmbSerialPortCom";
            this.cmbSerialPortCom.Size = new System.Drawing.Size(77, 21);
            this.cmbSerialPortCom.TabIndex = 0;
            // 
            // lstReceivedData
            // 
            this.lstReceivedData.FormattingEnabled = true;
            this.lstReceivedData.Location = new System.Drawing.Point(200, 44);
            this.lstReceivedData.Name = "lstReceivedData";
            this.lstReceivedData.Size = new System.Drawing.Size(141, 147);
            this.lstReceivedData.TabIndex = 9;
            // 
            // lstSendData
            // 
            this.lstSendData.FormattingEnabled = true;
            this.lstSendData.Location = new System.Drawing.Point(363, 44);
            this.lstSendData.Name = "lstSendData";
            this.lstSendData.Size = new System.Drawing.Size(141, 147);
            this.lstSendData.TabIndex = 10;
            // 
            // txtSendData
            // 
            this.txtSendData.Location = new System.Drawing.Point(200, 12);
            this.txtSendData.Name = "txtSendData";
            this.txtSendData.Size = new System.Drawing.Size(141, 20);
            this.txtSendData.TabIndex = 11;
            // 
            // btnOn
            // 
            this.btnOn.Location = new System.Drawing.Point(363, 207);
            this.btnOn.Name = "btnOn";
            this.btnOn.Size = new System.Drawing.Size(50, 23);
            this.btnOn.TabIndex = 12;
            this.btnOn.Text = "On";
            this.btnOn.UseVisualStyleBackColor = true;
            this.btnOn.Click += new System.EventHandler(this.btnOn_Click);
            // 
            // btnOff
            // 
            this.btnOff.Location = new System.Drawing.Point(454, 207);
            this.btnOff.Name = "btnOff";
            this.btnOff.Size = new System.Drawing.Size(50, 23);
            this.btnOff.TabIndex = 13;
            this.btnOff.Text = "Off";
            this.btnOff.UseVisualStyleBackColor = true;
            this.btnOff.Click += new System.EventHandler(this.btnOff_Click);
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(574, 253);
            this.Controls.Add(this.btnOff);
            this.Controls.Add(this.btnOn);
            this.Controls.Add(this.txtSendData);
            this.Controls.Add(this.lstSendData);
            this.Controls.Add(this.lstReceivedData);
            this.Controls.Add(this.grpSerialPortConfiguration);
            this.Controls.Add(this.btnSend);
            this.Name = "Form1";
            this.Text = "SERI PORT HABERLEŞME - SERIAL PORT COMMUNICATION";
            this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
            this.Load += new System.EventHandler(this.Form1_Load);
            this.grpSerialPortConfiguration.ResumeLayout(false);
            this.grpSerialPortConfiguration.PerformLayout();
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.IO.Ports.SerialPort serialPort1;
        private System.Windows.Forms.Button btnSend;
        private System.Windows.Forms.Button btnOpenPort;
        private System.Windows.Forms.GroupBox grpSerialPortConfiguration;
        private System.Windows.Forms.ComboBox cmbSerialPortHandshaking;
        private System.Windows.Forms.ComboBox cmbSerialPortStopBits;
        private System.Windows.Forms.ComboBox cmbSerialPortParity;
        private System.Windows.Forms.ComboBox cmbSerialPortDataBits;
        private System.Windows.Forms.ComboBox cmbSerialPortBaudRate;
        private System.Windows.Forms.Label lblSerialPortHandshaking;
        private System.Windows.Forms.Label lblSerialPortParity;
        private System.Windows.Forms.Label lblSerialPortStopBits;
        private System.Windows.Forms.Label lblSerialPortDataBits;
        private System.Windows.Forms.Label lblSerialPortBaudRate;
        private System.Windows.Forms.Label lblSerialPortCom;
        private System.Windows.Forms.ComboBox cmbSerialPortCom;
        private System.Windows.Forms.ListBox lstReceivedData;
        private System.Windows.Forms.Button btnClosePort;
        private System.Windows.Forms.ListBox lstSendData;
        private System.Windows.Forms.TextBox txtSendData;
        private System.Windows.Forms.Button btnOn;
        private System.Windows.Forms.Button btnOff;
    }
}




26 Aralık 2017 Salı

C Sharp uygulamalar TC no doğrulama





TC Kimlik numaraları 11 basamaktan oluşmaktadır.
İlk 9 basamak arasında kurulan bir algoritma bize 10. basamağı verir.
ilk 10 basamak arasında kurulan algoritma ise bize 11. basamağı verir.
* 11 hanelidir.
* Her hanesi rakamsal değer içerir.
* İlk hane 0 olamaz.
* 1. 3. 5. 7. ve 9. hanelerin toplamının 7 katından, 2. 4. 6. ve 8. hanelerin toplamı çıkartıldığında, elde edilen sonucun 10’a bölümünden kalan 10. haneyi verir.
* 1. 2. 3. 4. 5. 6. 7. 8. 9. ve 10. hanelerin toplamından elde edilen sonucun 10’a bölümünden kalan 11. haneyi verir.



        private void tcNo_dogrulama_Click(object sender, EventArgs e)
        {
            string tcNo = TCNo.Text.Trim();

            if (tcNo.Length != 11)
            {
                MessageBox.Show("TC No hatalıdır.", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            string rakam1 = TCNo.Text[0].ToString();
            string rakam10 = TCNo.Text[9].ToString();
            string rakam11 = TCNo.Text[10].ToString();
            int tekler = 0, ciftler = 0;
            if (rakam1 == "0")
            {
                MessageBox.Show("TC No hatalıdır.", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            else
            {
                for (int i = 0; i < 10; i++)
                {
                    if (i % 2 == 1)
                        ciftler += int.Parse(tcNo[i].ToString());
                    else tekler += int.Parse(tcNo[i].ToString());
                }

                int sayi10 = ((tekler * 7) - ciftler) % 10;
                int sayi11 = (ciftler + tekler + sayi10) % 10;

                if (rakam10 != sayi10.ToString() || rakam11 != sayi11.ToString())
                    MessageBox.Show("TC No hatalıdır.","Hata",MessageBoxButtons.OK,MessageBoxIcon.Error);
                else
                    MessageBox.Show("TC No Doğrulandı.","Bilgi",MessageBoxButtons.OK,MessageBoxIcon.Information);
            }
        }

 

21 Kasım 2017 Salı

C sharp verilen bir dizide N den fazla tekrarlanan elemanı silme







Liste lst ve sayı N verildiğinde, her lst sayısını en çok N defa içeren, yeniden sıralama yapmadan yeni bir liste oluşturun. Örneğin, N = 2 ve giriş [1,2,3,1,2,1,2,3] ise, [1,2,3,1,2] 'yi alırsınız, bir sonraki [1,2 ], sonuçta 1 ve 2 sonuçta 3 kez olduğundan listeye eklenmez. Ardından 3 2. kez gelir ve dizinin son durumu [1,2,3,1,2,3] olur

Örnek fonksiyon aşağıdaki gibidir:


        public static int[] DeleteNthItem(int[] arr, int x)
        {
            List result = new List();
            for (int i = 0; i < arr.Length; i++)
            {
                if (result.Count(s => s.Equals(arr[i])) < x)
                    result.Add(arr[i]);
            }
            return result.ToArray();
        }


veya


        public static int[] DeleteNth(int[] arr, int x)
        {
            var result = new List();
            foreach (var item in arr)
            {
                if (result.Count(i => i == item) < x)
                    result.Add(item);
            }
            return result.ToArray();
        }





4 Haziran 2017 Pazar

C Sharp Form Access Veri Tabanı Kullanarak Kullanıcı Şifre Güncelleme Formu Oluşturma

KONU : C Sharp Uygulamalar - C Sharp formda kullanıcı adı ve şifresini kullanarak kullanıcı şifre güncelleme formu oluşturma örneği. Kullanıcı şifre güncelleme formunun amacı sisteme giriş yapmış bir kullanıcının, kullanıcı adı ve şifresini kullanarak yeni şifre almasını sağlamaktır. Eğer kullanıcı veri tabanında kayıt ise otomatik olarak yeni girdiği şifre güncellenecek. Eğer kullanıcı veri tabanında kayıtlı değilse “Böyle bir kullanici yok veya şifreyi yanlış girdiniz!” hatasını verilecek. Öncelikle access veri tabanında bir kullanıcılar isminde id,kullanıcı adı ve şifresini listeleyeceğimiz tablo oluşturmamız gerekiyor. Daha sonra c sharp da form uygulama oluşturarak aşağıdaki kodları yazarak kullanıcı giriş formunu oluşturalım.
ETİKETLER: c sharp access - c sharp şifre güncelleme - c# şifre güncelleme - c sharp access şifre güncelleme - c sharp access kullanıcı girişi - c sharp kullanıcı - c sharp access giriş - c sharp veri tabanı giriş ekranı - c sharp giriş formu - c sharp giriş formu oluşturma - c sharp kullanıcı adı - c sharp şifre - c sharp access şifre - kullanıcı giriş formu oluşturma






UYGULAMAYI İNDİR




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace C_Sharp_Form_Kullanici_Giris_Formu
{
    public partial class SifreDegistir : Form
    {
          /// Bağlantı yapılacak veri tabanı ve kaynak dosyanın ismi
        OleDbConnection baglanti =
 new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Veritabanim.accdb");

        public SifreDegistir()
        {
            InitializeComponent();
        }

        ///  Access veri tabanına bağlantı açma metodu
        public void BaglantiAc()
        {
            try
            {
                if (baglanti.State != ConnectionState.Open)
                {
                    baglanti.Open();
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Veri tabanına bağlantı yapılamıyor.", "Hata",
 MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        /// Girilen Kullanıcıyı arama metodu. Burada sorgu cümleciği tanımlayarak sorgunun nasıl
        /// yapılacağını belirliyoruz. Eğer veri tabanında giriş yapmaya çalışan kullanıcının bilgileri 
        /// var ise bu metot bulunan kullanıcının id değerini dönecek.
        public int KullaniciAra()
        {
            int id = -1;

            try
            {

                BaglantiAc();
                string sorgu = "Select * from kullanicilar where kullaniciadi='"
 + txtKullaniciAdi.Text + "' And sifre='" + txtKullanilanSifre.Text + "' ";

                OleDbCommand komut = new OleDbCommand(sorgu, baglanti);
             
                OleDbDataReader okuyucu = komut.ExecuteReader();
               
                if (okuyucu.Read())
                {
                    id = int.Parse(okuyucu["id"].ToString());
                }

                baglanti.Close();

            }
            catch (Exception)
            {
                MessageBox.Show("Veri tabanına bağlantı yapılamıyor.","HATA",
 MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            return id;
        }

        private bool SifreGuncelle(string sifre, int id)
        {
            bool onay = false;
         
            try
            {

                BaglantiAc();
            
                OleDbCommand komut = new OleDbCommand();
           
                komut.Connection = baglanti;
               
                //ID değerine göre Kayıt Değiştirme sorgusu belirleniyor
                komut.CommandText = "update kullanicilar set sifre=@Sifre where id=@Id";
                
                //Parametrelerin hangi alanlardan veri alacağı belirleniyor
                komut.Parameters.AddWithValue("@Sifre", sifre);
                komut.Parameters.AddWithValue("@Id", id);

                if (komut.ExecuteNonQuery() == 1)
                {
                    onay = true;
                }
                else
                {
                    onay = false;
                }

                baglanti.Close();

            }
            catch (Exception )
            {
                MessageBox.Show("İşlem yapılamadı","HATA",
 MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            return onay;
        }

        private void btnSifreDegistir_Click(object sender, EventArgs e)
        {
            int kullaniciVarMi = KullaniciAra();

            if (kullaniciVarMi > 0)
            {
                string kullanilanSifre, yeniSifre, yeniSifreTekrar;

                kullanilanSifre = (txtKullanilanSifre.Text).Trim();
                yeniSifre = (txtYeniSifre.Text).Trim();
                yeniSifreTekrar = txtYeniSifreTekrar.Text;

                ///yeni girilen şifler boş olmamalı ve
                ///yeni şifre ve tekra girilen yeni şifre birbirinin aynısı olmalı
                if (yeniSifre == "" || yeniSifreTekrar == "" || yeniSifre != yeniSifreTekrar)
                {
                    MessageBox.Show("Şifreler birbirini tutmuyor. Lütfen tekrar giriş yapınız", 
"HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);

                    txtYeniSifre.Text = "";
                    txtYeniSifreTekrar.Text = "";
                }
                else
                {
                   bool islemTamamlandiMi=  SifreGuncelle(yeniSifre, kullaniciVarMi);
                   if (islemTamamlandiMi)
                   {
                       MessageBox.Show("Şifreniz Güncellendi", "BİLGİ", 
MessageBoxButtons.OK, MessageBoxIcon.Information);
                   }
                   else
                   {
                       MessageBox.Show("Şifre Güncelleme Başarısız", "HATA", 
MessageBoxButtons.OK, MessageBoxIcon.Error);
                   }
                }
            }
            else
            {
                MessageBox.Show("Böyle bir kullanici yok veya şifreyi yanlış girdiniz!", 
"HATA", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

    }
}

UYGULAMAYI İNDİR


C Sharp Form Access Veri Tabanı Kullanarak Kullanıcı Giriş Formu Oluşturma


C Sharp Form Access Veri Tabanı Kullanarak Kullanıcı Şifre Güncelleme Formu Oluşturma


C Sharp Uygulamalar Kitaplık Programı


C Sharp Uygulamalar SQL VeriTabanı Kategorilere Göre Ürünleri Listbox Kutusunda Listeleme


C Sharp Uygulamalar SQL VeriTabanı Kategorilere Göre Ürünleri Combobox Kutusunda Listeleme


C Sharp Form Uygulamar XML Veri Ekleme XML Veri Silme XML Veri Güncelleme XML Veri Tabanı


C Sharp Form Uygulamalar XML Yazma XML Okuma XML Veri Tabanı (XML Reader WML Writer )

8 Nisan 2016 Cuma

C Sharp Uygulamalar Şehir İsmi Bulmaca Oyunu Oyna



KONU : C Sharp Uygulamalar - C Sharp ( C# ) şehir ismi bulmaca oyunu uygulaması. textbox ve label kullanarak kelimeyi harflere bölme. Label nesnesinin backcolor ve forecolor özelliklerini kullanarak oyun alanı oluşturma.
ETİKETLER:





UYGULAMAYI İNDİR
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace C_Sharp_Textbox_Label_Uygulamasi
{
    public partial class Form1 : Form
    {

        string bulunacakKelime = "";
        int bulunanHarfSayisi = 0;
        int kalanHak = 4;

        public Form1()
        {
            InitializeComponent();
        }

        private void btnKelimeyiGir_Click(object sender, EventArgs e)
        {
            bulunacakKelime = txtBulunacakKelime.Text;

            txtBulunacakKelime.Text = "";
        }

        private void btnOyunuBaslat_Click(object sender, EventArgs e)
        {
            bulunanHarfSayisi = 0;
            btnHarfGir.Enabled = true;
            lblGirilenHarfler.Text = "";
            kalanHak = 4;
            lblKalanHak.Text = kalanHak.ToString();

            grpOyunAlani.Controls.Clear();

            for (int i = 0; i < bulunacakKelime.Length; i++)
            {
                Label label = new Label();
                label.Location = new Point(20*i+30,20);
                label.Text = bulunacakKelime[i].ToString();
                label.Size = new System.Drawing.Size(15, 13);
                label.BackColor = Color.Red;
                label.ForeColor = Color.Red;
                grpOyunAlani.Controls.Add(label);
            }
        }

        private void btnHarfGir_Click(object sender, EventArgs e)
        {
           
            bool harfVarMi = false;

            if (txtHarf.Text.Length != 1)
            {
                MessageBox.Show("Lütfen tek harf giriniz.", "Uyarı", 
MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                if (lblGirilenHarfler.Text.Contains(txtHarf.Text))
                {
                    MessageBox.Show("Bu harfi daha önce girdiniz.", "Uyarı",
MessageBoxButtons.OK, MessageBoxIcon.Warning);

                    txtHarf.Text = "";
                    txtHarf.Focus();

                    return;
                }

                foreach (Control item in grpOyunAlani.Controls)
                {
                    if (item is Label)
                    {
                        Label label = item as Label;
                        if (label.Text.ToUpper() == txtHarf.Text.ToUpper())
                        {
                            label.ForeColor = Color.Black;
                            label.BackColor = Color.Lime;
                            harfVarMi = true;
                            bulunanHarfSayisi++;
                        }
                    }
                }
            }

            if (!harfVarMi)
            {
                kalanHak--;

                lblKalanHak.Text = kalanHak.ToString();

                if (kalanHak == 0)
                {
                    btnHarfGir.Enabled = false;
                    MessageBox.Show("Oyun Bitti. Kaybettiniz. Yeni Oyun için 
yeni kelime giriniz.", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }

           
            lblGirilenHarfler.Text += txtHarf.Text + "  ";
          


            if (bulunanHarfSayisi == bulunacakKelime.Length)
            {
                btnHarfGir.Enabled = false;
                MessageBox.Show("Oyun Bitti. Kazandınız. Yeni Oyun için yeni 
kelime giriniz.", "Bilgi", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            txtHarf.Text = "";
            txtHarf.Focus();
        }
    }
}

UYGULAMAYI İNDİR

26 Mart 2016 Cumartesi

C Sharp Form Uygulamalar D'Hondt Sistemi Kullanarak Oy Hesaplama İşlemleri



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form uygulamasında oy hesaplama programı hazırlama. D'Hondt sistemi kullanarak oy hesaplama programı hazırlama. Hangi partinin kaç milletvekili çıkardığını hesaplama ve liste biçiminde oyları listeleme. D'Hondt metodunu kullanarak oylara göre milletvekili sayısını hesaplama.
ETİKETLER: c sharp oy hesaplama - c sharp D'Hondt sistemi - c sharp oy - c sharp milletvekili - c sharp hesaplama - c sharp listbox - c sharp groupbox - c sharp milletvekili sayısı hesaplama - c sharp D'Hondt yöntemi - c sharp D'Hondt method - c sharp D'Hondt metodu





UYGULAMAYI İNDİR





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace C_Sharp_Form_Oy_Hesaplama
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        int a, b, c, mvekilisayi;

        void temizle()
        {
            txtPartiA.Clear();
            txtPartiB.Clear();
            txtPartiC.Clear();
            txtMilletvekiliSayisi.Clear();
        }

        List< Parti > partiler = new List< Parti >();

        void hesapla()
        {
            partiler.Clear();

            mvekilisayi = Convert.ToInt32(txtMilletvekiliSayisi.Text);

            List< int > oylar = new List< int >();

            oylar.Add(Convert.ToInt32(txtPartiA.Text));
            oylar.Add(Convert.ToInt32(txtPartiB.Text));
            oylar.Add(Convert.ToInt32(txtPartiC.Text));

            Parti parti;
            for (int i = 0; i < 3; i++)
            {
                parti = new Parti();
                parti.MilletvekiliSayisi = 0;
                parti.Bolen = 1;
                parti.ToplamOy = oylar[i];
                partiler.Add(parti);

            }

            string data = String.Format("{0,-50}", "");

            for (int i = 0; i < partiler.Count; i++)
            {
                string temp  = (i+1).ToString() + ". Parti";

                data += String.Format("{0,-15}", temp);
            }
        
            listBox.Items.Add(data);

            data =  String.Format("{0,-38}", "Oy");
          
            for (int i = 0; i < partiler.Count; i++)
            {
                data += String.Format("{0,14}", partiler[i].ToplamOy);
            }

            listBox.Items.Add(data);

            while (mvekilisayi-- != 0)
            {


                parti = partiler[0];
              
                for (int i = 1; i < partiler.Count; i++)
                {
                    if (partiler[i].ToplamOy / partiler[i].Bolen > parti.ToplamOy / parti.Bolen)
                    {
                        parti = partiler[i];
                    }
                }



                data = String.Format("{0,-36}", (7-mvekilisayi).ToString() + ".milletvekili");
 
                for (int i = 0; i < partiler.Count; i++)
                {
                    data += String.Format("{0,14}", partiler[i].HesaplanOy);
                }

                listBox.Items.Add(data);

                parti.MilletvekiliSayisi++;
                parti.Bolen++;
            }


            data = String.Format("{0,-34}", "Milletvekili Sayıları");

            for (int i = 0; i < partiler.Count; i++)
            {
                data += String.Format("{0,14}", partiler[i].MilletvekiliSayisi.ToString("00000"));
            }
           
            listBox.Items.Add(data);

        }

        private void btnHesapla_Click(object sender, EventArgs e)
        {
            listBox.Items.Clear();
            hesapla();
        }
    }

    class Parti
    {
        public Parti()
        {
 
        }

        private int hesaplananOy ;
        private int bolen;
        private int milletvekiliSayisi;
        private int toplamOy;

        public int Bolen
        {
            get
            {
                return bolen;
            }
            set
            {
                bolen = value;
            }
        }

        public int MilletvekiliSayisi
        {
            get
            {
                return milletvekiliSayisi;
            }
            set
            {
                milletvekiliSayisi = value;
            }
        }

        public int ToplamOy 
        { 
            get
            {
                return toplamOy;
            }
            set
            {
                toplamOy = value;
            } 
        }

        public int HesaplanOy
        {
            get
            {
                return toplamOy / bolen;
            }
        }
    }
}

UYGULAMAYI İNDİR

22 Mart 2016 Salı

C Sharp Sos Oyunu 5x5 Rastgele Otomatik Doldurma










using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace C_Sharp_Sos_5x5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        Random rastgele = null;
        int satır_sayısı = 5;
        int sütun_sayısı = 5;
        TextBox[,] alanlar;

        private void Form1_Load(object sender, EventArgs e)
        {
            rastgele = new Random();

            alanlar = new TextBox[satır_sayısı, sütun_sayısı];
            for (int i = 0; i < satır_sayısı; i++)
            {
                for (int j = 0; j < sütun_sayısı; j++)
                {

                    TextBox yenitextBox = new TextBox();
                    yenitextBox.Location = new System.Drawing.Point(50 + j * 25, i * 25 + 50);
                    yenitextBox.Name = i + " * " + j;
                    yenitextBox.Size = new System.Drawing.Size(20, 20);
                    yenitextBox.TabIndex = 1;
                    yenitextBox.BorderStyle = BorderStyle.FixedSingle;

                    yenitextBox.KeyUp += new KeyEventHandler(yenitextBox_KeyUp);
                    this.Controls.Add(yenitextBox);

                    alanlar[i, j] = yenitextBox;

                }
            }
        }

        void yenitextBox_KeyUp(object sender, KeyEventArgs e)
        {
            (sender as TextBox).Text = (sender as TextBox).Text.ToUpper();
            if ((sender as TextBox).Text.Length > 1)
                (sender as TextBox).Text = (sender as TextBox).Text.Substring(0,1);
            else
            {
                bool oyunbitti = false;
                oyunbitti = SosOlanlariBoya(oyunbitti);

            }
        }

        private bool SosOlanlariBoya(bool oyunbitti)
        {
            for (int i = 0; i < satır_sayısı; i++)
            {
                for (int j = 0; j < sütun_sayısı; j++)
                {
                    if (alanlar[i, j].Text.ToUpper() == "S")
                    {
                        try
                        {
                            if (alanlar[i, j + 1].Text.ToUpper() == "O" && alanlar[i, j + 2].Text.ToUpper() == "S")
                            {
                                oyunbitti = true;
                                alanlar[i, j].BackColor = Color.Lime;
                                alanlar[i, j + 1].BackColor = Color.Lime;
                                alanlar[i, j + 2].BackColor = Color.Lime;
                            }
                        }
                        catch (Exception)
                        {
                        }

                        try
                        {
                            if (alanlar[i + 1, j + 1].Text.ToUpper() == "O" && alanlar[i + 2, j + 2].Text.ToUpper() == "S")
                            {
                                oyunbitti = true;
                                alanlar[i, j].BackColor = Color.Lime;
                                alanlar[i + 1, j + 1].BackColor = Color.Lime;
                                alanlar[i + 2, j + 2].BackColor = Color.Lime;
                            }
                        }
                        catch (Exception)
                        {
                        }
                        try
                        {
                            if (alanlar[i + 1, j].Text.ToUpper() == "O" && alanlar[i + 2, j].Text.ToUpper() == "S")
                            {
                                oyunbitti = true;
                                alanlar[i, j].BackColor = Color.Lime;
                                alanlar[i + 1, j].BackColor = Color.Lime;
                                alanlar[i + 2, j].BackColor = Color.Lime;
                            }
                        }
                        catch (Exception)
                        {
                        }
                        try
                        {
                            if (alanlar[i + 1, j - 1].Text.ToUpper() == "O" && alanlar[i + 2, j - 2].Text.ToUpper() == "S")
                            {
                                oyunbitti = true;
                                alanlar[i, j].BackColor = Color.Lime;
                                alanlar[i + 1, j - 1].BackColor = Color.Lime;
                                alanlar[i + 2, j - 2].BackColor = Color.Lime;
                            }
                        }
                        catch (Exception)
                        {
                        }


                    }
                }
            }


            return oyunbitti;
        }


        private void btnYeniOyun_Click(object sender, EventArgs e)
        {

            for (int i = 0; i < satır_sayısı; i++)
            {
                for (int j = 0; j < sütun_sayısı; j++)
                {
                    alanlar[i, j].Text = "";
                    alanlar[i, j].BackColor = Color.LightGray;
                    if (rastgele.Next(2) == 0)
                    {
                        alanlar[i, j].Text = "S";
                    }
                    else
                    {
                        alanlar[i, j].Text = "O";
                    }
                }
            }

            SosOlanlariBoya(false);
      
        }
    }
}



21 Mart 2016 Pazartesi

C Sharp Sos Oyunu 5x5










using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace C_Sharp_Sos_5x5
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        int satır_sayısı = 5;
        int sütun_sayısı = 5;
        TextBox[,] alanlar;

        private void Form1_Load(object sender, EventArgs e)
        {

            alanlar = new TextBox[satır_sayısı, sütun_sayısı];
            for (int i = 0; i < satır_sayısı; i++)
            {
                for (int j = 0; j < sütun_sayısı; j++)
                {

                    TextBox yenitextBox = new TextBox();
                    yenitextBox.Location = new System.Drawing.Point(50 + j * 25, i * 25 + 50);
                    yenitextBox.Name = i + " * " + j;
                    yenitextBox.Size = new System.Drawing.Size(20, 20);
                    yenitextBox.TabIndex = 1;
                    yenitextBox.BorderStyle = BorderStyle.FixedSingle;

                    yenitextBox.KeyUp += new KeyEventHandler(yenitextBox_KeyUp);
                    this.Controls.Add(yenitextBox);

                    alanlar[i, j] = yenitextBox;

                }
            }
        }

        void yenitextBox_KeyUp(object sender, KeyEventArgs e)
        {
            (sender as TextBox).Text = (sender as TextBox).Text.ToUpper();
            if ((sender as TextBox).Text.Length > 1)
                (sender as TextBox).Text = (sender as TextBox).Text.Substring(0,1);
            else
            {
                bool oyunbitti = false;
                try
                {
                    for (int i = 0; i < satır_sayısı; i++)
                    {
                        for (int j = 0; j < sütun_sayısı; j++)
                        {
                            if (!oyunbitti && alanlar[i, j].Text.ToUpper() == "S")
                            {
                                if (alanlar[i, j + 1].Text.ToUpper() == "O" && alanlar[i, j + 2].Text.ToUpper() == "S")
                                {
                                    oyunbitti = true;
                                    alanlar[i, j].BackColor = Color.Lime;
                                    alanlar[i, j + 1].BackColor = Color.Lime;
                                    alanlar[i, j + 2].BackColor = Color.Lime;
                                }
                                else if (alanlar[i + 1, j + 1].Text.ToUpper() == "O" && alanlar[i + 2, j + 2].Text.ToUpper() == "S")
                                {
                                    oyunbitti = true;
                                    alanlar[i, j].BackColor = Color.Lime;
                                    alanlar[i + 1, j + 1].BackColor = Color.Lime;
                                    alanlar[i + 2, j + 2].BackColor = Color.Lime;
                                }
                                else if (alanlar[i + 1, j].Text.ToUpper() == "O" && alanlar[i + 2, j].Text.ToUpper() == "S")
                                {
                                    oyunbitti = true;
                                    alanlar[i, j].BackColor = Color.Lime;
                                    alanlar[i + 1, j].BackColor = Color.Lime;
                                    alanlar[i + 2, j].BackColor = Color.Lime;
                                }
                                else if (alanlar[i + 1, j - 1].Text.ToUpper() == "O" && alanlar[i + 2, j - 2].Text.ToUpper() == "S")
                                {
                                    oyunbitti = true;
                                    alanlar[i, j].BackColor = Color.Lime;
                                    alanlar[i + 1, j - 1].BackColor = Color.Lime;
                                    alanlar[i + 2, j - 2].BackColor = Color.Lime;
                                }


                            }
                        }
                    }
                }
                catch (Exception)
                {

                }

            }
        }

        private void btnYeniOyun_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < satır_sayısı; i++)
            {
                for (int j = 0; j < sütun_sayısı; j++)
                {
                    alanlar[i, j].Text = "";
                }
            }
        }
    }
}



28 Kasım 2015 Cumartesi

C Sharp Konsol Mastermind Oyunu




KONU : C Sharp Konsol Mastermind Oyunu
ETİKETLER: c sharp - c# - c sharp uygulamalar - c sharp örnekler - c# applications - c sharp form ve konsol uygulamalar - c sharp oyun - charp game






UYGULAMAYI İNDİR

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace C_Sharp_Console_Mastermind_Game
{
    class Program
    {
        static void Main(string[] args)
        {



            int i, length;

            //int tipine dönüştüreceğimiz sayı
            int digitOk = 0;
            int digitNotOk = 0;

            //basamak değeri: abcd girilen sayımız d -> digitValue[3] olarak temsil edecek
            int[] digitValue = new int[4];

            int[] targetNumber = new int[4];
            Random randomGenerate = new Random();

            int randomNumber = randomGenerate.Next(1000, 10000); 
            
            
            ////Console.WriteLine(randomNumber.ToString());

            //tahmin edilecek sayının basamaklarını oluşturalım
            for (i = 0; i < 4; i++)
            {
                targetNumber[i] = randomNumber % 10; // rand() fonksiyonu ile 0 - 10 arasında bir sayı oluşturuyorum
                randomNumber /= 10;
            }

            while (true)//sonsuz döngü, çıkılmak istenilene kadar devam edecek bir döngü oluşturuyorum.
            {
                digitOk = 0;
                digitNotOk = 0;

                //konsoldan bir sayı giriniz.
                Console.WriteLine("\n\nEnter a number: ");

                //konsoldan girilen sayıyı oku
                int estimatedNumber = 0;
                try
                {
                    estimatedNumber = Convert.ToInt16(Console.ReadLine());
                }
                catch (Exception)
                {

                }

                //okunan dört basamaklı sayıyı int tipine dönüştür
                for (i = 0; i < 4; i++)
                {
                    digitValue[i] = estimatedNumber % 10;

                    estimatedNumber /= 10;

                    bool digitAvailable = false;

                    for (int j = 0; j < 4; j++)
                    {
                        if (digitValue[i] == targetNumber[j])
                        {
                            digitAvailable = true;
                            break;
                        }
                    }

                    if (digitAvailable == true)
                    {
                        if (digitValue[i] == targetNumber[i])
                        {
                            digitOk++;
                        }
                        else
                        {
                            digitNotOk++;
                        }
                    }

                }

                Console.WriteLine(" Information =  + {0}  - {1}", digitOk, digitNotOk);

                if (digitOk == 4)
                {
                    break;
                }
            }

            Console.WriteLine("\n ****Game Over**** ");
            Console.WriteLine("\n ****Game Over**** ");
            Console.ReadKey();
        }
    }
}




UYGULAMAYI İNDİR

27 Kasım 2015 Cuma

C Sharp Form WPF Şehir İsmi Bulma Oyunu




KONU : C Sharp Form WPF de Şehir İsmi Bulma Oyunu uygulaması nasıl yapılır?
ETİKETLER: c sharp - c# - c sharp uygulamalar - c sharp örnekler - c# applications - c sharp form ve konsol uygulamalar - WPF






UYGULAMAYI İNDİR

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace C_sharp_WPF_Sehir_ismi_Bulmaca
{
    /// 
    /// Interaction logic for MainWindow.xaml
    /// 
    public partial class MainWindow : Window
    {

        string[] sehirlerListesi = { "İstanbul", "Ankara", "İzmir", "Adana", "Adıyaman", 
                                       "Afyonkarahisar", "Ağrı", "Aksaray", "Amasya", "Antalya",
                                       "Ardahan", "Artvin", "Aydın", "Balıkesir", "Bartın", "Batman",
                                       "Bayburt", "Bilecik", "Bingöl", "Bitlis", "Bolu", "Burdur", 
                                       "Bursa", "Çanakkale", "Çankırı", "Çorum", "Denizli", 
                                       "Diyarbakır", "Düzce", "Edirne", "Elazığ", "Erzincan", 
                                       "Erzurum", "Eskişehir", "Gaziantep", "Giresun", "Gümüşhane", 
                                       "Hakkari", "Hatay", "Iğdır", "Isparta", "Kahramanmaraş", 
                                       "Karabük", "Karaman", "Kars", "Kastamonu", "Kayseri",
                                       "Kırıkkale", "Kırklareli", "Kırşehir", "Kilis", "Kocaeli",
                                       "Konya", "Kütahya", "Malatya", "Manisa", "Mardin", "Mersin",
                                       "Muğla", "Muş", "Nevşehir", "Niğde", "Ordu", "Osmaniye", "Rize",
                                       "Sakarya", "Samsun", "Siirt", "Sinop", "Sivas", "Şırnak",
                                       "Tekirdağ", "Tokat", "Trabzon", "Tunceli", "Şanlıurfa", "Uşak",
                                       "Van", "Yalova", "Yozgat", "Zonguldak" };

        string bulunacakSehirIsmi = "";
        int bulunanHarfSayisi = 0;
        int kalanHak = 4;
        Random rastgele;

        public MainWindow()
        {
            InitializeComponent();
        }

        private void Grid_Loaded(object sender, RoutedEventArgs e)
        {
            btnHarfGir.IsEnabled = false;
            btnTahminEt.IsEnabled = false;
            rastgele = new Random();

            //this.AcceptButton = btnHarfGir;
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            bulunanHarfSayisi = 0;
            btnHarfGir.IsEnabled = true;
            btnTahminEt.IsEnabled = true;
            lblGirilenHarfler.Content = "";
            kalanHak = 4;
            lblKalanHak.Content = kalanHak.ToString();

            YeniSehirSec();

            gridOyunAlani.Children.Clear();
            int location = 0;
            for (int i = 0; i < bulunacakSehirIsmi.Length; i++)
            {
                Label label = new Label();
                label.Height = 25;
                label.Width = 25;
                label.HorizontalAlignment = HorizontalAlignment.Left;
                label.VerticalAlignment = VerticalAlignment.Top;
                label.Content = bulunacakSehirIsmi[i].ToString().ToUpper();
                label.Foreground = Brushes.Red;
                label.Background = Brushes.Red;
                location = 30 * i;
                label.Margin = new Thickness(location, 25 , 0, 0);

                gridOyunAlani.Children.Add(label);
              
            }
        }

        private void btnHarfGir_Click(object sender, RoutedEventArgs e)
        {
            bool harfVarMi = false;

            if (txtHarf.Text.Length != 1)
            {
                MessageBox.Show("Lütfen tek harf giriniz.", "Uyarı");
                txtHarf.Text = "";
                txtHarf.Focus();
                return;
            }
            else
            {
                if (lblGirilenHarfler.Content.ToString().Contains(txtHarf.Text))  //
                {
                    MessageBox.Show("Bu harfi daha önce girdiniz.", "Uyarı");

                    txtHarf.Text = "";
                    txtHarf.Focus();

                    return;
                }

                foreach (Control item in gridOyunAlani.Children)
                {
                    if (item is Label)
                    {
                        Label label = item as Label;
                        if (label.Content.ToString().ToUpper() == txtHarf.Text.ToUpper())
                        {
                            label.Foreground = Brushes.Black;
                            label.Background = Brushes.Lime;
                            harfVarMi = true;
                            bulunanHarfSayisi++;
                        }
                    }
                }
            }

            if (!harfVarMi)
            {
                kalanHak--;

                lblKalanHak.Content = kalanHak.ToString();

                if (kalanHak == 0)
                {
                    btnHarfGir.IsEnabled = false;
                    btnTahminEt.IsEnabled = false;

                    foreach (Control item in gridOyunAlani.Children)
                    {
                        if (item is Label)
                        {
                            Label label = item as Label;
                            label.Foreground = Brushes.Black;
                        }
                    }

                    MessageBox.Show("Oyun Bitti. Kaybettiniz. Yeni Oyun için yeni kelime giriniz. \n Cevap : " + bulunacakSehirIsmi, "Bilgi");
                }
            }

            lblGirilenHarfler.Content += txtHarf.Text + "  ";
          
            if (bulunanHarfSayisi == bulunacakSehirIsmi.Length)
            {
                btnHarfGir.IsEnabled = false;
                btnTahminEt.IsEnabled = false;
                MessageBox.Show("Oyun Bitti. Kazandınız. Yeni Oyun için yeni kelime giriniz.", "Bilgi"  );
            }

            txtHarf.Text = "";
            txtHarf.Focus();
        }

        private void YeniSehirSec()
        {
            int rastgeleSayi = rastgele.Next(0, sehirlerListesi.Length);

            bulunacakSehirIsmi = sehirlerListesi[rastgeleSayi];
        }

        private void btnTahminEt_Click(object sender, RoutedEventArgs e)
        {
            if (bulunacakSehirIsmi.ToUpper() == txtKelime.Text.ToUpper())
            {
                foreach (Control item in gridOyunAlani.Children)
                {
                    if (item is Label)
                    {
                        Label label = item as Label;
                        label.Foreground = Brushes.Black;
                        label.Background = Brushes.Lime;
                    }
                }
                MessageBox.Show("Oyun Bitti. Tebrikler Kazandınız. Yeni Oyun için yeni kelime giriniz.", "Bilgi");
            }
            else
            {
                foreach (Control item in gridOyunAlani.Children)
                {
                    if (item is Label)
                    {
                        Label label = item as Label;
                        label.Foreground = Brushes.Black; 
                    }
                }
                MessageBox.Show("Oyun Bitti. Kaybettiniz. Yeni Oyun için yeni kelime giriniz. \n Cevap : " + bulunacakSehirIsmi, "Bilgi");
            }

            btnHarfGir.IsEnabled = false;
            btnTahminEt.IsEnabled = false;
        }

 
 
    }
}






UYGULAMAYI İNDİR

5 Temmuz 2015 Pazar

C Sharp Konsolda Girilen Bir Sayıya Kadar Sayının Basamak Değerlerinin Toplamı Kendisine Eşit Olan Sayılar




KONU : Klavyeden girilen bir sayıya kadar sayının basamak değerlerinin küplerinin toplamı kendisine eşit olan sayıları diziye atayan ve ekrana yazdıran uygulama geliştirme.
ETİKETLER: c sharp - c# - c sharp uygulamalar - c sharp örnekler - c# applications - c sharp form ve konsol uygulamalar






UYGULAMAYI İNDİR

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace C_Sahrp_Sayinin_Basamak_Degeri
{
    class Program
    {
        static void Main(string[] args)
        {

            while (true)
            {
                Console.Clear();
                Console.WriteLine("Bir sayı giriniz");
                int sayi = int.Parse(Console.ReadLine().Trim());
                int kupToplam = 0;
                int basamak = 0;
                int[] KupLeriEsitOlanlar = new int[100];
                int counter = 0;

                for (int i = 1; i < sayi; i++)
                {
                    basamak = 0;
                    kupToplam = 0;

                    for (int j = 0; j < i.ToString().Length; j++)
                    {
                        basamak = (int)((i / Math.Pow(10, j))) % 10;
                        kupToplam += Convert.ToInt32(Math.Pow(basamak, 3));
                    }

                    if (i == kupToplam)
                    {
                        Console.WriteLine("Basamak değerlerinin küpleri toplamı = " + i);
                        KupLeriEsitOlanlar[counter++] = i;
                    }
                }

                //2. yöntem :

                int ilk, orta, son;
                double kupToplami;

                for (int i = 100; i < 1000; i++)
                {
                    int sayı = i;
                    ilk = sayı % 10;
                    sayı = sayı / 10;
                    orta = sayı % 10;
                    son = sayı / 10;

                    kupToplami = Math.Pow(ilk, 3) + Math.Pow(orta, 3) + Math.Pow(son, 3);
                    if (i == kupToplami)
                        Console.WriteLine("Basamakları Küpleri Toplamı = " + sayı);
                }
    
                Console.ReadKey();
            }

        }
    }
}




UYGULAMAYI İNDİR


C Sharp Uygulamaları İkilik Tabandan Onluk Tabana Çevirme İşlemi



C Sharp Uygulamalar İki Tam Sayı Arasındaki Çift Sayılar


C Sharp Uygulamalar İki Tam Sayı Arasındaki Tek Sayıları Bulan Konsol Programı

5 Mart 2015 Perşembe

10.000'in altında kaç Lychrel sayısı olduğunu hesaplama

Eğer 47 sayısını alır ters çevirir ve toplarsak 47+74 = 121 sayısını elde ederiz ki bu sayı palindromik bir sayıdır(sağdan ve soldan yazıldığında aynı). Fakat her sayı bu kadar kolay palindrom üretmez. Örneğin: 349 + 943 = 1292 1292 + 2921 = 4213 4213 + 3124 = 7337 349 sayısının palindrome olması 3 öteleme gerektirdi. Bazı sayılar, henüz kimse kanıtlamadı, asla palindrom sayı üretmezler, 196 gibi. Bu sayılara Lychrel sayıları denir. Biz burada kanıtlanmadığı için en fazla 50 ötelemeye kadar olup olmadığına bakacağız. Eğer 50 ötelemeye kadar bir palindrom üretmediyse Lychrel sayısıdır diyeceğiz. Fakat 50 ötelemenin sonrasında da palindrome olan sayılar var, misal 4668731596684224866951378664 (53 öteleme, 28 basamaklı). Soru: 10.000'in altında kaç Lychrel sayısı vardır?

UYGULAMAYI İNDİR




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form6 : Form
    {
        public Form6()
        {
            InitializeComponent();
        }

        private void Form6_Load(object sender, EventArgs e)
        {
            long MAX_NUMBER = 10000;
            long Counter = 0;
            long sum = 0;
            int iteration = 50;
            long j, i;
            for (i = 0; i < MAX_NUMBER; ++i)
            {
                sum = i;
                bool notpalindrome = true;
                for (j = 0; j < iteration; ++j)
                {
                    sum = sum + reverse(sum);
                    if (isPalindrome(sum))
                    {
                        notpalindrome = false;
                        break;
                    }
                }

                if (notpalindrome)
                {
                    Counter++;
                    listBox1.Items.Add(i);
                }
            
            }

            this.Text = Counter.ToString();
        }


        private static long reverse(long number)
        {
            long remainder;
            long reversed = 0;
            while (number != 0)
            {
                remainder = number % 10;
                reversed = reversed * 10 + remainder;
                number /= 10;
            }
            return reversed;
        }

        private static bool isPalindrome(long number)
        {
            if (number == reverse(number))
                return true;
            return false;
        }

    }
}

   




UYGULAMAYI İNDİR

22 Kasım 2014 Cumartesi

C Sharp Konsol Dört Basamaklı Sayı Tahmin Etme Oyunu



KONU : C Sharp Uygulamalar - C Sharp ( C# ) konsol ekranına 4 basamaklı sayı tahmin etme oyunu. C sharp konsol uygulamada for, while, if else kullanımı.
ETİKETLER: c sharp konsol - c sharp döngü - c sharp oyun




UYGULAMAYI İNDİR




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace C_Sharp_Console_Mastermind_Game
{
    class Program
    {
        static void Main(string[] args)
        {



            int i, length;

            //int tipine dönüştüreceğimiz sayı
            int digitOk = 0;
            int digitNotOk = 0;

            //basamak değeri: abcd girilen sayımız d -> digitValue[3] olarak temsil edecek
            int[] digitValue = new int[4];

            int[] targetNumber = new int[4];
            Random randomGenerate = new Random();

            int randomNumber = randomGenerate.Next(1000, 10000); Console.WriteLine(randomNumber.ToString());

            //tahmin edilecek sayının basamaklarını oluşturalım
            for (i = 0; i < 4; i++)
            {
                targetNumber[i] = randomNumber % 10; // rand() fonksiyonu ile 0 - 10 arasında bir sayı oluşturuyorum
                randomNumber /= 10;
            }

            while (true)//sonsuz döngü, çıkılmak istenilene kadar devam edecek bir döngü oluşturuyorum.
            {
                digitOk = 0;
                digitNotOk = 0;

                //konsoldan bir sayı giriniz.
                Console.WriteLine("\n\nEnter a number: ");

                //konsoldan girilen sayıyı oku
                int estimatedNumber = 0;
                try
                {
                    estimatedNumber = Convert.ToInt16(Console.ReadLine());
                }
                catch (Exception)
                {

                }

                //okunan dört basamaklı sayıyı int tipine dönüştür
                for (i = 0; i < 4; i++)
                {
                    digitValue[i] = estimatedNumber % 10;

                    estimatedNumber /= 10;

                    bool digitAvailable = false;

                    for (int j = 0; j < 4; j++)
                    {
                        if (digitValue[i] == targetNumber[j])
                        {
                            digitAvailable = true;
                            break;
                        }
                    }

                    if (digitAvailable == true)
                    {
                        if (digitValue[i] == targetNumber[i])
                        {
                            digitOk++;
                        }
                        else
                        {
                            digitNotOk++;
                        }
                    }

                }

                Console.WriteLine(" Information =  + {0}  - {1}", digitOk, digitNotOk);

                if (digitOk == 4)
                {
                    break;
                }
            }

            Console.WriteLine("\n ****Game Over**** ");
            Console.WriteLine("\n ****Game Over**** ");
            Console.ReadKey();
        }
    }
}

   




UYGULAMAYI İNDİR

C Sharp Form Uygulamalar Mayın Tarlası Oyunu

C Sharp Form da mayın tarlası oyunu hazırlama, mayın tarlası oyunu , c sharp mayın tarlası oyun uygulaması hazırlama örneği. C# picturebox ve bitmap sınıfılarının kullanımı ile örnek uygulama. Mayın tarlası oyunu butonlarını dinamik olarak oluşturma ve oluşturulan butonlar event tanımlama. Generic List kullanarak butonları bir listede saklama. C sharp mayın tarlası oyun algoritması oluşturma. C sharp da rastgele tıklanan bir butonu sender parametresinden buton nesnesine dönüştürme. Bitmap alanı oluşturup alanı istenilen renkler ile doldurma. C sharp da tıklanan herhangi bir butonu gizleme. Butonları yan yana ve alt alta gelecek şekilde matriksler şeklinde sıralama veya gösterme. Tıklanan butonun bütün özelliklerine erişme örneği.

C Sharp Oyun | c sharp oyun örnekleri | c sharp oyun yapma | c sharp oyun kodları | csharp oyun programlama | csharp örnek oyun | csharp örnek projeler | csharp örnek programlar| c sharp örnek kodlar | csharp örnek kodları | c sharp örnekleri | csharp örnek | c sharp oyun programları | c# oyun | c# oyun yapımı | c# oyun programlama | c# oyun kodları | c# oyun örnekleri | | c# oyun örnekleri indir | c# örnek oyun | c# mayın tarlası | c sharp mayın tarlası | c sharp mayın tarlası oyunu | c sharp mayın tarlası oyunu yapma | c# mayın tarlsı yapma | c# mayın tarlası kodları | c# mayın tarlası indir | c sharp mayın tarlası oyna | mayın tarlası oyna.

UYGULAMAYI İNDİR

Mayın Tarlası Benzer Uygulama 2




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using Mayın;


namespace MayınTarlası
{
    public partial class MayınTarlası : Form
    {
        

        public MayınTarlası()
        {
            InitializeComponent();
        }

        private void MayınTarlasıOlustur()
        {
            

            if (Mayın_Tarlası.bmp != null)
            {
                Mayın_Tarlası.MayınRengi = Brushes.Red;
                Mayın_Tarlası.ArkaPlan = Brushes.Blue;
                Mayın_Tarlası.ButonRengi = Brushes.White;
            }
            if (Mayın_Tarlası.OyunMayınSayısı == 0)
                Mayın_Tarlası.OyunMayınSayısı = 40;
            pictureBox_MayınTarlası.Visible = false;
            Mayın_Tarlası.MayınYerleştir();
            Mayın_Tarlası.MayınTarlasınıDoldur();
            pictureBox_MayınTarlası.Image = Mayın_Tarlası.bmp;
            pictureBox_MayınTarlası.Refresh();
            int satir=0, sutun=0;
            Mayın_Tarlası.KalanMayınSayısı = Mayın_Tarlası.MayınSayısı;
            Mayın_Tarlası.TespitEdilenMayınSayısı = 0;
            label_kalanmayın.Text = "Kalan Mayın Sayısı :" + Mayın_Tarlası.KalanMayınSayısı.ToString();
            for (int i = 0; i < 400; i++)
            {
                if (i % 20 == 0 && i!=0)
                {
                    satir++;
                    sutun = 0;
                }
                Button tb = new Button();
                tb.Name = i.ToString();
                tb.TabIndex = i;
                tb.TabStop = false;
                tb.Text = "";
                tb.Size = new System.Drawing.Size(20, 20);
                Point p = new System.Drawing.Point(sutun* tb.Width+20, satir* tb.Height+20);
                tb.Location = p;
                tb.FlatStyle =System.Windows.Forms.FlatStyle.Flat ;
                tb.Visible = true;
                tb.BackColor = Color.Gray;
                tb.BringToFront();
                tb.MouseDown += new MouseEventHandler(this.butonlarClick);
                pictureBox_MayınTarlası.Controls.Add(tb);
                pictureBox_MayınTarlası.Size = new Size(440,440);
                this.AutoSize = true;
                Mayın_Tarlası.Butonlar.Add(tb);
                sutun++;
            }
            pictureBox_MayınTarlası.Visible = true;
            Mayın_Tarlası.LineCiz();
         }

        private void butonlarClick(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            Button BasılanButon = (Button)sender;
            if (BasılanButon.BackColor == Color.Gray)
                if (e.Button == MouseButtons.Left)
                {
                    BasılanButon.Visible = false;
                    if (Mayın_Tarlası.MayınVarMı(BasılanButon.Location.X, BasılanButon.Location.Y))
                    {
                        for (int i = 0; i < Mayın_Tarlası.OyunMayınSayısı; i++)
                            ((Button)Mayın_Tarlası.Butonlar[Mayın_Tarlası.MayınYerleri[i]]).Visible = false;
                        MessageBox.Show("Oyun Bitti");
                        for (int i = 0; i < 400; i++)
                            ((Button)Mayın_Tarlası.Butonlar[i]).Enabled = false;
                    }
                    else
                    {
                        if (Mayın_Tarlası.EtiketKoy(BasılanButon) != "0")
                            pictureBox_MayınTarlası.Controls.Add(Mayın_Tarlası.label_buton);
                    }
                    if (Mayın_Tarlası.EtiketKoy(BasılanButon) == "0")
                    {
                        BosYerleriAc(BasılanButon);
                        int i=0;
                        while (Mayın_Tarlası.BakılanButonlar.Count - i > 0)
                        {
                            if (Mayın_Tarlası.EtiketKoy((Button)Mayın_Tarlası.BakılanButonlar[i]) == "0")
                                BosYerleriAc((Button)Mayın_Tarlası.BakılanButonlar[i]);
                            else
                                pictureBox_MayınTarlası.Controls.Add(Mayın_Tarlası.label_buton);
                            i++;                
                        }
                        for (int a = 0; a < Mayın_Tarlası.BakılanButonlar.Count; a++)
                            ((Button)Mayın_Tarlası.BakılanButonlar[a]).Visible = false;
                    }
                }
            if (e.Button == MouseButtons.Right)
            {
                if (((Button)Mayın_Tarlası.Butonlar[int.Parse(BasılanButon.Name)]).BackColor == Color.Gray)
                {
                    ((Button)Mayın_Tarlası.Butonlar[int.Parse(BasılanButon.Name)]).BackColor = Color.GreenYellow;
                    Mayın_Tarlası.KalanMayınSayısı--;
                    for(int i=0;i < Mayın_Tarlası.MayınSayısı;i++)
                        if (((Button)Mayın_Tarlası.Butonlar[int.Parse(BasılanButon.Name)]).Name == Mayın_Tarlası.MayınYerleri[i].ToString())
                            Mayın_Tarlası.TespitEdilenMayınSayısı++;
                }
                else
                {
                    ((Button)Mayın_Tarlası.Butonlar[int.Parse(BasılanButon.Name)]).BackColor = Color.Gray;
                    Mayın_Tarlası.KalanMayınSayısı++;
                    for (int i = 0; i < Mayın_Tarlası.MayınSayısı; i++)
                        if (((Button)Mayın_Tarlası.Butonlar[int.Parse(BasılanButon.Name)]).Name == Mayın_Tarlası.MayınYerleri[i].ToString())
                            Mayın_Tarlası.TespitEdilenMayınSayısı--;
                }                
            }
            label_kalanmayın.Text = "Kalan Mayın Sayısı :" + Mayın_Tarlası.KalanMayınSayısı.ToString();
            Mayın_Tarlası.LineCiz();
            if (Mayın_Tarlası.TespitEdilenMayınSayısı == Mayın_Tarlası.MayınSayısı)
            {
                MessageBox.Show("Oyunu Kazandınız. Tebrikler.");
                for (int i = 0; i < 400; i++)
                    ((Button)Mayın_Tarlası.Butonlar[i]).Enabled = false;
            }
                
                
            
        }

        private void BosYerleriAc(Button ArananButon)
        {
            bool varmı = false;
            int x = ArananButon.Location.X, y = ArananButon.Location.Y;
            if (x <= 400 && x >= 20 && y <= 400 && y >= 20)
            {
                if ( x > 20 )
                {
                    for (int b = 0; b < Mayın_Tarlası.BakılanButonlar.Count; b++)
                        if ((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) - 1] == (Button)Mayın_Tarlası.BakılanButonlar[b])
                            varmı = true;
                    if (!varmı)
                        Mayın_Tarlası.BakılanButonlar.Add((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) - 1]);
                }
                varmı = false;

                if ( x < 400 )
                {
                    for (int b = 0; b < Mayın_Tarlası.BakılanButonlar.Count; b++)
                        if (int.Parse(ArananButon.Name) + 1 == int.Parse(((Button)Mayın_Tarlası.BakılanButonlar[b]).Name))
                            varmı = true;
                    if (!varmı)
                        Mayın_Tarlası.BakılanButonlar.Add(((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) + 1]));
                }
                varmı = false;

                if ( x > 20 && y > 20 )
                {
                    for (int b = 0; b < Mayın_Tarlası.BakılanButonlar.Count; b++)
                        if ((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) - 21] == (Button)Mayın_Tarlası.BakılanButonlar[b])
                            varmı = true;
                    if (!varmı)
                        Mayın_Tarlası.BakılanButonlar.Add(((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) - 21]));
                }
                varmı = false;

                if ( x < 400 && y > 20 )
                {
                    for (int b = 0; b < Mayın_Tarlası.BakılanButonlar.Count; b++)
                        if ((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) - 19] == (Button)Mayın_Tarlası.BakılanButonlar[b])
                            varmı = true;
                    if (!varmı)
                        Mayın_Tarlası.BakılanButonlar.Add(((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) - 19]));
                }

                varmı = false;
            
                if ( y > 20 )
                {
                    for (int b = 0; b < Mayın_Tarlası.BakılanButonlar.Count; b++)
                        if ((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) - 20] == (Button)Mayın_Tarlası.BakılanButonlar[b])
                            varmı = true;
                    if (!varmı)
                        Mayın_Tarlası.BakılanButonlar.Add(((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) - 20]));
                }
                varmı = false;

                if ( y < 400 )
                {
                    for (int b = 0; b < Mayın_Tarlası.BakılanButonlar.Count; b++)
                        if ((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) + 20] == (Button)Mayın_Tarlası.BakılanButonlar[b])
                            varmı = true;
                    if (!varmı)
                        Mayın_Tarlası.BakılanButonlar.Add(((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) + 20]));
                }
                varmı = false;

                if ( x > 20 && y < 400 )
                {
                    for (int b = 0; b < Mayın_Tarlası.BakılanButonlar.Count; b++)
                        if ((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) + 19] == (Button)Mayın_Tarlası.BakılanButonlar[b])
                            varmı = true;
                    if (!varmı)
                        Mayın_Tarlası.BakılanButonlar.Add(((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) + 19]));
                }
                varmı = false;

                if (x < 400 && y < 400)
                {
                for (int b = 0; b < Mayın_Tarlası.BakılanButonlar.Count; b++)
                    if ((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) + 21] == (Button)Mayın_Tarlası.BakılanButonlar[b])
                        varmı = true;
                if (!varmı)
                    Mayın_Tarlası.BakılanButonlar.Add(((Button)Mayın_Tarlası.Butonlar[int.Parse(ArananButon.Name) + 21]));
                }
            }
        }

        private void button_YeniOyun_Click(object sender, EventArgs e)
        {
            Temizle();
            MayınTarlasıOlustur();   
        }

        private void Temizle()
        {
            Mayın_Tarlası.Butonlar.Clear();
            Mayın_Tarlası.BakılanButonlar.Clear();
            pictureBox_MayınTarlası.Controls.Clear();
            Mayın_Tarlası.gfx.FillRectangle(System.Drawing.Brushes.Blue, Mayın_Tarlası.rect);
            pictureBox_MayınTarlası.Image = Mayın_Tarlası.bmp;
            pictureBox_MayınTarlası.Refresh();
            Mayın_Tarlası.MayınSayısı = 0;    
        }

        private void MayınTarlası_Load(object sender, EventArgs e)
        {
            Define.SiteyiAc();
            Mayın_Tarlası.Load_MayınTarlası();
            MayınTarlasıOlustur();
        }

        private void toolStripMenuItem4_Click(object sender, EventArgs e)
        {
            Mayın_Tarlası.OyunMayınSayısı = 80;
            Temizle();
            MayınTarlasıOlustur();  
        }

        private void toolStripMenuItem3_Click(object sender, EventArgs e)
        {
            Mayın_Tarlası.OyunMayınSayısı = 40;
            Temizle();
            MayınTarlasıOlustur();  
        }

        private void toolStripMenuItem5_Click(object sender, EventArgs e)
        {
            Mayın_Tarlası.OyunMayınSayısı = 100;
            Temizle();
            MayınTarlasıOlustur();  
        }

        private void MayınTarlası_FormClosing(object sender, FormClosingEventArgs e)
        {
            Define.SiteyiAc();
        }

    }
}


UYGULAMAYI İNDİR