Írj olyan programot, amellyel amőbázni lehet az alábbiak szerint. A tábla méretét a parancssorban kapjuk meg két paraméterként (szélesség, magasság). A program harmadik paramétere egy fájl neve, amely a játékosok lépéseit tartalmazza felváltva; ha csak két paraméter van megadva, a program a sztenderd bemenetről olvasson. A program ábrázolja a tábla tartalmát, amely kezdetben üres, majd a fájl (sztenderd bemenet) tartalma alapján módosítsa azt. A fájlban a két játékos (X és O) lépései felváltva szerepelnek, minden lépés megadja, hogy a játékos melyik mezőre lép. Például a következő bemenet szerint X az (1, 3) mezőre, O a (6, 2) mezőre lép. lep 1 3 lep 6 2 A fájlban előfordulhat továbbá minden lépés helyén a "kiir" utasítás, ennek hatására a program írja ki a sztenderd kimenetre a tábla aktuális állását. Például ha a tábla mérete 7x5, akkor a következő bemenetre a következő kimenet keletkezik. kiir lep 1 3 kiir lep 6 2 kiir ....... ....... ....... ....... ....... ....... ....... X...... ....... ....... ....... .....O. X...... ....... ....... Ha a táblán kívülre próbálna lépni az utasítás, vagy olyan mezőre, amelyik már foglalt, a program írjon ki egy hibaüzenetet, és folytassa a futást a következő utasítással. Ismeretlen utasítást a program hagyjon figyelmen kívül, és lépjen tovább. Ha a játék befejeződik (öt egyforma jel egymás mellett, elég vízszintesen és függőlegesen vizsgálni), akkor a program kiírja, ki győzött, és véget ér. Módosítsd az eddig elkészített beadandót úgy, hogy hálózaton keresztül tudjon két játékos amőbázni egymással. A játék álljon egy szerverből, amelyhez két kliens csatlakozhasson. A szerver parancssorban vegye át a tábla méretét, és azt, hogy melyik porton induljon el. A kliensek két parancssori paramétere az, hogy a szerver melyik gépen és melyik porton indult el. A szerver kezdetben elkészíti az üres táblát, és elkezd várakozni a porton bemenő kapcsolatra. Az első csatlakozó kliens az X játékos lesz; ezt a tényt a szerver megírja a kliensnek, aki kiírja azt a saját kimenetére. A szerver ezután ugyanazon a porton várakozik egy másik kapcsolatra; a második kapcsolódó kliens az O játékos lesz, és ő is kap erről értesítő üzenetet. A játék kezdete előtt a szerver megírja mindkét játékosnak a tábla méretét is. A szerver ezután a játékosoktól felváltva vár egy-egy lépést; a lépésre következő játékosnak elküldi a tábla tartalmát. A szerver érvénytelen lépés esetén hibaüzenetet küld az azt lépő játékosnak, és új bemenetet vár tőle. A szerver, ha valamelyik játékos megnyerte a játékot, vagy betelt a tábla, erről értesíti mindkét felet, majd kilép.