Konu: Sayı Bulma Oyunu (Dosyalar kullanılarak) Kullanılabilecek Diller: C veya Pascal
Açıklamalar 1. Program kullanıcı girişi, kullanıcı kayıt, oyunun oynanması ve en yüksek puanları gösteren bölümlerden oluşacaktır. 2. Programda 3 adet dosya kullanılacaktır. • Kullanıcı bilgilerinin tutulduğu dosya (kullanıcı adı, şifre, ad, soyad, mail bilgilerini içerecek) • Puanların tutulduğu dosya (hangi kullanıcının kaç seferde sayıyı tahmin ettiği) • Tahmin edilecek sayının tutulduğu dosya 3.Program başladığında “Yeni kullanıcı kaydı, giriş ve en yüksek 5 puanın listelenmesi” bölümlerinden birisi seçilebilecek. 4.Yeni kullanıcı kaydında, kullanıcının adı,soyadı, maili, kullanıcıadı ve şifresi girilerek dosyaya kaydedilebilmeli. 5.En yüksek puanların listelenmesinde puanların tutulduğu dosya taranarak en yüksek 5 puan bulunup listelenebilmeli. 6.Giriş bölümünde kişi, kullanıcıadı ve şifresini kullanarak oyun oyna bölümüne giriş yapabilmeli. Eğer girilen şekilde bir kullanıcı yoksa oyun oynamaya izin vermemeli. 7. Oyunun oynanması şu şekilde olacaktır. Kullanıcı giriş yaptıktan sonra dosyada bulunan sayıyı tahmin etmeye çalışacaktır. Örnek: Dosyada tutulan sayının 2589 olduğunu varsayalım. 1. Tahmin : 2873 +1 -1 (Bu 2 sayının doğru tahmin edildiği birinin yerinin doğru diğerinin doğru yerde olmadığını ifade eder) 2. Tahmin : 3498 -2 3. Tahmin : 2681 +2 4. Tahmin : 2485 +2 -1 5.Tahmin : 2589 Tebrikler bildiniz. 8. Puanlamayı kullanıcının tahmin sayısına göre belirleyebilirsiniz.(Veya kendinize özgün başka bir şekilde hesaplayabilirsiniz) Kullanıcının kazandığı puan kullanıcı adıyla birlikte dosyaya (puanların tutulduğu dosyaya) kaydedilmelidir. 9. Programa yapacağınız kendinize özgü ilaveler olabilir. Ayrıca görsellik, programın kolay anlaşılır olması size ek puan getirir. 10. Rapor bölüm sayfasından ulaşabileceğiniz rapor esaslarına uygun olarak hazırlanmalıdır.
!!!!!!BEN BIRAZ URASTIM AMA HATALARIM VAR VE PASCAL BILGIM AZ OLDUGUNDAN ICINDEN CIKAMIYORUM!!! ODSYALAMADA SIRALI ERISISMLI DOSYA SISTEMINI SECTIM...FAKAT KAYIT YAPTIGIMDA ESKI KAYDI SILIYO.....AYRICA KULLANICI ADI VARSA TEKRAR GIRISI KABUL ETMEMELI!!!!!!!!!
[PROGRAM sayi_oyunu;
VAR
kadi,sifre:array[1..7] of string[7]; sayac,puan,i,j,a,b,bs,bn,ort,k,arti,eksi,tahs:integer;
c:='e'; bs:=1;bn:=1; while (c<>'h') do BEGIN ort:=trunc((bs+bn)/2); if (ka=kadi[ort]) then BEGIN if(si=sifre[ort])then BEGIN {2.GIRIS VE OYUNUN OYNANACAGI ALAN!!!!!!!} assign(ss,'sayimiz');rewrite(ss); {DEFAULT SAYIYI KAYDETME!!!} ks:='1111'; writeln(ss,ks); close(ss); sayac:=0; tahs:=0; gir:=false; i:=1; puan:=120; while (gir<>true)do BEGIN writeln(ka,' 4 BASAMAKLi SAYIYI TAHMiN ET BAKALIM:='); readln(gsayi); tahs:=tahs+1; sayac:=sayac+10; puan:=puan-sayac; assign(ss,'sayimiz');reset(ss); {DEFAULT SAYIYI CAGIRMA} readln(ss,ks); ksayi:=ks; writeln('kayitli sayimiz',ksayi); arti:=0; eksi:=0; for j:=1 to 4 do BEGIN
for k:=1 to 4 do begin if (ksayi[j]=gsayi[k])then begin
if (k=j) then begin arti:=arti+1; end else if (k<>j)then {!!!!!!!HATA!!!!!!!!EKSI FAZLA HESAPLANIYO!!!!!!}
eksi:=eksi-1;
end; end; END;
write('+',arti);writeln(' ',eksi); if (sayac>=100)then begin writeln('UZGUNUM HAKKINIZ BiTTI :(..... PUANINIZ:=0'); gir:=true; end; if (gsayi=ksayi) then begin writeln('**********************TEBRiKLER ',kad,' SAYIYI BULDUN**********************'); writeln('PUANINIZ:=',puan);
Konu: Sayı Bulma Oyunu (Dosyalar kullanılarak)
Kullanılabilecek Diller: C veya Pascal
Açıklamalar
1. Program kullanıcı girişi, kullanıcı kayıt, oyunun oynanması ve en yüksek puanları gösteren bölümlerden oluşacaktır.
2. Programda 3 adet dosya kullanılacaktır.
• Kullanıcı bilgilerinin tutulduğu dosya (kullanıcı adı, şifre, ad, soyad, mail bilgilerini içerecek)
• Puanların tutulduğu dosya (hangi kullanıcının kaç seferde sayıyı tahmin ettiği)
• Tahmin edilecek sayının tutulduğu dosya
3.Program başladığında “Yeni kullanıcı kaydı, giriş ve en yüksek 5 puanın listelenmesi” bölümlerinden birisi seçilebilecek.
4.Yeni kullanıcı kaydında, kullanıcının adı,soyadı, maili, kullanıcıadı ve şifresi girilerek dosyaya kaydedilebilmeli.
5.En yüksek puanların listelenmesinde puanların tutulduğu dosya taranarak en yüksek 5 puan bulunup listelenebilmeli.
6.Giriş bölümünde kişi, kullanıcıadı ve şifresini kullanarak oyun oyna bölümüne giriş yapabilmeli. Eğer girilen şekilde bir kullanıcı yoksa oyun oynamaya izin vermemeli.
7. Oyunun oynanması şu şekilde olacaktır. Kullanıcı giriş yaptıktan sonra dosyada bulunan sayıyı tahmin etmeye çalışacaktır.
Örnek: Dosyada tutulan sayının 2589 olduğunu varsayalım.
1. Tahmin : 2873
+1 -1 (Bu 2 sayının doğru tahmin edildiği birinin yerinin doğru diğerinin doğru yerde olmadığını ifade eder)
2. Tahmin : 3498
-2
3. Tahmin : 2681
+2
4. Tahmin : 2485
+2 -1
5.Tahmin : 2589
Tebrikler bildiniz.
8. Puanlamayı kullanıcının tahmin sayısına göre belirleyebilirsiniz.(Veya kendinize özgün başka bir şekilde hesaplayabilirsiniz) Kullanıcının kazandığı puan kullanıcı adıyla birlikte dosyaya (puanların tutulduğu dosyaya) kaydedilmelidir.
9. Programa yapacağınız kendinize özgü ilaveler olabilir. Ayrıca görsellik, programın kolay anlaşılır olması size ek puan getirir.
10. Rapor bölüm sayfasından ulaşabileceğiniz rapor esaslarına uygun olarak hazırlanmalıdır.
!!!!!!BEN BIRAZ URASTIM AMA HATALARIM VAR VE PASCAL BILGIM AZ OLDUGUNDAN ICINDEN CIKAMIYORUM!!!
ODSYALAMADA SIRALI ERISISMLI DOSYA SISTEMINI SECTIM...FAKAT KAYIT YAPTIGIMDA ESKI KAYDI SILIYO.....AYRICA KULLANICI ADI VARSA TEKRAR GIRISI KABUL ETMEMELI!!!!!!!!!
[PROGRAM sayi_oyunu;
VAR
kadi,sifre:array[1..7] of string[7];
sayac,puan,i,j,a,b,bs,bn,ort,k,arti,eksi,tahs:integer;
gsayi,ks,ksayi:string[4];
ka,si:string[7];
as,m,kad,s:string;
t,ss,p:text;
secim,c,tus:char;
gir:boolean;
BEGIN
writeln('');
writeln('');
writeln('');
writeln('');
writeln(' *******SAYI BULMA OYUNU******* ');
writeln('');
writeln(' YENi KULLANICI KAYDI [K]');
writeln(' GiRiS [G]');
writeln(' TOP 5 LiSTESi [T]');
writeln(' EXiT [E]');
writeln('');
writeln('');
write(' LUTFEN YUKARIDAKi MENUDEN SECiMiNiZi YAPIN:');
READLN(secim);
CASE secim OF
'k','K':BEGIN {1.KULLANICI KAYIT ISLEMLERI}
assign(t,'kayit');rewrite(t);
write('ADINIZ SOYADINZ:');readln(as);
write('E-Mail ADRESiNiZ:');readln(m);
write('KULLANICI ADI (MAKSIMUM 7 KARAKTER):');readln(kad); {!!!!!!HATA!!!!KAYDIN TEKRAR GIRILMESI KONUSU!!!}
write('SiFRE:');readln(s);
writeln(t,as);
writeln(t,m);
writeln(t,kad);
writeln(t,s);
close(t);
readln;
END ;
'g','G':BEGIN
assign(t,'kayit');reset(t);
i:=1;
while(not eof(t))do
BEGIN
readln(t,as);
readln(t,m);
readln(t,kad);
readln(t,s);
kadi:=kad;sifre:=s;
i:=i+1;
END;
write('KULLANICI ADI:');readln(ka);
write('SiFRE:');readln(si);
c:='e';
bs:=1;bn:=1;
while (c<>'h') do
BEGIN
ort:=trunc((bs+bn)/2);
if (ka=kadi[ort]) then
BEGIN
if(si=sifre[ort])then
BEGIN {2.GIRIS VE OYUNUN OYNANACAGI ALAN!!!!!!!}
assign(ss,'sayimiz');rewrite(ss); {DEFAULT SAYIYI KAYDETME!!!}
ks:='1111';
writeln(ss,ks);
close(ss);
sayac:=0;
tahs:=0;
gir:=false;
i:=1;
puan:=120;
while (gir<>true)do
BEGIN
writeln(ka,' 4 BASAMAKLi SAYIYI TAHMiN ET BAKALIM:=');
readln(gsayi);
tahs:=tahs+1;
sayac:=sayac+10;
puan:=puan-sayac;
assign(ss,'sayimiz');reset(ss); {DEFAULT SAYIYI CAGIRMA}
readln(ss,ks);
ksayi:=ks;
writeln('kayitli sayimiz',ksayi);
arti:=0;
eksi:=0;
for j:=1 to 4 do
BEGIN
for k:=1 to 4 do
begin
if (ksayi[j]=gsayi[k])then
begin
if (k=j) then
begin
arti:=arti+1;
end
else if (k<>j)then {!!!!!!!HATA!!!!!!!!EKSI FAZLA HESAPLANIYO!!!!!!}
eksi:=eksi-1;
end;
end;
END;
write('+',arti);writeln(' ',eksi);
if (sayac>=100)then
begin
writeln('UZGUNUM HAKKINIZ BiTTI :(..... PUANINIZ:=0');
gir:=true;
end;
if (gsayi=ksayi) then
begin
writeln('**********************TEBRiKLER ',kad,' SAYIYI BULDUN**********************');
writeln('PUANINIZ:=',puan);
assign(p,'puanlar');rewrite(p);
writeln(p,kad);
writeln(p,puan);
writeln(p,tahs);
close(p);
gir:=true;
end;
end;
END;{while}
readln;
c:='h'
END;
{!!!!!!!HATA!!!! kullanici adi yanlis girildiginde msj vermeli!!!!!!!!!}
END;
END;{while}
't','T':BEGIN
assign(p,'puanlar');reset(p);
while (not eof(p)) do
BEGIN
readln(p,kad);
readln(p,puan);
readln(p,tahs);
END;{wile}
writeln(kad,' ',puan,' ',tahs,'. TAHMINDE SAYIYI BULDU');
close(p);
readln;
END;
END;{case}
close(t);
READLN;
END.
code][/code]
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.