Şimdi Ara

!!!!!ARKADASLAR COK ACIL PASCAL DA SORUM VAR!!!!!

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
233
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • soru

    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]







  • Kodu tam incelemedim ama her seferinde bir önceki kaydı silmesinin nedeni dosyayı açma modunuzdur. dosyayı bir kere oluşturunuz sonra dosyayı ekleme modunda açınız problem çözülecektir.
    Kolay gelsin.
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.