21 Aralık 2009 Pazartesi

2_tahmin_oyunu

Klasik sayı tahmini .
İçinde 0 ve aynı sayılar olmayan  4 rakamlı sayıyı bulmaya çalışıyorsunuz.
Basamak yerleri doğru her rakam için " + " sayısını ,
Basamak yerleri hatalı her rakam için " - "  sayısını üretiyor.
not : Kodu yazdıktan sonra bilg. tuttuğu sayıyı gizlemesi için
writeln('rnd');  satırını silin.

uses crt;


var

r1,r2,r3,r4,my1,my2,my3,my4:real;

mynum,rnd,arti,eksi,j:integer;

k:char;

label

basla,sayi,bitti;

begin

r1:=0;

r2:=0;

r3:=0;

r4:=0;

arti:=0;

eksi:=0;

basla:

rnd:=1;

randomize;

rnd:=random(9876);

clrscr;

writeln(rnd);

r1:=rnd div 1000;

r2:=(rnd div 100)-(r1*10);

r3:=(rnd div 10)-((rnd div 100) *10);

r4:=rnd-((rnd div 10) *10);

if rnd<1234

then

goto basla;

if(r1=0) or (r2=0)or(r3=0)or(r4=0)or(r2=r1)or(r3=r1)or(r4=r1)or(r2=r3)or(r2=r4)or(r3=r4)

then

goto basla;

j:=0;

writeln;

writeln('icinde 0 ve ayni sayi olmayan 4 basamakli bir sayi tahmin ediniz ');

writeln('herhangibir anda oyundan cikmak icin " 1 " e bas');

sayi:

j:=j+1;

arti:=0;

eksi:=0;

writeln;

writeln(j,' nci tahmin sayinizi giriniz');

writeln;

readln(mynum);

if mynum=1

then goto bitti;

my1:=mynum div 1000;

my2:=(mynum div 100)-(my1*10);

my3:=(mynum div 10)-((mynum div 100) *10);

my4:=mynum-((mynum div 10) *10);

if (mynum<1234) or (mynum>9876)

then

goto sayi;

if(my1=0) or (my2=0)or(my3=0)or(my4=0)or(my2=my1)or(my3=my1)or(my4=my1)or(my2=my3)or(my2=my4)or(my3=my4)

then

{writeln(rnd);}

goto sayi;

{writeln(rnd);}

{writeln(mynum);}

if my1=r1

then arti:=arti+1;

if my2=r2

then arti:=arti+1;

if my3 = r3

then arti:=arti+1;

if my4 = r4

then arti:=arti+1;

if my1=r2

then eksi:=eksi+1;

if my1=r3

then eksi:=eksi+1;

if my1=r4

then eksi:=eksi+1;

if my2=r1

then eksi:=eksi+1;

if my2=r3

then eksi:=eksi+1;

if my2=r4

then eksi:=eksi+1;

if my3=r1

then eksi:=eksi+1;

if my3=r2

then eksi:=eksi+1;

if my3=r4

then eksi:=eksi+1;

if my4=r1

then eksi:=eksi+1;

if my4=r2

then eksi:=eksi+1;

if my4=r3

then eksi:=eksi+1;

writeln;

writeln(arti,' arti.....',eksi,' eksi.....');

if mynum<>rnd

then goto sayi;

writeln;

writeln(arti,' arti.....',eksi,' eksi.....',' **** tebrikler sayiyi ',j,' tahminde buldunuz ***' );

writeln;

writeln('tamam mi ? // devam mi? =====> E / H ');

writeln;

readln(k);

if (k='E') or (k='e')

then

goto basla;

bitti:

writeln('game over...ENTER');

readln;

end.

Hiç yorum yok: