A Smalltalk programozási nyelv

Példa alkalmazások



Példa alkalmazások

Íme, néhány rendkívül egyszerű és könnyen érthető példaalkalmazás forráskódja, melyek nagy mértékben leegyszerűsítik a nyelv megismerésének folyamatát.
Az egyes forráskódok mindig egy adott fejezethez tartoznok, ezért érdemes a fejezet elolvasása után megtekinteni és kipróbálni ezeket az alkalmazásokat.

01) Hello World (háromféleképpen) - Letöltés

02) Nyelvi elemek (változó, szám, karakter, string, tömb) - Letöltés

03) Üzenet küldés (unáris, bináris, kulcsszavas, láncolás(2x)) - Letöltés

04) Alprogramok (blokk(2x), metódus) - Letöltés

05) Elágazások (if/else, egymásba ágyazás, switch-case) - Letöltés

06) Ciklusok (while(3x), repeat(2x), for(2x)) - Letöltés

07) Iterátorok (do(2x), select, reject(2x), collect, detect(2x), inject into(2x)) - Letöltés

08) Osztályok (absztrakt osztály, származtatás) - Letöltés

09) Reflexió (class, isMemberOf, isKindOf, respondsTo, egyenlőség/ekvivalencia vizsgálat) - Letöltés

10) Folyamatok (fork, yield, prioritásos, leállít, felfüggeszt, osztott sor, szemafor) - Letöltés



Néhány egyszerűbb tervminta

Íme, néhány egyszerűbb tervminta SMALLTALK nyelvű implementációja.
Ezen kódrészletek megtekintése, csak az alapok elsajátítása után ajánlott.

01) Absztrakt gyártó (létrehozási) - Letöltés

02) Építő (létrehozási) - Letöltés

03) Gyártó művelet (létrehozási) - Letöltés

04) Prototípus (létrehozási) - Letöltés

05) Egyke (létrehozási) - Letöltés

06) Átalakító (szerkezeti) - Letöltés

07) Összetétel (szerkezeti) - Letöltés

08) Díszítő (szerkezeti) - Letöltés

09) Arculat (szerkezeti) - Letöltés

10) Könnyűsúlyú (szerkezeti) - Letöltés

Adatbázis kezelés, Komplex típus

A Complex.pac a Number osztály-ból származik és a komplex szám típust valósítja meg annak minden műveletével, és különféle kiíratási lehetőségeivel (például: polár koordinátás alak). A package Dolphin Smalltalk segítségével készült. A komplex típus forráskódja. Használata:

k:= Complex new: 1 new: 1. j := Complex new: -1 new: -1. ossz:= k + j. ossz show.

A smalltalk is támogatja az adatbázis kezelést. Az itt található példaprogram egy GUI-n keresztüli regisztrációt és bejelentkezést tesz lehetővé. Az adatbázis egy SQLite fájl, ez egy speciális szerver nélküli adatbázis. Az adatbázis kezeléshez szükség volt egy package importálására. A program, az adatbázis és az adatbázis kezelő package az alábbi linkeken érhető el: A program forráskódja. Az adatbázis fájl. Az adatbázis kezelő forráskódja. Használata:

SManagerShell show.

Chatszerver

Egy egyszerűbb TCP protokollt használó chatserver alkalmazás megvalósítása SmallTalk nyelven. Egyszerű a használata : GNU SmallTalk-val interpretáljuk az Init.st fájlt, ezzel el is indul a server amire telnet segítségével tudunk kapcsolódni a 8000-res porton.

Inicializáló fájl
Chat kliens implementálása
Chat server implementálása

Grafikus chatprogram

A példa hasonló az előzőhöz, de ehhez grafikus kliens program is tartozik. A kliens GTK-ra, layoutokra, eseménykezelőkre és TCP kapcsolatokra is jó példa.

Készítette: Körmendi Gergely (2012)

GNU SmallTalk 3.2 Linux

Kliens Szerver

Rajzoló program

Egyszerű rajzolóprogram, amely Morphic objektumokat képes kirajzolni a rajzoló felületünkre. Sok látott rajzoló programtól eltérően, használ egy grafikus modellt, így a rajzolt ábrák nem csak a megjelenítő canvas-on "tárolódnak", hanem a modellben is. Ez a modell Morph objektumok egy halmaza.
A program leírása.
A zip kiterjesztésű fájl letölthető innen.

Dobókocka, Quinto

A dobókocka példaprogram egy dobókockát szimulál, amely forog, kattintással lehet megállítani(megáll) és elindítani(dobni).
A Quinto egy érdekes logikai játék, melynek célja az adott tábla lefedése. Szabálya: ha kattintasz valamire, akkor ő és a környezetében lévő 4 elem ellentettjére változik.

Mindkét program Squeak Smalltalkban készült el, először a File List Window-ban dupla kattintással kell installálni az osztályokat, majd példányosítani, futtatni őket.

A források: A dobókocka forráskódja.
A források: A Quinto forráskódja.

És a használatuk:

DieMorph new openInWorld. SBEGame new openInWorld.



Amőba játék

Ez a program a jól ismert amőba (tictactoe) játék megvalósítása Smalltalk nyelven. A program a Morphic grafikus felületet használja, így tekinthető a Morphic bemutatására készült példaprogramként is. A fejlesztés a Squeak környezetben történt.
A program leírása, a forráskóddal együtt.
Használata:

tictactoe:=TicTacToe new.

Connect4 játék

A Connect4 játék implementálása
A program leírása.
A pac kiterjesztésű fájl letölthető innen.

Memória játék

Ez a program egy 8 kártya páron játszható memória játék. A kártyákon különböző színek találhatóak és aszerint párosíthatóak.
A program leírása.
A pac kiterjesztésű fájl letölthető innen.

Használata:

game:=GameTable new.

game show.

ColorRow játék

Ez a program egy logikai játékot valósít meg, melynek lényege, hogy a játékos rekonstruálja, hogy melyik színsorra "gondolt" a számítógép. A találgatásai kapcsán visszajelzéseket kap, így tud következő alkalommal hatékonyabban tippelni a sorban szereplő színek és helyük kapcsán.
A program leírása.
Forráskód

Használata:

game:= GWindow new.

game init.