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

1 Kasım 2020 Pazar

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







    
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;
    }
}



1 Haziran 2020 Pazartesi

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

1 Ocak 2020 Çarşamba

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();
        }
    }
}

   
 

İkinci Örnek : Bütün sayıları farklı olan rastgele bir sayı oluşturalım
 

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 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;

            //tahmin edilecek sayının basamaklarını oluşturalım. Bu sefer 4 basamaklı sayının rakamlarının hepsi birbirinden farklı olsun

            List basamaklar = new List();
            do
            {
                basamaklar.Clear();
                // rastgele 4 basamaklı bir sayı oluşturalım
                randomNumber = randomGenerate.Next(1000, 10000);

                for (int i = 0; i < 4; i++)
                {
                    int basamak = randomNumber % 10;
                    if (!basamaklar.Contains(basamak))
                    {
                        basamaklar.Add(basamak);
                    }
                    randomNumber /= 10;
                }
            } while (basamaklar.Count < 4);

            targetNumber = basamaklar.ToArray();

            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 (int i = 0; i < 4; i++)
                {
                    digitValue[i] = estimatedNumber % 10;

                    estimatedNumber /= 10;

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

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

                if (digitOk == 4)
                {
                    Console.WriteLine("\n **** Tebrikler **** ");
                    break;
                }
            }

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

 
UYGULAMAYI İNDİR

1 Kasım 2019 Cuma

C Sharp Form Uygulamalar Yılan N Merdiven Oyunu Oyna



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form uygulamalar snake n ladder oyunu oynama uygulaması. Sınıf oluşturma ve bu sınfın alanlarını ve özellikelerini tanımlama. Picturebox nesnesini miras alarak yeni bir nesne oluşturma.
ETİKETLER: c sharp class - c sharp picturebox - c sharp oyun - c sharp game - c# picturebox - c# oyun oynama - csharp oyun indir





UYGULAMAYI İNDİR

C# DİĞER OYUN UYGULAMARI
 

 


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.Threading;

namespace C_Sharp_Form_Snake_Ladders_Game
{
    public partial class Form1 : Form
    {
        int oyunSirasi = 0;
        private Oyuncu[] oyuncu = new Oyuncu[2];
        WMPLib.WindowsMediaPlayer wplayer;

        public Form1()
        {
            InitializeComponent();
        }

        private void btnBasla_Click(object sender, EventArgs e)
        {
            btnBasla.Enabled = false;
            btnZarAt.Enabled = true;
            oyuncu[0].Isim = "1. OYUNCU";
            oyuncu[1].Isim = "2. OYUNCU";
            oyunSirasi = 0;
            OyunuYenile();
        }

