Skocz do zawartości

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

fireball

tworzenie AI

Polecane posty

Spory rozstrzał, ale jeżeli masz problem z napisaniem AI dla tak prostej gry, to pozostałe przypadki możemy raczej spokojnie pominąć.

A z K&K problem jest taki, że to trywialnie prosta gra, do której nie ma sensu zaprzęgać żadnego skomplikowanego mechanizmu AI, bo do ogarnięcia wszystkich dostępnych stanów gry wystarcza kilkadziesiąt linii kodu.

Link do komentarza
Udostępnij na innych stronach

Po pierwsze, jak nie potrafisz znaleźć przykładu dla języka programowania, który cię interesuje i go zrozumieć to nie widzę zbytnio twojej przyszłości w tej dziedzinie, niestety.

Przykład: http://neverstopbuilding.com/minimax

Po drugie standardowa gra w K&K (3x3 pola) nie potrzebuje tak naprawdę żadnego AI, bo liczba kroków jest bardzo ograniczona.

Cytat

lub takie z którym można pisać czy rozmawiać funkcją głosową.

Wydaje mi się, że nie masz pojęcia, co chcesz w ogóle zrobić.

Link do komentarza
Udostępnij na innych stronach

Cytat

Wydaje mi się, że nie masz pojęcia, co chcesz w ogóle zrobić.

Oczywiście że nie ma pojęcia. Przede wszystkim nie napisał nic o języku w którym chce to robić i zadał pytanie na forum o grach więc prawdopodobnie nawet programować nie umie. A przecież AI to jedna z trudniejszych gałęzi programowania.

Do autora: zabierasz się do tematu od tylca. Najpierw naucz się (BARDZO DOBRZE) programować  (najlepiej obiektowo) w jakimś języku programowania (C, C++, C#, java, Ruby,  a najlepiej Python) i dopiero wtedy myśl o jakimś AI.

Link do komentarza
Udostępnij na innych stronach

Dnia 6.06.2016 o 12:36, Doman18 napisał:

Przede wszystkim nie napisał nic o języku w którym chce to robić (...) A przecież AI to jedna z trudniejszych gałęzi programowania.

Muszę spytać, czy język robi tak wielką różnicę? W C++ SI robi się inaczej niż w javie? A skoro najlepiej wPythonie najlepiej to co, pisze się już samo? ;)

Czemu najlepiej obiektowo? Niektóre gałęzi SI wygodnie się opisuje w logice, a więc raczej coś w stylu prologa będzie dobrym wyborem. Z tego co wiem ten obiektowy nie jest.

No i wreszcie muszę dopytać o porządek liniowy na trudnościach gałęzi informatyki. SI to jedna z trudniejszych gałęzi, a które są łatwe? Które są trudniejsze? Pisanie sterowników jest łatwiejsze niż SI? Co jest trudniejsze, aplikacje webowe czy mobilne?

Link do komentarza
Udostępnij na innych stronach

Cytat

Muszę spytać, czy język robi tak wielką różnicę? W C++ SI robi się inaczej niż w javie? A skoro najlepiej w Pythonie najlepiej to co, pisze się już samo? 

Tak, bo niektóre języki mają np. goto które choć opluwane w normalnym programowaniu to w przypadku SI przy projektowaniu drzewa zachowań jest bardzo przydatne. Nie mówię tego z własnego doświadczenia ale z rozmowy z zawodową programistką gier 2 lata temu.

Wspomniałem o Pythonie nie w kontekście SI ale nauki programowania w ogóle.

Cytat

Czemu najlepiej obiektowo? Niektóre gałęzi SI wygodnie się opisuje w logice, a więc raczej coś w stylu prologa będzie dobrym wyborem. Z tego co wiem ten obiektowy nie jest.

Znów pisałem o ogólnym kontekście programowania. Ktoś kto pisze SI nigdy nie jest odrębnym bytem, pisze w zespole "normalnych" programistów. Dlatego opanowanie obiektówki jest nieodzowne by móc sprawnie współpracować z kolegami.

 

Cytat

No i wreszcie muszę dopytać o porządek liniowy na trudnościach gałęzi informatyki. SI to jedna z trudniejszych gałęzi, a które są łatwe? Które są trudniejsze? Pisanie sterowników jest łatwiejsze niż SI? Co jest trudniejsze, aplikacje webowe czy mobilne?

Tu rzeczywiście przyznaję się do błędu bo w zasadzie każda dziedzina ma swoje trudniejsze i łatwiejsze obszary. Tyle że w przypadku SI trzeba od razu się posługiwać logiką i z tego też powodu prawdopodobnie jest mniej narzędzi typu framework. Natomiast w przypadku innych leci się niemalże bezmyślnie (np. pisanie nowej stronki w PHP przy użyciu CodeIgnitera)

Link do komentarza
Udostępnij na innych stronach

Dnia 6/7/2016 o 00:41, Hakken napisał:

