Wpis z mikrobloga

W związku z nauką programowania postanowiłem napisać kółko i krzyżyk..

I stąd pytanie: Da się skrócić tą funkcje:

bool sprawdz_wynik(char tb1[]){

if (((tb1[0] || tb1[1] || tb1[2]) && (tb1[3] || tb1[4] || tb1[5]) && (tb1[6] || tb1[7] || tb1[8]) && (tb1[0] || tb1[3] || tb1[6]) && (tb1[1] || tb1[4] || tb1[7]) && (tb1[2] || tb1[5] || tb1[8]) && (tb1[0] || tb1[4] || tb1[8]) && (tb1[2] || tb1[4] || tb1[6])) == ('o' && 'x')) return true;

else return false;

}

Głównie chodzi o to coś za ifem ;)

#programowanie #pomocy
  • 10
  • Odpowiedz
@Oxsis: Tak:

bool sprawdz_wynik(char tb1[]){

return (((tb1[0] || tb1[1] || tb1[2]) && (tb1[3] || tb1[4] || tb1[5]) && (tb1[6] || tb1[7] || tb1[8]) && (tb1[0] || tb1[3] || tb1[6]) && (tb1[1] || tb1[4] || tb1[7]) && (tb1[2] || tb1[5] || tb1[8]) && (tb1[0] || tb1[4] || tb1[8]) && (tb1[2] || tb1[4] || tb1[6])) == ('o' && 'x'));

}
  • Odpowiedz
@Oxsis: Mnie chodziło o coś innego. Wyrażenie typu tb1[0] || tb1[1] da ci false wtedy i tylko wtedy gdy oba znaki są puste (\0). Także wyrażenie 'o' && 'x' to jest po prostu true.
  • Odpowiedz