        private void btnZarAt_Click(object sender, EventArgs e)
        {
            int d = ZarAt();

            int konum = oyuncu[oyunSirasi].Konum;

            if (oyuncu[oyunSirasi].HareketEdebilir)
            {
                if (konum + d < 56)
                {
                    HareketEt(d, konum);
                }
                else
                    MessageBox.Show(oyuncu[oyunSirasi].Isim + " !!! Hareket edemezsiniz", "Uyarı !!!", MessageBoxButtons.OK, MessageBoxIcon.Error);


            }
            else if (d == 6 && oyuncu[oyunSirasi].HareketEdebilir == false)
            {
                oyuncu[oyunSirasi].HareketEdebilir = true;
                MessageBox.Show(oyuncu[oyunSirasi].Isim + " Harekete Başlayabilir.", "Harekete Başla !!!", MessageBoxButtons.OK, MessageBoxIcon.Information);
 

            }

            if (d + konum == 55)
            {
                MessageBox.Show("Tebrikler !!! " + oyuncu[oyunSirasi].Isim + " Kazandı...", "Tebrikler", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                btnBasla.Enabled = true;
                btnZarAt.Enabled = false;
            }

            oyunSirasi = (oyunSirasi + 1) % 2;
        }


        private int ZarAt()
        {
            Random Rastgele = new Random();
            int gelenYuz = Rastgele.Next(1, 7);
            btnZarGelenYuz.Text = gelenYuz.ToString();

            try
            {
  
                wplayer.controls.play();

                //diceSound.Source = new Uri(@"../../Resources/diceRoll.mp3", UriKind.RelativeOrAbsolute);
                //diceSound.Play();
            }
            catch (Exception)
            {
            }

            switch (gelenYuz)
            {
                case 0:
                    this.pictureZar.Image = global::C_Sharp_Form_Snake_Ladders_Game.Properties.Resources.dice0;
                    break;
                case 1:
                    this.pictureZar.Image = global::C_Sharp_Form_Snake_Ladders_Game.Properties.Resources.dice1;
                    break;
                case 2:
                    this.pictureZar.Image = global::C_Sharp_Form_Snake_Ladders_Game.Properties.Resources.dice2;
                    break;
                case 3:
                    this.pictureZar.Image = global::C_Sharp_Form_Snake_Ladders_Game.Properties.Resources.dice3;
                    break;
                case 4:
                    this.pictureZar.Image = global::C_Sharp_Form_Snake_Ladders_Game.Properties.Resources.dice4;
                    break;
                case 5:
                    this.pictureZar.Image = global::C_Sharp_Form_Snake_Ladders_Game.Properties.Resources.dice5;
                    break;
                case 6:
                    this.pictureZar.Image = global::C_Sharp_Form_Snake_Ladders_Game.Properties.Resources.dice6;
                    break;
                default:
                    this.pictureZar.Image = global::C_Sharp_Form_Snake_Ladders_Game.Properties.Resources.dice0;
                    break;
            }
          
            return gelenYuz;
        }

        private void HareketEt(int zar, int konum)
        {
            int yeniKonum=konum+zar;
            int[] yilan_merdiven_noktalari = { 3, 9, 12, 13, 20, 25, 36, 39, 44, 46, 47, 54 };

   
            oyuncu[oyunSirasi].Konum = yeniKonum;
            Thread.Sleep(250);
            if (yilan_merdiven_noktalari.Contains(yeniKonum))
            {
                int[] destination = { 10, 21, 2, 31, 5, 40, 51, 22, 15, 50, 30, 19 };


                for (int i = 0; i < yilan_merdiven_noktalari.Length; i++)
                {
                    if (yeniKonum == yilan_merdiven_noktalari[i])
                    {
                        oyuncu[oyunSirasi].Konum = destination[i];

                        break;
                    }
                }

            }
        }
 
        private void OyunuYenile()
        {
            this.pictureZar.Image = global::C_Sharp_Form_Snake_Ladders_Game.Properties.Resources.dice0;
            oyuncu[0].Konum = 0;
            oyuncu[1].Konum = 0;
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 2; i++)
            {
                oyuncu[i] = new Oyuncu();
                if(i==0)
                oyuncu[i].Image = global::C_Sharp_Form_Snake_Ladders_Game.Properties.Resources.oyuncu1;
                else
                 oyuncu[i].Image = global::C_Sharp_Form_Snake_Ladders_Game.Properties.Resources.oyuncu2;
                oyuncu[i].Name = "oyuncu1";
                oyuncu[i].Size = new System.Drawing.Size(80, 89);
                oyuncu[i].SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
                oyuncu[i].TabIndex = 1;
                oyuncu[i].TabStop = false;
                oyuncu[i].Konum = 0;
                this.Controls.Add(oyuncu[i]);
                oyuncu[i].BringToFront();
            }

            try
            {
                wplayer = new WMPLib.WindowsMediaPlayer();

                wplayer.URL = @"diceRoll.mp3";
            }
            catch
            { }
        }
    }


    class Oyuncu: PictureBox
    {
        List OyunAlaniTumNoktalar;

        private bool hareketEdebilir;
        private string isim;
        private int konum;

        public Oyuncu()
        {
            OyunAlaniTumNoktalar = new List();

            for (int i = 0; i < 56; i++)
            {
                if ((i / 8) % 2 == 0)
                    OyunAlaniTumNoktalar.Add(new Point(1 + 80 * (i % 8), 541 - 89 * (i / 8)));
                else
                    OyunAlaniTumNoktalar.Add(new Point(559 - 80 * (i % 8), 541 - 89 * (i / 8)));
            }
        }
        public string Isim
        {
            get
            {
                return isim;
            }
            set
            {
                isim = value;
            }
        }

        public bool HareketEdebilir
        {
            get
            {
                return hareketEdebilir;
            }
            set
            {
                hareketEdebilir = value;
            }
        }

        public int Konum 
        {
            get
            {
               return konum ;
            }
            set
            {
                konum = value;
                this.Location = OyunAlaniTumNoktalar[konum];
            }
        }
    }
}

   
 

 

UYGULAMAYI İNDİR

C# DİĞER OYUN UYGULAMARI

1 Şubat 2019 Cuma

C Sharp Listview da Kolon Rengini Değiştirme






Bu örnek uygulamada Listview üzerinde 7. kolon (SubItems[6]) tarihleri gösteriyor. Burada amacımız eğer tarih ayın 14 ünü gösterdiğinde 15 olan kolonların BackColor rengini yeşil olarak değiştireceğiz. Tarih 15 ini gösterdiğinde 15 kolonların BakColor rengini kırmızı yapacağız. Diğer kolonların rengini değiştirmeyeceğiz. Bu tarihler dışındaki tarihlerin de backcolor rengini değiştirmeyeceğiz. Bu örnek için Listview form designer kısmında kolonları oluşturulmuştur.

    
DateTime now = DateTime.Now;
if (now.Day == 14)
{
    for (int i = 0; i < yourListview.Items.Count; i++)
    {
        if (yourListview.Items[i].SubItems[6].Text == (new DateTime(now.Year, now.Month, 15)).ToShortDateString())
        {
            yourListview.Items[i].UseItemStyleForSubItems = false;
            yourListview.Items[i].SubItems[6].BackColor = Color.Green;
        }
    }
}
else if (now.Day == 15)
{
    for (int i = 0; i < yourListview.Items.Count; i++)
    {
        if (yourListview.Items[i].SubItems[6].Text == (new DateTime(now.Year, now.Month, 15)).ToShortDateString())
        {
            yourListview.Items[i].UseItemStyleForSubItems = false;
            yourListview.Items[i].SubItems[6].BackColor = Color.Red;
        }
    }
    MessageBox.Show("UYARI", "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else  
{
    for (int i = 0; i < yourListview.Items.Count; i++)
    {
        if (yourListview.Items[i].SubItems[6].Text == (new DateTime(now.Year, now.Month, 15)).ToShortDateString())
        {
            yourListview.Items[i].UseItemStyleForSubItems = false;
            yourListview.Items[i].SubItems[6].BackColor = Color.White;
        }
    }
}            
    
  



1 Kasım 2018 Perşembe

C Sharp Form Sos Oyunu Programı



KONU : C Sharp Uygulamalar - C Sharp ( C# ) formda sos oyunu programı yapımı. c sharp iç içe for döngüsü kullanarak 3x3 matriks alanı oluşturma. C sharp da dinamik olarak textbox oluşturup form üzerine ekleme. C sharp forma eklenen textbox nesnelerini iki boyutlu bir diziye atama. Foreach kullanarak form kontrolleri üzerinde gezinerek textbox kutucuklarının içeriğini temizleme. c sharp try catch kullanılarak hata ile karşılaşılan durumları engelleme. Exception durumunu engelleme örneği. C sharp 3x3 matrikli sos oyunu programı oluşturma.
ETİKETLER: c sharp form - c sharp sos - c sharp sos oyunu - c sharp game - c sharp try catch - c sharp for - csharp foreach



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 sos
{
    public partial class Sos_Oyunu : Form
    {
      
        public Sos_Oyunu()
        {
            InitializeComponent();
        }

        TextBox[,] alanlar;
        int birinci_oyuncu = 0, ikinci_oyuncu = 0;
        int satır_sayısı = 0, sütun_sayısı = 0;
                  
        private void Form_oyun_Load(object sender, EventArgs e)
        {
            /// Sos oyun alanı 3 x 3 matriksi çeklinde olsun
            /// 
            satır_sayısı = 3;
            sütun_sayısı = 3;

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

            /// iç içe for döngüsü kullanarak sos oyun alanını textbox lar kullanarak oluşturalım

            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;


                }
            }
        }

        private void yenitextBox_KeyUp(object sender, KeyEventArgs e)
        {
 
            ///Hangi textbox kutucuğuna karakter girilmiş ise o kutuyu referans alalım
            
            TextBox text = sender as TextBox;
            label1.Focus();

            ///Eğer textbox kutucuguna birden fazla karakter girilmiş ise sadece ilk karakteri
            ///dikkate alalım

            if (text.TextLength > 1)
            {
                text.Text = text.Text.Substring(0, 1);

            }

            text.Text = text.Text.ToUpper();

            ///Eğergirilen karakter S veya o değilse textbox kutucuğunu temizleyelim
            
            if (text.Text != "S" && text.Text != "O")
            {
                text.Text = "";
            }

            ///Oyun da SOS oluştu mu kontrol edelim
           
            for (int i = 0; i < satır_sayısı; i++)
            {
                for (int j = 0; j < sütun_sayısı; j++)
                {
                    bool sosOlduMu = false;

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


                            sosOlduMu = true;
                    }
                    catch (Exception) { }


                    if (sosOlduMu)
                    {
                        MessageBox.Show("SOS :" + text.Text + " OYUNCUSU OYUNU KAZANDI.", "TEBRİKLER", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        break;
                    }
                }
            }
        }

        private void buttonYeniOyun_Click(object sender, EventArgs e)
        {
            foreach (Control item in this.Controls)
            {
                if (item is TextBox)
                {
                    (item as TextBox).Text = "";
                }
            }
        }
    }

}

 

 

UYGULAMAYI İNDİR

C Sharp Form Sos Oyunu Programı


C Sharp Uygulamalar Konsolda Sayı Tahmin Etme Oyunu Oyna


C Sharp Form Uygulamalar Süreli Sayı Tahmin Oyunu


C Sharp Uygulamalar Haritadan Şehir İsmi Bulma Oyunu Oyna


C Sharp Form Uygulamalar Puzzle Oyunu Oyna


C Sharp Form İstenilen Alan Kullanılarak Sos Oyunu Programıa


C Sharp Form Sos Oyunu 5x5


18 Eylül 2018 Salı

Datagridview ve dictioanary kullanarak tabloda tekrarlayan elemanları bir araya toplama


Öğrenci sınav sonuç tablosunda tekrarlaya dataları tek satırda toplam olarak gösterme. Dictionary sınıfından bir örnek oluşturma ve datagridview tablosunu bu nesneden gelen datalar ile doldurma işlemi.

    
 Dictionary < string, Ogrenciler > ogrencilerGruplanmis = new Dictionary < string, Ogrenciler > ();

        private void btnGruplandir_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                // sicil 1 nolu kolonda, sicil gruplanmışta var mı kontrol et. Varsa bu satırdaki değerleri olan gruba ekle
                if (ogrencilerGruplanmis.ContainsKey(dataGridView1[1, i].Value.ToString()))
                {
                    Ogrenciler ogrenci = ogrencilerGruplanmis[dataGridView1[1, i].Value.ToString()];

                    ogrenci.DenemeSayisi += int.Parse(dataGridView1[4, i].Value.ToString());
                    ogrenci.YapilanDenemeSayisi += int.Parse(dataGridView1[5, i].Value.ToString());
                    ogrenci.Dogru += int.Parse(dataGridView1[6, i].Value.ToString());
                    ogrenci.Hatali += int.Parse(dataGridView1[7, i].Value.ToString());
                    ogrenci.Yanlis += int.Parse(dataGridView1[8, i].Value.ToString());
                }
                else
                {
                    Ogrenciler ogrenci = new Ogrenciler();

                    ogrenci.SicilNo = int.Parse(dataGridView1[1, i].Value.ToString());
                    ogrenci.Ad = dataGridView1[2, i].Value.ToString();
                    ogrenci.Soyad = dataGridView1[3, i].Value.ToString();
                    ogrenci.DenemeSayisi = int.Parse(dataGridView1[4, i].Value.ToString());
                    ogrenci.YapilanDenemeSayisi = int.Parse(dataGridView1[5, i].Value.ToString());
                    ogrenci.Dogru = int.Parse(dataGridView1[6, i].Value.ToString());
                    ogrenci.Hatali = int.Parse(dataGridView1[7, i].Value.ToString());
                    ogrenci.Yanlis = int.Parse(dataGridView1[8, i].Value.ToString());

                    ogrencilerGruplanmis.Add(ogrenci.SicilNo.ToString(), ogrenci);
                }
            }

            int satir = 0;
            dataGridView2.Rows.Clear();
            foreach (KeyValuePair item in ogrencilerGruplanmis)
            {
                dataGridView2.Rows.Add();

                Ogrenciler ogrenci = item.Value;
                dataGridView2[0, satir].Value = satir + 1;
                dataGridView2[1, satir].Value = ogrenci.SicilNo;
                dataGridView2[2, satir].Value = ogrenci.Ad;
                dataGridView2[2, satir].Value = ogrenci.Soyad;
                dataGridView2[2, satir].Value = ogrenci.DenemeSayisi;
                dataGridView2[2, satir].Value = ogrenci.YapilanDenemeSayisi;
                dataGridView2[2, satir].Value = ogrenci.Dogru;
                dataGridView2[2, satir].Value = ogrenci.Hatali;
                dataGridView2[2, satir].Value = ogrenci.Yanlis;
                satir++;
            }
        }

    
  

