Ursprungligen inskrivet av At The Gates Blizzard borde stoppa producering av allt nytt content tills de utrotat alla buggar.
Då är ju bara problemet att det inte finns ett program utan buggar. Även om det gjorde det skulle folk inte gilla vissa designbeslut som de tror är buggar.
Jag är inte förvånad. Fallout 2 är ett av de bästa spelen som någonsin har gjorts, men rent tekniskt är det en säck med skit. Jag fick börja om från början två gånger i det spelet, ena gången för att alla invånare på en viss plats aggrade en på grund av en bugg, vars patch gjorde savegames inkompatibla, och en gång pga. att det finns ett ställe nära slutet där man kan 'välja fel' så att man inte kan klara spelet.
10-20 timmar. Det är lagom tycker jag, snudd på för lite. Jag har alternerat mellan WoW och Metroid Prime 2 nu ett tag. Underbara spel bägge två, men tyvärr har jag en massa IRL att sköta så jag får nog i allmänhet kalla mig en 'casual' player.
Det första jag kommer att tänka på är bossen i Fanatic's Tower i Final Fantasy VI. Det var en boss som var svår och jävlig, och då han dog så slängde han ut en Ultima -- Pang, 3000 i skada på alla i partyt. Whee.
Sen finns det en del minnen av frustration från den gamla goda NES-tiden:
* Top gun. Att lufttanka och landa... Jisses.
* Ikari Warriors.
* Werewolf. Helt omöjligt spel.
Är det någon mer än jag som använder sådana här makron?
// This macro creates a standard stl for loop:
#define stl_loop(type, name) \
for (##type::iterator iter = (##name).begin(); iter != (##name).end(); ++iter)
// Same thing but with const_iterator:
#define stl_const_loop(type, name) \
for (##type::const_iterator iter = (##name).begin(); iter != (##name).end(); ++iter)
// Usage:
void example(const std::vector<std::string>& vec)
{
std::string result;
stl_const_loop(std::vector<std::string>, vec)
result += (*iter);
}
Jag minns en gång då jag kodade på mitt ganska stora projekt att jag bara blev så spyless att skriva ut fullständiga for-loopar. Jag kan förstå att det kan te sig kryptiskt att se ett sånt där makro mitt i en funktion om man inte har sett det förut, men det kanske inte är alltför ondskefullt om man har det som konvention i sitt projekt.
World of Warcraft. Det enda MMORPG jag har spelat förutom det är Lineage 2, och den jämförelsen är ungefär en Alladinask mot försvarets chokladkaka 154 med krisp.
Jävligt snart får man hoppas. Detta är illa. Kan aldrig Blizzard fatta hur populära de egentligen är? Man får verkligen hoppas att spelet kommer att fungera bättre än registreringen.
Jag och mina närmaste vänner samlades i en lokal med våra datorer och spelade bokstavligt talat Diablo II fem dagar i sträck då det kom ut. Gamla goda minnen
Chrono Trigger är det bästa spelet som någonsin har gjorts. Chrono Cross är bara ett sanslöst genialt mästerverk, sånär på slutet. Skulle uppskatta ett nytt spel, men det är utan att våldföra sig på dess ganska unika arv. Och det är nog det absolut svåraste man kan försöka sig på i spelväg.
Ursprungligen inskrivet av Ereinion Använd std::vector så kan du får ut längden från medlemsfunktionen size. Du kan nog inte göra det utan att ändra lite på funktionen. Ett annat sätt vore att skicka med storleken som parameter (om du inte använder vector).
Ska man vara tjatig så är det nog bättre att skicka vectorn som referens så att man slipper få hela vectorn kopierad. Men det har ju inget med saken att göra som sådant.
Det här är kod för att samla argument under uppbyggande av ett syntaxträd i en kompilator jag skrev för 3-4 år sen nån gång.
// Note that the function parameter list is parsed backwards.
// It is backwards since argument lists are reduced through
// left-recursions by the parser, hence collecting in reverse order.
for (dword i = 0; i < GS_MAX_FUNCTION_ARGUMENTS && iter; i++)
if (iter->m_child[1]->m_returnType != GSTypeToDT((gs_type_t)func->args[argc - i - 1]))
{
Error("Function %s, Parameter %d: Expected %s. (DT%d/%d)",
m_symbol->m_name, i + 1, NameForType((gs_type_t)func->args[argc - i - 1]),
iter->m_child[1]->m_returnType, GSTypeToDT((gs_type_t)func->args[argc - i - 1]));
return;
}
else
iter = iter->m_child[0];
break;
Jag skulle ta C# om jag var du. Det är snällare än C++ och du får så att säga mer gjort för mindre ansträngning. C++ är skitbra om man är riktigt duktig på det, men det tar ett bra tag att lära sig väl.
Ursprungligen inskrivet av totoo jag tycker att ett steg upp alltid ska kallas parent... tack
Personligen föredrar jag att kalla det parent då det rör sig om delegering och inte arv. Men det är klart, det är fullt tillåtet att ha en åsikt så länge man inte arbetar i ett projekt med fastställda konventioner! Skönt det ibland.
Jag har länge varit sugen på att gå över från Outlook till kombinationen Thunderbird / Sunbird (som är Mozillas mailklient respektive kalenderprogram) men det finns en sak som hindrar mig, och det är att Sunbird inte stöder synkronisering med sony-ericsson-telefoner. Vet någon om något bra program som man kan synka t.ex vCalendar-filer som man isåfall får dumpa från Sunbird och sen lägga in i telefonen?
Ursprungligen inskrivet av Antonovskij En char är ju en byte. cout skriver automatiskt en char som ett tecken och inte som siffervärdet. Vad jag menar är att det borde vara så enkelt som:
std::cout << (char)det_binara_talet << std::endl;
Eller har jag missförstått något?
Stämmer bra. I och med att du castar variabeln till char så anropas char-varianten av operator<< vilket skriver ut tecken enligt ascii-tabellen. Vill man konvertera talet till en textsträng kan man använda funktionen med det något roliga namnet itoa:
int tal = 128;
char buffer[33];
itoa(tal, buffer, 10); // buffer fylls med "128"
itoa(tal, buffer, 16); // buffer fylls med "80" (128 decimalt i hex)
Man måste förstås tänka på ordstorleken för det system man ska köra programmet på så att talet inte blir så stort så att dess textrepresentation blir för stort för bufferten. Detta exempel fungerar bra för 32 bitars ordlängd.
itoa stöds inte av alla kompilatorer heller. Man kan då använda t.ex sprintf som jag tror finns med i ANSI-standarden.