noxart / citynameanimal Goto Github PK
View Code? Open in Web Editor NEWAndroid memory game for FIT VUT university course
Android memory game for FIT VUT university course
V doInBackground asi nejde volat Toast, háže to chyby ... nejspíš nějak zaznamenat chybu a pak v UI vláknu detekovat a zobrazit
Ahoj, ted v hlavním menu máme statistiky. Zatím ale nefungujou. Odstraním je odtud? Nemám moc času abychom to dodělavali. Co myslíte?
Podařilo se mi sehnat a upravit seznam českých jmen, rostlin, živočichů a měst, ale sehnat seznam věcí je nereálné.
Stejně tak anglická db měst, rostlin, věcí (jména rostliny živočichové by možná šly).
Ale viděl bych to spíš tak že by jsme měli jen českou databázi s tím že databáze věcí vymyslím (třeba 10 věcí co mě první napadne k písmenu).
Může to tak být? Nebo máte jiný nápad?
Nedaří se mi vytvořit hru. Na řádku 66, v GameClient.createGame()
JSONObject identifiers = messaging.sendMessage(arguments);
Log.info(identifiers);
V logu vypisuje:
JSON RESPONSE(2960): {"error":"Game with provided ID not found"}
Kvůli tomu si myslím, že vytvořeni hry se nezdařilo, a pak nemůže se na tu hru přihlásit, protože hra neexistuje.
Proto se ptám jestli dá se nějak podívat na log serveru abych zjistil, co dělám špatně.
Prosím kontrolujte pravidelně Commands, dělám tam změny. Kdyžtak sem budu dávat oznámení, ale můžu zapomenout
Aktuálně:
Přidán command get_players
Přidán command start_game
Upraven command join_game - přidán očekávaný atribut player_name
Upraven command create_game - přidán očekávaný atribut player_name
Nevím jak to vyřešit. Můžeme ošetřit že když admin zavři aktivitu WaitingForGame, tak zrušíme tu hru. Ale co dělat pokud aplikace spadne a nezavoláme žadný stopGame, nebo v případě obyčejného uživatele leaveGame?
Tím pádem bychom měli hry, které nemaji žadného admina a tym pádem nemohli by se nastartovat.
Jedné řešení, které mi napada, odesilat třeba každé 3 vteříny nějaké hiAmAlive zprávy na server. Pokud admin neodesilá takovou zprávu 10 vteřín, tak server tu hru smáže. Pokud obyčejný hráč neodesila takovou zprávu, tak ho server s té hry smaže. Možna, maté nějaké lepší řešení?
Verze: 4.1.1
java.lang.RuntimeException: Unable to start activity ComponentInfo
Caused By: java.lang.NullPointerException
at cz.fit.tam.MainActivity.onCreate(MainActivity.java:31)
musim teď jít, tak to dám sem. Aspoň se vyzkouší Issues
Katka nabidla udělat pro prezentace video. Máme napad že bychom mohli zaznamenat jak hráme tuto hru, mezi tím vložit kratká videa s tím jak nastavujeme jednotlíve parametry hry, vyplnujeme.
Co si myslíte?
Tady napíšeme kratký scenář toho co bychom chtěli udělat. https://docs.google.com/document/d/1BODr18ZeIDaVB3UF3nCTqETyZxqSobj3RjFrrmOT53A/edit
Za hodinku bych jel do Katky abychom udělali video. Možna někdo by se také chtěl zůčastnit?
Když zavolám metodu Game.stop() dostavám odpověd' od servera 'Missing argument: id'
Zkusil jsem zaměnit v Game.stop() game_id na id. Dostavám chybu
11-17 18:34:56.943: E/MessageQueue(3305): null
11-17 18:34:56.943: E/MessageQueue(3305): org.json.JSONException: End of input at character 0 of
11-17 18:34:56.943: E/MessageQueue(3305): at org.json.JSONTokener.syntaxError(JSONTokener.java:450)
11-17 18:34:56.943: E/MessageQueue(3305): at org.json.JSONTokener.nextValue(JSONTokener.java:97)
11-17 18:34:56.943: E/MessageQueue(3305): at org.json.JSONObject.<init>(JSONObject.java:154)
11-17 18:34:56.943: E/MessageQueue(3305): at org.json.JSONObject.<init>(JSONObject.java:171)
11-17 18:34:56.943: E/MessageQueue(3305): at cz.fit.tam.model.MessageQueue.sendMessage(MessageQueue.java:75)
11-17 18:34:56.943: E/MessageQueue(3305): at cz.fit.tam.model.GameClient.stop(GameClient.java:147)
11-17 18:34:56.943: E/MessageQueue(3305): at cz.fit.tam.model.Game.stop(Game.java:112)
11-17 18:34:56.943: E/MessageQueue(3305): at cz.fit.tam.WaitForGameActivity$StopGameAsyncTask.doInBackground(WaitForGameActivity.java:99)
11-17 18:34:56.943: E/MessageQueue(3305): at cz.fit.tam.WaitForGameActivity$StopGameAsyncTask.doInBackground(WaitForGameActivity.java:1)
11-17 18:34:56.943: E/MessageQueue(3305): at android.os.AsyncTask$2.call(AsyncTask.java:287)
11-17 18:34:56.943: E/MessageQueue(3305): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
11-17 18:34:56.943: E/MessageQueue(3305): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-17 18:34:56.943: E/MessageQueue(3305): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
11-17 18:34:56.943: E/MessageQueue(3305): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
11-17 18:34:56.943: E/MessageQueue(3305): at java.lang.Thread.run(Thread.java:841)
11-17 18:34:56.943: W/dalvikvm(3305): threadid=11: thread exiting with uncaught exception (group=0xb3f77648)
11-17 18:34:56.953: E/AndroidRuntime(3305): FATAL EXCEPTION: AsyncTask #1
11-17 18:34:56.953: E/AndroidRuntime(3305): java.lang.RuntimeException: An error occured while executing doInBackground()
11-17 18:34:56.953: E/AndroidRuntime(3305): at android.os.AsyncTask$3.done(AsyncTask.java:299)
11-17 18:34:56.953: E/AndroidRuntime(3305): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
11-17 18:34:56.953: E/AndroidRuntime(3305): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
11-17 18:34:56.953: E/AndroidRuntime(3305): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
11-17 18:34:56.953: E/AndroidRuntime(3305): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
11-17 18:34:56.953: E/AndroidRuntime(3305): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
11-17 18:34:56.953: E/AndroidRuntime(3305): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
11-17 18:34:56.953: E/AndroidRuntime(3305): at java.lang.Thread.run(Thread.java:841)
11-17 18:34:56.953: E/AndroidRuntime(3305): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
11-17 18:34:56.953: E/AndroidRuntime(3305): at android.os.Handler.<init>(Handler.java:197)
11-17 18:34:56.953: E/AndroidRuntime(3305): at android.os.Handler.<init>(Handler.java:111)
11-17 18:34:56.953: E/AndroidRuntime(3305): at android.widget.Toast$TN.<init>(Toast.java:324)
11-17 18:34:56.953: E/AndroidRuntime(3305): at android.widget.Toast.<init>(Toast.java:91)
11-17 18:34:56.953: E/AndroidRuntime(3305): at android.widget.Toast.makeText(Toast.java:238)
11-17 18:34:56.953: E/AndroidRuntime(3305): at cz.fit.tam.WaitForGameActivity$StopGameAsyncTask.doInBackground(WaitForGameActivity.java:101)
11-17 18:34:56.953: E/AndroidRuntime(3305): at cz.fit.tam.WaitForGameActivity$StopGameAsyncTask.doInBackground(WaitForGameActivity.java:1)
11-17 18:34:56.953: E/AndroidRuntime(3305): at android.os.AsyncTask$2.call(AsyncTask.java:287)
11-17 18:34:56.953: E/AndroidRuntime(3305): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
11-17 18:34:56.953: E/AndroidRuntime(3305): ... 4 more
Ještě dodělám na serveru start hry a bude to následující
dodělat:
x1) Změnit na server is_running na phase
x2) Dodělám tvorbu messagů o startu kola na serveru [kolo, počáteční písmeno]
4a) Člověk si stáhne seznam jmen hráčů - podpora na serveru a modelu je, stačí přidat do activity
4b) Aplikace posílá dotazy na nové zprávy - nutno přidat na server message o připojení/odpojení hráčů, v tom případě by aplikace znova stáhla jména
4c) Jakmile je jedna z nich "round_started", přepne do herní Activity, a ze zprávy vezme počáteční písmeno
potom budem řešit odeslání, vyhodnocení a přepnutí do nového kola NEBO ukončení
extra:
4bx) V čekací obrazovce chat (podpora na serveru v podstatě je)
Pokud odešlu nějakou chat zpávu na server, a pak se snažím ji příjmout, dostavám tuto chybovou hlášku
11-20 16:47:10.931: E/MessageQueue(3257): org.json.JSONException: Value [{"id":"38","type":"chat","data":"kjkj"},{"id":"39","type":"chat","data":"kjkj"},{"id":"40","type":"chat","data":"kjkj"},{"id":"41","type":"chat","data":"kjkj"},{"id":"42","type":"chat","data":"kjkj"}] of type org.json.JSONArray cannot be converted to JSONObject
Nevím jestli musí se něco upravit na serveru nebo v Javě.
pushnul jsem kód pomocí kterého přídavám message, čtu message
Pokud je na webu, prosím o odkazu :)
Druhým parametrem konstruktoru GameClient je jméno uživatele. Odkud ho vezmeme? Musí ho uživatel zadat když vytvoří hru, připojí se ke hře? Nebo vezmeme to s kontaktu? Nebo vygenerujeme automaticky?
Ahoj,
dneska musíme odevzdat projekt.Nevím jestli se to má odevzdávat do wisu nebo posílat mu na mail, každopádně je potřeba to zkompletovat. Hned jak se vrátím z práce (cca v 17h) tak zkontroluju dokumentaci na pravopisné chyby a pokusím se to dát dohromady.
Zkusil jsem ted' jestli funguje chat.
Tady je post
12-01 09:57:05.133: W/post_message(1401): data=User%3A+hi+guyes&command=post_message&type=chat&token=mde0p3kgir4oaapns6mcmnswegsnwm&game_id=206
Tady je nasledně get
12-01 09:57:05.703: W/get_messages(1401): {"result":[{"id":"967","type":"chat","data":null}]}
V databaze zpráva je, ale ve sloupci data je null
Vyvola se vyjimka java.net.UnknownHostException. Asi to tam jeste neosetrujete, ze? Pridavam to sem jen aby se na to nezapomnelo. :-)
Už by mělo být možno posílat hráčova slova
Na server jsem přidal handler, že pokud zpráva == send_words & count(unique(send_words od hráčů v daném kole)) == player_count
, tak se aktivuje nové kolo přidáním zprávy round_started
, stejně jak to bylo minulé kolo. Pokud ovšem round == round_limit
, tak se místo toho přidá game_finished
.
Jakmile bude nějaká databáze (wink, wink), tak přidám ještě před to vložení zprávy o bodech hráčů
Takže s vynecháním bodování by už mělo být teoreticky možné dodělat komplet hraní hry?
(updatována wiki - dole message)
Není to chyba? Jsou to věcí?
19085 Ivonka vec cz I
19086 Ivo vec cz I
19087 IX vec cz I
19088 Izabela vec cz I
19089 Izabelin vec cz I
19090 Izaiáš vec cz I
19091 Izák vec cz I
19092 Izmir vec cz I
19106 Izolda vec cz I
19116 Izraelka vec cz I
19117 Izrael
V konstruktoru GameProperties, kromě toho, co je popsaný tady https://docs.google.com/document/d/1GWJUMFdQv5MD9Fx2uk6CCzxESYtJEPXJi_UK6oGHiW8/edit
také jsou timeLimit, roundLimit, playerLimit, language. Kdo nastavuje toto? Uživatel který vytváří hru?
Přihlásíme se až na termín za dva týdny (10. 12.), ne?
Popř. mohl by to někdo přihlásit, v tu dobu nebudu mít po ruce internet.
Založil jsem tady dokument pro vytvoření dokumentace. Na strankach předmětu je šablona, což nám zjednodušuje práce.
https://docs.google.com/document/d/1rhFHv-ZOG808_MwmqwgAztcI3kfCl2etQdyzmp8ynrw/edit
Napište tady prosím vaše emaily nebo kliknete na ten link a zmáčknete tam request access
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.