Ogrenciler sınıfı :

    
    
    public class Ogrenciler
    {
        public int SicilNo { get; set; }
        public string Ad { get; set; }
        public string Soyad { get; set; }
        public int DenemeSayisi { get; set; }
        public int YapilanDenemeSayisi { get; set; }
        public int Dogru { get; set; }
        public int Hatali { get; set; }
        public int Yanlis { get; set; }
    }

    
  


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

 

11 Aralık 2017 Pazartesi

C sharp fonksiyon içinde fonksiyon çağırma işlemi





        // Fonksiyon içinde fonksiyon çağırma işlemi :

        private void button1_Click(object sender, System.EventArgs e)
        {
            string data = Oper(VerticalMirror, "lVHt\nJVhv\nCSbg\nyeCt");//), "yeCt\nCSbg\nJVhv\nlVHt"
            data = Opereration(HorizontalMirror, "njMK\ndbrZ\nLPKo\ncEYz");//), "cEYz\nLPKo\ndbrZ\nnjMK"
        }

        // Bu örnekte iki fonksiyonumuz var. Birincisi VerticalMirror, girdi olarak string data alıyor
        // Girdi olarak verilen datayı dizi formatına çevirip, dizi içindeki karakterleri dikey olarak aynalıyor

        public  static string VerticalMirror(string strng)
        {
            string[] data = strng.Split('\n');
            char[] chardata;

            for (int i = 0; i < data.Length ; i++)
            {
                chardata = data[i].ToArray();
                Array.Reverse(chardata);
                data[i] = new string(chardata);
            }
            return string.Join("\n", data);
        }

        // İkincisi HorizontalMirror, girdi olarak string data alıyor
        // Girdi olarak verilen datayı dizi formatına çevirip, dizi içindeki karakterleri yatay olarak aynalıyor

        public  static string HorizontalMirror(string strng)
        {
            string[] data = strng.Split('\n');
            Array.Reverse(data);
            return string.Join("\n", data);
        }

        // Burada Operation isminde bir metodumuzda metot içinde metot çağırarak, istenilen işlemi fonksiyon içinde
        // fonksiyonu parametre alarak ilgili fonksiyonu çağırılmasını sağlıyor. Bunun için System.Func fonksiyonunu kullanıyoruz
  
        public static string Opereration(Func< string, string > fct, string s)
        {
            return fct(s);
        }
     

