klex234 Temat założony przez niniejszego użytkownika |
Czy tak robi się język skryptowy? » 2012-08-23 16:58:23 oto kod: #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; } if( b.find( "echo" ) == 0 ) { if( b.find( " " ) == 4 ) { b.erase( 0, 5 ); cout << b << endl; } else { cout << "Error!" << endl; } } } }
|
|
bingo009 |
» 2012-08-23 17:02:44 Kod podawaj w tagi(bez gwiazdek): [*cpp] //tu kod [*/cpp] dzięki czemu uzyskasz coś takiego: 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. |
|
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 |
|
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 ;) |
|
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 :> ) |
|
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. |
|
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. |
|
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? |
|
« 1 » 2 3 4 5 6 |