Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Czy tak robi się język skryptowy?

Ostatnio zmodyfikowano 2012-08-25 18:48
Autor Wiadomość
klex234
Temat założony przez niniejszego użytkownika
Czy tak robi się język skryptowy?
» 2012-08-23 16:58:23
oto kod:

C/C++
#include <iostream>
#include <windows.h>
#include <string>
#include <conio.h>

using namespace std;


int main() {
   
    int a = 1;
    string b, c, d;
   
   
    while( a == 1 )
    {
        cout << ">";
        getline( cin, b );
       
       
        if( b.find( "exit" ) == 0 ) { return 0; } // zamyka program
        if( b.find( "echo" ) == 0 ) { if( b.find( " " ) == 4 ) { b.erase( 0, 5 ); cout << b << endl; } else { cout << "Error!" << endl; } } // mało wydajne ale innego pomysłu nie miałem
       
       
       
       
    }
   
   
}
P-63399
bingo009
» 2012-08-23 17:02:44
Kod podawaj w tagi(bez gwiazdek):
[*cpp]
//tu kod
[*/cpp]

dzięki czemu uzyskasz coś takiego:
C/C++
int dodaj( int a, int b )
{
    return a + b;
}

A co do twojego pytania, to najprościej mówiąc język skryptowy, to taki który po podaniu komendy i parametrów coś się wykonuje w jakiejś aplikacji, czy grze. Weźmy taką grę rpg. W pliku skrypt.game(rozszerzenie możesz sobie sam wymyślić jakie chcesz, game to przykład) masz taki kod:
PostawObiekt(waza, 12, 12)

Gra po załadowaniu pliku skrypt.game, przelatuje w odpowiednim momencie i po "przeczytaniu" tej linijki, "wie", że ma postawić waze na pozycji 12, 12. A jeżeli jest coś takiego:
PostawObiekt(12, 12)
to powinno wywalić błąd, bo jest za mało parametrów. Pierwsze sprawdzasz komendę, a po jej rozpozaniu sprawdzasz parametry i odpowiednio reagujesz w grze/aplikacji. To co ty pokazałeś, trochę jest błędne, ponieważ mogę sobie wpisać asdasfexit i tak się program wyłączy. A on musi mieć ściśle określone komendy.

Na warsztat.gd masz artykuł o tworzeniu języka skryptowego.
P-63400
m4tx
» 2012-08-23 17:03:11
Czy tak robi się język skryptowy?
Niezbyt. Który język zamknie Ci program, jak wpiszesz "blaafsslkfjklajklfjqwlkejlexitajikdfiwefklslkewsa"? :P
P-63401
klex234
Temat założony przez niniejszego użytkownika
» 2012-08-23 17:15:46
bingo009:

więc wydaje mi się że tak

m4tx:

nad tym się popracuje ;)
P-63403
pekfos
» 2012-08-23 17:21:28
Ładujesz skrypt i dzielisz go na słowa które później po kolei interpretujesz. Im lepszy parser napiszesz, tym bardziej elastyczna będzie składnia.
Przy samym dzieleniu na słowa, kod musiałby wyglądać np tak:
if( cos == 123 ) { zrob cos; }

Bardziej zaawansowany parser rozpozna np taki kod:
if(cos*013==0x123)sth();

Taki zaawansowany parser miałby jakieś 200 linii kodu (wiem, bo sam niedawno taki napisałem :> )
P-63405
klex234
Temat założony przez niniejszego użytkownika
» 2012-08-23 17:25:29
Skrypt się wpisuje, rozpoznaje polecenia i wykonuje odpowiednią akcję, więc wydaje mi się że jest dobre.
P-63406
pekfos
» 2012-08-23 17:30:43
Skrypt się wpisuje, rozpoznaje polecenia i wykonuje odpowiednią akcję, więc wydaje mi się że jest dobre.
Mówisz o swoim kodzie?
Jest zły. Spróbuj wpisać "please,dontexit". Program się wyłączy, bo jednak gdzieś w poleceniu jest "exit".
Użyta przez ciebie metoda w ogóle się do tego nie nadaje.
P-63408
klex234
Temat założony przez niniejszego użytkownika
» 2012-08-23 17:33:39
Ok, zrobię że jak nie zna polecenia to napisze np. "Unknown Command", a reszta kodu jest ok?
P-63410
« 1 » 2 3 4 5 6
  Strona 1 z 6 Następna strona