9 Aralık 2017 Cumartesi

C sharp dizinin elemanları döngü ve fonksiyon kullanarak toplamını hesaplama





5 farklı yöntem ile dizinin bütün elemanlarının toplamını hesaplama:

        public int Dizi_Toplama_1(int[] array)
        {
            int toplam = 0;

            // for döngüsü kullanarak dizinin bütün elemanlarını toplama
            for (int i = 0; i < array.Length; i++)
            {
                toplam += array[i];
            }
            return toplam;
        }

        public int Dizi_Toplama_2(int[] array)
        {
            int toplam = 0;
            // foreach döngüsü kullanarak dizinin bütün elemanlarını toplama
            foreach (int item in array)
            {
                  toplam += item;
            }
            return toplam;
        }

        public int Dizi_Toplama_3(int[] array)
        {
            int toplam = 0, i = -1;
            // whike döngüsü kullanarak dizinin bütün elemanlarını toplama
            while (++i < array.Length)
            {
                toplam += array[i];
            }
            return toplam;
        }

        public int Dizi_Toplama_4(int[] array)
        {
            int toplam = 0, i = 0;
            // do whike döngüsü kullanarak dizinin bütün elemanlarını toplama
            do
            {
                toplam += array[i];
            } while (++i < array.Length);
            return toplam;
        }

        public int Dizi_Toplama_5(int[] array)
        {
            //dizinin Sum fonksiyonunu kullanarak dizinbütün elemanlarını toplama
            return array.Sum();
        }

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();
        }





Verilen bir dizinin sol ve sağ tarafının toplamı eşit olan indeksini bulma





Bir dizi tam sayı verilecektir. Göreviniz bu diziyi alıp N'nin solundaki tamsayıların toplamının N sağındaki tam sayıların toplamına eşit olduğu bir dizinin N indeksini bulmanızdır. Bunun gerçekleşmesini sağlayacak bir dizi verilmemişse fonksiyonumuz -1 dönecek.

Örneğin:

Diyelim ki {1,2,3,4,3,2,1} dizisi verildi:
Dizinin 3. konumunda indeksin sol tarafının toplamı ({1,2,3}) ve indeksin sağ tarafının toplamı ({3,2, 1}) ikisi de eşittir 6. Bu durumda fonksiyon dizinin indeksi olarak 3 döndürür.

Başka birine bakalım.
Size {1,100,50, -51,1,1} dizisi verildi:
Dizinin 1. konumunda, dizinin sol tarafının toplamı ({1}) ve dizinin sağ tarafının toplamı ({50, -51,1,1}) toplamı 1 dir. Her iki tarafın toplamı 1 dir. Bu durumda fonksiyon dizinin indeksi olarak 1 döndürür.

Örnek fonksiyon aşağıdaki gibidir:


       
        public static int FindEvenIndex(int[] arr)
        {
            int left = 0,right = 0;
            for (int i = 0; i < arr.Length; i++)
            {
                right = 0;
                for (int j = i+1; j < arr.Length; j++)
                {
                    right += arr[j];
                }
                if (left == right)
                    return i;
                else left += arr[i];
            }

            return -1;
        }



1 Kasım 2017 Çarşamba

C Sharp Uygulamalar Resmi Parçalara Bölme - Resmi Parçalara Bölme Programı



