🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #520

Re: Uwaga, lamer :))

#520
From: Czesiek Dlugolecki
Date: Sat, 03 Jan 1998 20:42
148 lines
4117 bytes
Przemyslaw Frasunek wrote in message
<86en2qnccw.fsf@izlpc131.am.lublin.pl>...
>Właśnie się uczę pisać w C. Napisałem przed chwilą coś na kształt mojego
>pierwszego programiku:

    Ja tez przejzalem i mam nastepujace wnioski. Po pierwsze primo ;)
           x+=y; nie znaczy ze x=y a znaczy x=x+y i to powod wielu bledow
    Po drugie kwestia generowania liczb losowych (pseudo):
          u ciebie test sprawdza caly czas ten sam pierwiastek
          u mnie jest troche lepiej :))) ale nie wiem jak to dobrze zrobic w
c linuxowym, bo w dosie jest inaczej.
    Po trzecie mniej zmiennych zewnetrznych

teraz przejrzyj:

[CUT HERE]
include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define ESC 'x'
#define MAXPIERW 28
#define ILOSC 20
#define SZYBKOSC 5
static short i=0, j=0, pozycja=0, punkty=0, los=0, licznik=0;
static char ch;
static char symb[3]="\0";
static char outstr[6]="\0";
static short firstletter=0, ok=0;
typedef struct _REC_pierwiastek
{
  char symbol[3];
  char nazwa[11];
}pierw;
static pierw pierwiastek[MAXPIERW] = {
{ "Na", "SOD" },
{ "K", "POTAS" },
{ "Ca", "WAPN" },
{ "Mg", "MAGNEZ" },
{ "Al", "GLIN" },
{ "Fe", "ZELAZO" },
{ "Cu", "MIEDZ" },
{ "Zn", "CYNK" },
{ "Pb", "OLOW" },
{ "Cl", "CHLOR" },
{ "S", "SIARKA" },
{ "O", "TLEN" },
{ "N", "AZOT" },
{ "C", "WEGIEL" },
{ "H", "WODOR" },
{ "P", "FOSFOR" },
{ "Si", "KRZEM" },
{ "Ag", "SREBRO" },
{ "Au", "ZLOTO" },
{ "Pt", "PLATYNA" },
{ "Ra", "RAD" },
{ "Hg", "RTEC" },
{ "Sn", "CYNA" },
{ "Po", "POLON" },
{ "Br", "BROM" },
{ "I", "JOD" },
{ "He", "HEL" },
{ "Ar", "ARGON" }
};
//tez nie wiem jak to jest w linuxie wiec zrobilem tak dziwnie
//w dosie getche()
char readkey()
{
  char r;
  r=getchar();
  return r;
}
static void welcome()
{
 printf("SYMBOLE CHEMICZNE - Moj pierwszy programik\n");
 printf("s - start\n");
 printf("x - wyjscie z programu\n");
  do{
     // scanf("%c",&ch);
 ch=readkey();
    }while (ch == 's' || ch == ESC);
    if (ch == 's')los=5; //(random()%MAXPIERW+1); to wogole nie potrzebne tu
     if (ch == ESC)exit(0);
}
static void zle(void)
{
  printf("ZLE! Ma byc %s\n", symb);
  punkty--;
}

static void dobrze()
{
  punkty++;
  sprintf(outstr, "%2d", punkty);
  printf("Punkty: %s\n", outstr);
  printf("DOBRZE!\n");
}
static void ocena()
{
  sprintf(outstr, "%3ld", (long)ILOSC);
  printf("Ilosc pytan: %s\n", outstr);
  sprintf(outstr, "%3d", punkty);
  printf("Punkty: %s\n", outstr);
}
main(int argc,char *argv[])
{
welcome();
punkty = 0;
for(licznik=1;licznik<=ILOSC;licznik++)
{
 los=rand()%MAXPIERW+1;
 puts(pierwiastek[los-1].nazwa);
 strcpy(symb, pierwiastek[los-1].symbol);
 ok = 0;
 firstletter = 0;
 do {
     //scanf("%c",&ch);
     ch=readkey();
     if (ch == ESC){exit(0);}
     else
     {
       if (firstletter == 0)
       {
         if(strlen(symb) == 1){if (toupper(symb[0]) == toupper(ch))ok = 1;}
         else {
  if (toupper(symb[0]) == toupper(ch))firstletter = 1;
       }
       }
       else
       {
          if (toupper(symb[1]) == toupper(ch))ok = 1;
          else {ok=0;firstletter=2;}
       }
     }
 } while (!(ch == ESC || ok == 1 || firstletter==2));
    if (ok == 1)
      dobrze();
    if (ok == 0)
     zle();
    }
    ocena();
}
[CUT HERE]

Jak bedziesz mial jakies watpliwosci napisz

Czesiek Dlugolecki dlugi@kki.net.pl
                                    elessar@polbox.com
Technical Details
Message-ID: <68m7pd$os6$1@sunsite.icm.edu.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!not-for-mail
References: <86en2qnccw.fsf@izlpc131.am.lublin.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!not-for-mail
From: "Czesiek Dlugolecki" <dlugi@kki.net.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Uwaga, lamer :))
Date: Sat, 3 Jan 1998 21:42:03 +0100
Organization: ICM's news server
Lines: 151
Message-ID: <68m7pd$os6$1@sunsite.icm.edu.pl>
References: <86en2qnccw.fsf@izlpc131.am.lublin.pl>
NNTP-Posting-Host: ppp2-cst139.warszawa.tpnet.pl
X-Newsreader: Microsoft Outlook Express 4.71.1712.3
X-MimeOLE: Produced By Microsoft MimeOLE V4.71.1712.3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit