­čö« ┼×ans Oyunu

ÔŁô Soru

┼×ans oyunundaki say─▒lar iki farkl─▒ kutudan rastgele se├žilmektedir. 49 adet beyaz top bulunan kutudan 5 farkl─▒ top, 42 adet k─▒rm─▒z─▒ top bulunan kutudan bir top se├žilmektedir. Math.random() komutunu kullanarak rastgele se├žimle ┼čans toplar─▒n─▒ belirleyin.

Not: ─░lk kutudaki say─▒lar tekrar edemez, 5 beyaz top 1-49 aras─▒nda farkl─▒ de─čerlere sahip olacakt─▒r. K─▒rm─▒z─▒ top ise 30-72 aras─▒nda bir de─čer alacakt─▒r.

ÔŤô Program K─▒s─▒mlar─▒

  1. Farkl─▒ rastgele say─▒lar ├╝retmek.

  2. Say─▒lar─▒ ekrana yazd─▒rmak.

­čĹô ├ç├Âz├╝m Y├Ântemi

  • ─░ki say─▒ aras─▒nda rastgele tam say─▒ ├╝retmek i├žin a┼ča─č─▒daki komut kullan─▒l─▒r:

    rastgele = (int)(Math.random()*(Max-Min=1)+Min); (Max ve Min de─čerleri dahil)
  • ├ťretilen say─▒lar─▒n tekrarlanmas─▒n─▒ engellemek i├žin:

    1. N+1ÔÇÖlik boolean tipinden A dizisi olu┼čturulur.

    2. Say─▒ ├╝retildikten sonra A[say─▒] == false say─▒ ilk defa ├╝retiliyor anlam─▒na gelir. Bu say─▒n─▒n kullan─▒ld─▒─č─▒n─▒ belirtmek i├žin A[say─▒] = true yap─▒l─▒r. A[say─▒] == false de─čilse say─▒ ├Ânceden ├╝retilmi┼č anlam─▒na gelir o y├╝zden tekrar rastgele komutu verilir.

­čĹęÔÇŹ­čöž ├ç├Âz├╝m Ad─▒mlar─▒

  1. De─či┼čkenlerin tan─▒mlanmas─▒.

  2. 5 kere d├Ânen d├Âng├╝n├╝n olu┼čturulmas─▒

    • b=0

    • b=0 oldu─ču s├╝rece:

    • beyaz ├╝retilip yazd─▒r─▒l─▒r.

  3. kirmizin─▒n ├╝retilip yazd─▒r─▒lmas─▒.

­čĄľ Kod

ÔÜÖ C++ Kodu

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
// De─či┼čkenlerin tan─▒mlanmas─▒
bool beyaz_top[50];
int beyaz, kirmizi, i, b;
cout << "Beyaz Toplar: ";
srand(time(NULL));
// 5 kere d├Ânen d├Âng├╝n├╝n olu┼čturulmas─▒
for (i = 0; i < 5; i++) {
b = 0;
while (b == 0) {
// `beyaz` ├╝retilip yazd─▒r─▒l─▒r
beyaz = rand() % (49) + 1;
if (beyaz_top[beyaz] == false) {
cout << beyaz << "\t";
b = 1;
beyaz_top[beyaz] = true;
}
}
}
// `kirmizi`n─▒n ├╝retilip yazd─▒r─▒lmas─▒
kirmizi = rand() % (43) + 30;
cout << "\nKirmizi Top: " << kirmizi;
return 0;
}

­čÉŹ Python Kodu

import random
beyaz_top = [False] * 50
print("Beyaz Toplar: ")
for i in range(0, 5):
b = 0
while b == 0:
beyaz = random.randint(1, 50)
if beyaz_top[beyaz] == False:
print(beyaz)
b = 1
beyaz_top[beyaz] = True;
ÔÇő
kirmizi = random.randint(30, 73)
print("Kirmizi Top: ", kirmizi)

ÔśĽ Java Kodu

public class SansOyunu {
public static void main(String arg[]) {
boolean beyaz_top[] = new boolean[50];
int beyaz, kirmizi, i, b;
System.out.print("Beyaz Toplar: ");
for (i = 0; i < 5; i++) {
b = 0;
while (b == 0) {
beyaz = (int)(Math.random() * 48 + 1);
if (beyaz_top[beyaz] == false) {
System.out.print(beyaz + "\t");
b = 1;
beyaz_top[beyaz] = true;
}
}
}
kirmizi = (int)(Math.random() * 42 + 30);
System.out.print("\nKirmizi Top: " + kirmizi);
}
}

­čÄë Ekran ├ç─▒kt─▒s─▒

Beyaz Toplar: 37 19 16 3 20
Kirmizi Top: 54

­čĺí Notlar

  1. Haf─▒zada fazla yer kaplamamak i├žin kontrol dizisini boolean tipinden tan─▒mlad─▒k.