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