No i wreszcie muszę dopytać o porządek liniowy na trudnościach gałęzi informatyki. SI to jedna z trudniejszych gałęzi, a które są łatwe? Które są trudniejsze? Pisanie sterowników jest łatwiejsze niż SI? Co jest trudniejsze, aplikacje webowe czy mobilne?

A czemu nie możesz porównać ich trudności? Różne gałęzie programowania wymagają różnych dodatkowych rzeczy i jak najbardziej można mówić, że coś jest łatwe, a coś trudne. Tak samo możesz powiedzieć, że coś jest trudniejsze niż coś. Jeśli już czegoś do tego potrzebujesz, to jest to częściowy porządek (w takim przypadku część zagadnień będzie nieporównywalna), choć łatwiej stopień skomplikowania zrzutować na prostą i wtedy porównywać. Jasne, do tego dochodzą indywidualne predyspozycje, ale wiele gałęzi programowania wymaga jednak znajomości innych zagadnień, dlatego można jednak stwierdzić, że są one trudniejsze niż te, które nie wymagają nic.

@Doman18 Jak lubię Pythona, tak jednak jestem przeciwnikiem zaczynania nauki programowania od języków z automagicznym zarządzaniem pamięcią, bo potem jest stado programistów, którzy zupełnie się dziwią, że ich apka ma wycieki pamięci, a nie okłamujmy się Garbage Collectory idealne nie są, więc czasem trzeba zejść niżej.

Link do komentarza
Udostępnij na innych stronach

Owszem Sevard i wcześniej też myślałem że np. C++ najlepszy dla początkującego bo od razu ma dobre ogarnięcie podstaw. Problem w tym że wielu którzy próbują programowania i zaczynają od C++ zrażają się przez, jak to nazywają amerykanie "steep learning curve". Żeby zrobić nawet proste rzeczy w c++ trzeba dużo się namęczyć i dużo nakodować w stosunku do języków takich jak python gdzie te same rzeczy programuje się prościej. Nic tak nie motywuje do dalszej pracy jak małe sukcesy przy małych projektach. To pozwala poznać fajność programowania nawet przez osoby które się wcześniej tym nie interesowały bo myślały że to dla nich za trudne i przekonać ich że są w stanie programować tylko muszą nad tym popracować. A właśnie o to chodzi żeby zedrzeć z programowania otoczkę elitarności. Owszem, niektórzy starsi programiści psioczą że przez to spada jakość kodu, leżą kwestie optymalizacji, kwestie skalowalności są kiepskie lub w ogóle ich nie ma. Ale zawsze dobrych praktyk można się później nauczyć, ktoś kto rzeczywiście chce być dobrym programistą będzie tych rzeczy szukał. Poza tym na pythonie świat się nie kończy i prędzej czy później taki programista będzie musiał sięgnąć po nieco trudniejsze języki, choćby c++. 

Link do komentarza
Udostępnij na innych stronach

Problem jest taki, że wielu zaczyna od języków typu Java, PHP, Python itp. i nie idzie dalej. Potem te osoby piszą duży kod i bardzo często widać tego efekty. Tak, C++ potrafi być bolesny, ale pozwala na lepsze zrozumienie tego co Twój program tak naprawdę robi. Wybacza mniej błędów, ale w przypadku języków, które wybaczają bardzo dużo jest jeszcze gorzej, bo te błędy się kumulują i w końcu wracają ze zdwojoną siłą.

Efekt jest taki, że ludzie uczą się łatwych języków i tych dobrych praktyk nie uczą się nigdy. Sam znam wielu takich programistów, zatrudnionych przez dosyć znane firmy. Ja się tylko cieszę, że pracuję w firmie, w której taka osoba raczej nie przeszłaby procesu rekrutacyjnego.

Link do komentarza
Udostępnij na innych stronach

Dnia 10.06.2016 o 17:44, Sevard napisał:

A czemu nie możesz porównać ich trudności? Różne gałęzie programowania wymagają różnych dodatkowych rzeczy i jak najbardziej można mówić, że coś jest łatwe, a coś trudne.

Oczywiście że można porównywać, ale jak obiektywnie stwierdzić czy łatwiejszy jest machine lerning (który wymaga jakiejś matematyki i teorii) czy może pisanie sterowników (które używa bardziej wymagającego języka, bo pewnie sporo jest w C, trzeba się znać na sprzęcie, ale niekoniecznie na matmie)? I analogicznie można się zastanawiać nad apkami mobilnymi vs webowymi (chociaż są bardzo podobne). Ogólnie moje przesłanie jest takie, że zajmowanie się każdym działem jest trudne o ile się chce być w tym dobrym, więc twierdzenie co jest trudniejsze sprowadza się raczej do predyspozycji i upodobań porównującego.

 

Link do komentarza
Udostępnij na innych stronach



  • Kto przegląda   0 użytkowników

    • Brak zalogowanych użytkowników przeglądających tę stronę.
×
×
  • Utwórz nowe...