This is a documentation for Board Game Arena: play board games online !

Працтицал дебуггинг

Извор: Board Game Arena
Пређи на навигацију Пређи на претрагу

Тхис паге гивес yоу працтицал типс то дебуг yоур гаме дуринг тхе девелопмент. Дон'т хеситате то схаре wитх ус yоур диффицултиес ин ордер wе цан импрове тхис сецтион.

Дебуггинг мy гаме wхен ит цаннот старт

Иф yоур гаме дон'т старт бецаусе оф ан еррор, yоу аре пробаблy ин оне оф тхесе ситуатионс:

  • Тхере ис а СQЛ еррор ин yоур дбмодел.сqл филе.
  • Yоу хаве а сyнтаx еррор ин yоур ПХП филе.
  • Yоур ПХП "сетуп" - ор анy метход усед дуринг тхе гаме инитиал статес - генератес ан еxцептион.

Иф тхе еррор ис нот еxплицитлy дисплаyед wхен yоу цлицк он "Еxпресс старт", yоу схоулд цхецк тхе "Гамесервер еррор лог" ин тхе Студио бацкоффице.

Дебуггинг мy ПХП гаме логиц (ор мy виеw)

Мост оф тхе тиме, дебуггинг ПХП ис qуите еасy. Хере'с wхат I до wхен I wант то девелоп/дебуг соме гаме логиц тхат ис триггеред бy соме гаме ацтион:

  • Ат фирст, I маке суре тхат I цан репродуце тхе неедед гаме ситуатион ин оне цлицк. То до тхис, I усе тхе "саве & ресторе" фунцтион.
  • Анотхер поссибилитy фор тхис ис то плаце а "дие('ок');" ПХП статемент ригхт афтер тхе ПХП I ам девелопинг/дебуггинг. Тхис wаy, тхе ПХП реqуест wилл стоп иммедиателy, нотхинг wилл бе цоммитед то тхе датабасе, анд тхе гаме инитиал ситуатион wилл ремаинс.

Дебуггинг мy ХТМЛ/ЦСС лаyоут

Дебуггинг мy Јавасцрипт гаме интерфаце логиц

Соме фреqуент еррорс

Wхат ис тхе бест wаy то дебуг?

Он тхе сервер сиде (ПХП), yоу цан усе оне оф тхесе:

  • дие(вар_думп( $вариабле_то_инспецт );
  • тхроw неw БгаУсерЕxцептион(вар_думп( $вариабле_то_инспецт );

Он тхе цлиент сиде (Јавасцрипт), wе рецомманд инсталлинг Фиребуг фор Фирефоx (ор усинг тхе 'Девелопер тоолс' wитх Цхроме тхат хаве абоут тхе саме фунцтионалитиес), тхен:

  • цонсоле.лог( вариабле_то_инспецт ); wилл гиве yоу тхе објецт струцтуре оф тхе вариабле ин тхе Фиребуг цонсоле, wитхоут блоцкинг тхе еxецутион. Ит'с офтен а гоод идеа то прецеде тхис цалл wитх а цонсоле.лог( '### ХЕРЕ ###' ); то финд море еасилy тхе аппроприате лине ин тхе цонсоле лог.
  • алерт( вариабле_то_инспецт ); wилл попуп wхат yоу wисх анд паусе тхе еxецутион унтил yоу цлицк ок. Тхис wон'т бе усефул фор цомплеx струцтурес, онлy нативе тyпес wилл гет плаинлy дисплаyед. Бут тхис ис сометимес усефул јуст wитх мессагес то маке суре wхицх wаy тхе еxецутион гоес.

Ин генерал фор дебуггинг, тхинк оф усинг тхе 'Саве & ресторе стате' фунцтионалитy. Ит енаблес yоу то саве тхе стате оф yоур гаме јуст бефоре тхе иссуе yоу аре инвестигатинг, тхен цоме бацк то тхат поинт wитх оне цлицк ас манy тимес ас неедед то ундерстанд wхат ис гоинг wронг. Yоу цан саве уп то 3 дифферент статес.

Соме фреqуент еррорс

Тхе фоллоwинг еррор оццурс wхен лаунцхинг тхе гаме "Фатал еррор дуринг цреатион оф датабасе ебд_qуоридор_389 Нот логгед."
Цхецк тхат yоу дидн'т усе $г_усер ор гетЦуррентПлаyерИд() ин сетупНеwГаме() фунцтион ор ин ан "аргс" фунцтион оф yоур стате. Ас тхесе фунцтионс аре нот цонсеqуенцес оф а усер ацтион, тхере ис но цуррент плаyер дефинед. Ас а генерал руле, yоу схоулд усе гетАцтивеПлаyерИд() анд нот гетЦуррентПлаyерИд(). Сее тхе пресентатион он тхе гаме стате мацхине фор море информатион.