SharifAIChallenge / AIC18-Client-Cpp

AI Challenge 2018 C++ Client
0 stars 2 forks source link

Big Bug #15

Closed AbolfazlB3 closed 6 years ago

AbolfazlB3 commented 6 years ago

سلام وقتی می خوام تو خونه ی ایکس و ایگرگ یه برج جدید بسازم، برج تو خونه ی ایگرگ و ایکس ساخته میشه من این مشکل رو قبلا مطرح کرده بودم و پاسخ دادید که مشکل از نمایشگر بازیه ولی به نظرم مشکل فقط از نمایشگر بازی نیست

AI.cpp.txt :

#include "AI.h" #include <bits/stdc++.h> using namespace std; void AI::simple_turn(World *world) { int turn = world->get_current_turn(); if(turn == 1) { Point p = world->get_defence_map_paths().front()->get_road().front()->get_location(); world->create_cannon_tower(1,p.x(),p.y()); } if(turn == 2) { Point p = world->get_defence_map_paths().front()->get_road().front()->get_location(); cout << p.x() << ' ' << p.y() << '\n'; Tower* tower = world->get_my_towers().front(); p = tower->get_location(); cout << p.x() << ' ' << p.y() << "\n"; } } void AI::complex_turn(World *world) { simple_turn(world); }

اگه این کد رو روی یه مپ که نسبت به خط عمودی وسط صفحه قرینه نیست، اجرا کنید، میبینید که یه برج با ایکس و ایگرگ برعکس (نسبت به ایکس و ایگرگی که موقع ی ساختن بهش دادیم) ساخته میشه

DotC.map مثلا تو نقشه ی.

ظاهرا مشکل از نمایشگر بازیه ولی اگه خروجی های کد رو نگاه کنید متوجه میشید که مختصات خونه جاده و خونه ی برج، دقیقا یه چیزه طبق مطالب گفته شده تو داک، نباید تو خونه ای که جاده است، برجی وجود داشته باشه یا ساخته بشه ولی این اتفاق داره می افته

مثلا اگه این کد رو روی نقشه ی DotC.map اجرا کنیم، خروجی کد به این شکل میشه: 0 14 0 14 که این خروجی هیچ ارتباطی با نمایشگر بازی نداره

من خودم برای اینکه این مشکل رو نداشته باشم هنگام ساخت برج ها، تو کدم جای ایکس ها و ایگرگ ها رو برعکس ورودی دادم لطفا قبل از اتمام مهلت ارسال نهایی به این مشکل رسیدگی کنید تا بتونم کدم رو درست کنم

kiarash96 commented 6 years ago

سلام. حق با شماست. مشکلی وجود داشت که باعث می‌شد لوکیشن خانه‌ها برعکس ذخیره شود. لطفا ورژن جدید رو دانلود کنید.

برای این که در صورت نیاز دقیق‌تر بتونید کدتون رو اصلاح کنید مشکل این بود:

cout << world->get_defence_map()->get_cell(10, 20)->get_location() << endl;
// Pre v3: prints (20, 10) 
// v3: prints (10, 20)