KONU : C Sharp Uygulamalar - C Sharp ( C# ) Form Uygulamalar bir resmi küçük parçalara bölme, bitmap grafik nesnesini daha küçük parçalara bölme, c sharp uygulamalar resmi parçalara bölme, c# uygulamalar resmi parçalara bölme, c sharp uygulamaları grafik nesnesini kullanarak resmi parçalara bölme, c sharp uygulamalar resmi parçalara ayırma örnekler.




UYGULAMAYI İNDİR
 




//parçaları ayırdığımız resimlerin her parçasını image olarak bir generic list içinde saklayalım

List< image > parcaResimler = new List< image >();

Bitmap resim;

Graphics gr = null;

Image alinanResim = Image.FromFile(@"C:\alinan.jpg");


// Bölmek istediğimiz resmi kaç sütuna ayıracağımızı girelim

int sutunSayisi = 2;


//Bölmek istediğimiz resmi kaç satıra ayırcağımızı girelim

int satirSayisi = 5;

int x = 0;

int y = 0;


// for döngüsünü kullanarak resmi parçalara ayırmaya başlayalım


for (int i = 0; i < satirSayisi; i++)
{

    for (int k = 0; k < sutunSayisi; k++)
    {

        Rectangle seçili_alan = new Rectangle(x, y, alinanResim.Width / sutunSayisi, alinanResim.Height / satirSayisi);

        //Seçili alan büyüklüğünde bir Bitmap oluştur

        resim = new Bitmap(seçili_alan.Width, seçili_alan.Height);

        //Bu Bitmap için grafik nesnesi oluştur

        gr = Graphics.FromImage(resim);

        //Picture Box içindeki resmi yeni resmin 0,0 noktasına çiz

        gr.DrawImage(alinanResim, 0, 0, seçili_alan, GraphicsUnit.Pixel);

        //Yeni resmi parcaResimler içine image olarak kaydet

        parcaResimler.Add(resim);

        x += alinanResim.Width / sutunSayisi;

    }

    y += alinanResim.Height / satirSayisi;

    x = 0;
}

//grafik nesnesini sonlandır

gr.Dispose();


 

UYGULAMAYI İNDİR

1 Mart 2017 Çarşamba

C Sharp Form Uygulamalar Puzzle Oyunu Oyna



KONU : C Sharp Uygulamalar - C Sharp ( C# ) form uygulamalar puzzle oyunu oyna.
ETİKETLER: c sharp puzzle - c sharp puzzle game - c sharp picturbox - c# puzzle game - c# puzzle oyunu





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_Puzzle_Game
{
    public partial class MAinForm : Form
    {
        private Point bosYer;
        private int saniye = 0;
        private int dakika = 0;

        List< Image > resimParcalari = new List< Image >();
        List< PictureBox > resimAlanlari = new List< PictureBox >();
        Bitmap CurrentBitmapImage;


        public MAinForm()
        {
            InitializeComponent();
        }

        private void Form2_Load(object sender, EventArgs e)
        {
            CurrentBitmapImage = new Bitmap(C_Sharp_Puzzle_Game.Properties.Resources.resim, new Size(375, 375));

            YeniOyun();
        }

        private void YeniOyun()
        {

            for (int i = 0; i < resimAlanlari.Count; i++)
            {
                this.Controls.Remove(resimAlanlari[i]);
            }
           
            resimAlanlari.Clear();
            resimParcalari.Clear();

            tumresim.Location = new Point(550, 50);
            tumresim.BorderStyle = BorderStyle.FixedSingle;
            tumresim.Size = new System.Drawing.Size(375, 375);
            tumresim.Image = CurrentBitmapImage.Clone(new Rectangle(new Point(0, 0), new Size(375, 375)), System.Drawing.Imaging.PixelFormat.DontCare);

            for (int i = 0; i < 9; i++)
            {
                resimParcalari.Add(CurrentBitmapImage.Clone(new Rectangle(new Point(i / 3 * 125, i % 3 * 125), new Size(125, 125)), System.Drawing.Imaging.PixelFormat.DontCare));
            }

            List< int > resimDagilimi = new List< int >();
            Random rastgele = new Random();

            for (int i = 0; i < 8; i++)
            {
                int resimNo = rastgele.Next(8);
                if (!resimDagilimi.Contains(resimNo))
                {
                    resimDagilimi.Add(resimNo);
                }
                else
                {
                    i--;
                }

            }

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    if (!(j == 2 && i == 2))
                    {
                        PictureBox resim = new PictureBox();
                        resim.Click += new EventHandler(p_Click);
                        resim.Location = new Point(125 * i + 50, 125 * j + 50);
                        resim.BorderStyle = BorderStyle.FixedSingle;
                        resim.Size = new System.Drawing.Size(125, 125);
                        resim.Tag = resimDagilimi[i * 3 + j].ToString();
                        resim.Image = resimParcalari[resimDagilimi[i * 3 + j]];
                        resimAlanlari.Add(resim);
                        this.Controls.Add(resim);
                    }
                    else
                    {
                        bosYer = new Point(125 * 2 + 50, 125 * 2 + 50);
                    }
                }
            }

            timer.Enabled = true;
            saniye = 0;
            dakika = 0;
            lblDakika.Text = dakika.ToString("00");
            lblSaniye.Text = saniye.ToString("00");
        }

        void p_Click(object sender, EventArgs e)
        {
            PictureBox resim = (PictureBox)sender;

            if ((resim.Location.X - 125 == bosYer.X) && (resim.Location.Y == bosYer.Y))
            {
                resim.Location = bosYer;
                bosYer.X += 125;
                this.Focus();
            }
            else if (resim.Location.X + 125 == bosYer.X && (resim.Location.Y == bosYer.Y))
            {
                resim.Location = bosYer;
                bosYer.X -= 125;
                this.Focus();
            }
            else if (resim.Location.Y - 125 == bosYer.Y && (resim.Location.X == bosYer.X))
            {
                resim.Location = bosYer;
                bosYer.Y += 125;
                this.Focus();
            }

            else if (resim.Location.Y + 125 == bosYer.Y && (resim.Location.X == bosYer.X))
            {
                resim.Location = bosYer;
                bosYer.Y -= 125;
                this.Focus();
            }

            bool durum = OyunDurumunuKontrolEt();

            if (durum)
            {
                timer.Enabled = false;

                MessageBox.Show("Tebrikler oyunu tamamladınız","Bilgi",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
            }
        }

        private bool OyunDurumunuKontrolEt()
        {
            bool durum = true;
            for (int i = 0; i < resimAlanlari.Count; i++)
            {
                int id = int.Parse(resimAlanlari[i].Tag.ToString());

                if (!(resimAlanlari[i].Location.X == (id / 3) * 125 + 50 && resimAlanlari[i].Location.Y == (id % 3) * 125 + 50))
                {
                    durum = false;
                    break;
                }
            }


            return durum;
        }

        private void btnBaşlat_Click(object sender, EventArgs e)
        {
            YeniOyun();
        }

        private void btnDuraklat_Click(object sender, EventArgs e)
        {
            timer.Enabled = !timer.Enabled;
        }

        private void btnCik_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void timer_Tick(object sender, EventArgs e)
        {
            if (saniye++ == 60)
            {
                lblDakika.Text = dakika++.ToString("00");
                saniye = 0;
            }

            lblSaniye.Text = saniye.ToString("00");
                    
        }
    }
}
 

 

UYGULAMAYI İNDİR

1 Kasım 2016 Salı

C Sharp Konsol 100 Sayıyı Küçükten Büyüğe ve Büyükten Küçüğe Doğru Sıralama

KONU : C Sharp Uygulamalar - C Sharp ( C# ) Random nesnesi kullanılarak oluşturulan 100 farklı elemanlı bir sayı dizisinin elemanlarını küçükten büyüğe doğru sıralama ve büyükten küçüğe doğru sıralama. Array sınıfının Sort() ve Reverse() metodlarını kullanarak sıralama yapma. c sharp konsol ekranında sayıları büyükten küçüğe doğru sıralama ve sayıları küçükten büyüğe doğru sıralama örneği. c sharp konsol sayıları sıralama örneği.
ETİKETLER: c sharp Array - c sharp sort - c sharp reverse - c sharp dizi - c sharp sıralama - c# array sort - c# array reverse


UYGULAMAYI İNDİR
 

 

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

namespace C_Sharp_Rastgele_100_Sayiyi_Siralama
{
    class Program
    {
        static void Main(string[] args)
        {
            Random rastgeleSayi = new Random();

            //100 elamanlı bir dizi tanımlayalım.
            int[] dizi = new int [100];

            //bu uygulamada 100 tane rastgele farklı sayılar oluşturalım. 
            // Not: Console read fonksiyonu kullanarak sayıları konsoldan da girebiliriz.

            for (int i = 0; i < 100; i++)
            {
               int yeniSayi = rastgeleSayi.Next(0,1000);
               if (dizi.Contains(yeniSayi))
               {
                   //Eğer daha önce eklenmiş bir sayı ise yeni sayı bulmak için
                   i--;
               }
               else
               {
                   dizi[i] = yeniSayi;
               }

            }

            //rastgele oluşturulmuş bu diziyi console ekrana yazdıralım

            Console.Write("\n\nRasgele dizimiz\n\n" + dizi[0]);


            for (int i = 1; i < dizi.Length; i++)
            {
                Console.Write(" , " + dizi[i]);
            }


            //Burada rastgele oluştuduğum diziyi for döngüleri kullanarak küçükten büyüğe 
            // doğru sıralayacağım.

            int yedek = 0;

            for (int i = 0; i < dizi.Length; i++)
            {
                for (int j = i + 1; j < dizi.Length; j++)
                {
                    if (dizi[j] < dizi[i])
                    {
                        yedek = dizi[i];

                        dizi[i] = dizi[j];

                        dizi[j] = yedek;

                    }
                }
            }


            //dizinin küçükten büyüğe doğru sıralama ve konsol ekranına (console screen)

            //yazdırma işlemini aşağıdaki gibi yapalım.

            Console.Write("\n\nDizimizin küçükten büyüğe doğru sıralanması\n\n" + dizi[0]);

            for (int i = 1; i < dizi.Length; i++)
            {
                Console.Write(" , " + dizi[i]);
            }

            //Şimde dizimizi büyükten küçüğe sıralama işlemini for döngüleri kullanarak yapacağım

            for (int i = 0; i < dizi.Length; i++)
            {
                for (int j = i + 1; j < dizi.Length; j++)
                {
                    if (dizi[j] > dizi[i])
                    {
                        yedek = dizi[i];

                        dizi[i] = dizi[j];

                        dizi[j] = yedek;

                    }
                }
            }


            //dizinin büyükten küçüğe doğru sıralama ve konsol ekranına (console screen)

            //yazdırma işlemini aşağıdaki gibi yapalım.

            Console.Write("\n\nDizimizin büyükten küçüğe doğru sıralanması\n\n" + dizi[0]);

            for (int i = 1; i < dizi.Length; i++)
            {
                Console.Write(" , " + dizi[i]);
            }



            //Tek Boyutlu Dizilerde Diziyi Tersine Çevirmek İçin Reverse metodunu kullanabiliriz.

            //Array sınıfının static Reverse metodunu kullanarak diziyi tersine çevirelim

            Array.Reverse(dizi);

            // Tersine çevrilmiş diziyi kosnol ekranına yazdıralım   

            Console.Write("\n\nDizimizin ters çevrilmiş hali\n\n" + dizi[0]);

            for (int i = 1; i < dizi.Length; i++)
            {
                Console.Write(" , " + dizi[i]);
            }


            //Tek Boyutlu Dizilerde Diziyi Küçükten Büyüğe Sıralamak İçin Sort metodunu kullanalım

            Array.Sort(dizi);

            //dizinin küçükten büyüğe doğru sıralama ve konsol ekranına (console screen)

            //yazdırma işlemini aşağıdaki gibi yapalım.

            Console.Write("\n\nDizimizin küçükten büyüğe doğru sıralanması\n\n" + dizi[0]);

            for (int i = 1; i < dizi.Length; i++)
            {
                Console.Write(" , " + dizi[i]);
            }

            //küçükten büyüğe sıralan dizi ters çevrilirse sıralanma şekli

            //büyükten küçüğe doğru olmuş olur

            Array.Reverse(dizi);

            //dizinin büyükten küçüğe doğru sıralama ve console ekranın yazdırma

            Console.Write("\n\nDizimizin büyükten küçüğe doğru sıralanması\n\n" + dizi[0]);

            for (int i = 1; i < dizi.Length; i++)
            {
                Console.Write(" , " + dizi[i]);
            }


            //--------------------------------------------
            Console.ReadKey();

        }
    }
}

 


 

UYGULAMAYI İNDİR

7 Nisan 2016 Perşembe

C Sharp Konsol Mükemmel Sayı Kontrolü Yapan Program - Mükemmel Sayı Bulma Örnekleri



KONU : C Sharp ( C# ) Konsol uygulamalar girilen bir sayının mükemmel sayı olup olmadığını bulma, c sharp konsoldan ekrana girilen sayıların kendisinden küçük bölenlerini bulma, c sharp konsoldan girilen sayıların kendisinden küçük bölenlerinin toplamını bulma C Sharp konsol jenerik int tipinde liste oluşturma, c sharp konsol for döngü örnekleri, c sharp konsol if örnekleri, c sharp toplam hesaplama örnekleri





UYGULAMAYI İNDİR
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace C_Sharp_Konsol_Mükemmel_Sayı_Bulma
{
    class Program
    {
        static void Main(string[] args)
        {
            int girilen_sayi = 0;

            int toplam = 0;

            Console.Write("\n\n Mükemmel Sayı Bulma ");

            Console.Write("\n\n Bir Sayı Giriniz :\n\n Girilen Sayı : ");

            girilen_sayi = int.Parse(Console.ReadLine());

            List< int > bölenler = new List< int >();

            bölenler.Clear();

            for (int i = 1; i < girilen_sayi; i++)
            {
                if (girilen_sayi % i == 0)
                {
                    bölenler.Add(i);
                }
            }

            for (int i = 0; i < bölenler.Count; i++)
            {
                toplam += bölenler[i];
            }

            if (toplam == girilen_sayi)
            {
                Console.WriteLine("\n\nGirilen {0} sayısı Mükemmel sayıdır.", girilen_sayi);
            }
            else
            {
                Console.WriteLine("\n\nGirilen {0} sayısı Mükemmel sayı değildir.", girilen_sayi);
            }

            Console.ReadKey();
        }
    }
}


UYGULAMAYI İNDİR