_alex
([alex])
30 Listopad 2009 15:27
#21
Nie wiem czy prawidłowo, cały twój mega switch można zamienić na:
i=wsp/10;
j=wsp%10;
sami_10
(Sami 10)
1 Grudzień 2009 00:01
#22
prawidłowo bo działa
tylko też jest mega
Czasami mam tak że jak sprawdza ustawienia statku to przypisuje wokoło sprawdzanego elementu wartość. 4- można postawić dodatkowy element statku i 5- pole zablokowane nie można postawić dodatkowego elementu statku
Działa to prawidłowe tylko, jak jest jakiś statek przy krawędzi (sprawdzanie to uwzględnia i przypisuje wartości mieszczące się w tablicy) to przy ustawieniu następnego statku np. na środku pola już nie przypisuje dookoła tego statku tylko tak jakby stało przy krawędzi poprzedniej choć stoi na środku planszy i według algorytmu powinno opisać go wokoło. Dlaczego tak może się dziać??
Trzeba czyścić zawartość pamięci ?
– Dodane 01.12.2009 (Wt) 1:57 –
mam taką pętlę
która za każdym razem gdy trafie na dany statek się uruchamia. I tu pytanie jak zrobić lcznik. ten co mam nie działa. cały czas jest wartość 1. Pewnie spowodowane jest tym,że jak od nowa wchodzi w tą pętlę to przypisuje wartość on nowa… i nie mam pomysłu co z tym fantem zrobić…
_alex
([alex])
1 Grudzień 2009 09:02
#23
Wg twojego rozumowania, twojego algorytmu, może to nie mieć nic wspólnego z rzeczywistością.
Może zasięg zmiennej licznika jest zbyt “nisko” albo gdzieś inicjalizujesz tą zmienną zerem.
sami_10
(Sami 10)
1 Grudzień 2009 10:37
#24
To tego sprawdzania już całkowicie nie rozumiem.
tak wygląda kod mojego sprawdzania:
void tablica::sprawdzenie(int i,int j) //sprawdza na których polach można utworzyć dodatkowy element statku {//sprawdzanie dla lewej krawędzi if(tab[1][0]==1||tab[2][0]==1||tab[3][0]==1||tab[4][0]==1||tab[5][0]==1||tab[6][0]==1||tab[7][0]==1||tab[8][0]==1||tab[1][0]==7||tab[2][0]==7||tab[3][0]==7||tab[4][0]==7||tab[5][0]==7||tab[6][0]==7||tab[7][0]==7||tab[8][0]==7||tab[1][0]==8||tab[2][0]==8||tab[3][0]==8||tab[4][0]==8||tab[5][0]==8||tab[6][0]==8||tab[7][0]==8||tab[8][0]==8||tab[1][0]==9||tab[2][0]==9||tab[3][0]==9||tab[4][0]==9||tab[5][0]==9||tab[6][0]==9||tab[7][0]==9||tab[8][0]==9) { if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j+1]!=1 && tab[j+1]!=7 && tab[j+1]!=8 && tab[j+1]!=9 && tab[j+1]!=6 && tab[j+1]!=2 && tab[j+1]!=3) tab[j+1]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j]!=1 && tab[i-1][j]!=7 && tab[i-1][j]!=8 && tab[i-1][j]!=9 && tab[i-1][j]!=6 && tab[i-1][j]!=2 && tab[i-1][j]!=3) tab[i-1][j]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j]!=1 && tab[i+1][j]!=7 && tab[i+1][j]!=8 && tab[i+1][j]!=9 && tab[i+1][j]!=6 && tab[i+1][j]!=2 && tab[i+1][j]!=3) tab[i+1][j]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j+1]!=1 && tab[i+1][j+1]!=7 && tab[i+1][j+1]!=8 && tab[i+1][j+1]!=9 && tab[i+1][j+1]!=6 && tab[i+1][j+1]!=2 && tab[i+1][j+1]!=3 && tab[i+1][j+1]!=4) tab[i+1][j+1]=5; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j+1]!=1 && tab[i-1][j+1]!=7 && tab[i-1][j+1]!=8 && tab[i-1][j+1]!=9 && tab[i-1][j+1]!=6 && tab[i-1][j+1]!=2 && tab[i-1][j+1]!=3 && tab[i-1][j+1]!=4) tab[i-1][j+1]=5; } else //sprawdzanie dla dolnej krawędzi if(tab[9][1]==1||tab[9][2]==1||tab[9][3]==1||tab[9][4]==1||tab[9][5]==1||tab[9][6]==1||tab[9][7]==1||tab[9][8]==1||tab[9][1]==7||tab[9][2]==7||tab[9][3]==7||tab[9][4]==7||tab[9][5]==7||tab[9][6]==7||tab[9][7]==7||tab[9][8]==7||tab[9][1]==8||tab[9][2]==8||tab[9][3]==8||tab[9][4]==8||tab[9][5]==8||tab[9][6]==8||tab[9][7]==8||tab[9][8]==8||tab[9][1]==9||tab[9][2]==9||tab[9][3]==9||tab[9][4]==9||tab[9][5]==9||tab[9][6]==9||tab[9][7]==9||tab[9][8]==9) { if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j-1]!=1 && tab[j-1]!=7 && tab[j-1]!=8 && tab[j-1]!=9 && tab[j-1]!=6 && tab[j-1]!=2 && tab[j-1]!=3) tab[j-1]=4;// 4 - można postawić dodatkowy element statku w tym miejscu if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j+1]!=1 && tab[j+1]!=7 && tab[j+1]!=8 && tab[j+1]!=9 && tab[j+1]!=6 && tab[j+1]!=2 && tab[j+1]!=3) tab[j+1]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j]!=1 && tab[i-1][j]!=7 && tab[i-1][j]!=8 && tab[i-1][j]!=9 && tab[i-1][j]!=6 && tab[i-1][j]!=2 && tab[i-1][j]!=3) tab[i-1][j]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j-1]!=1 && tab[i-1][j-1]!=7 && tab[i-1][j-1]!=8 && tab[i-1][j-1]!=9 && tab[i-1][j-1]!=6 && tab[i-1][j-1]!=2 && tab[i-1][j-1]!=3 && tab[i-1][j-1]!=4) tab[i-1][j-1]=5; // 5 - pole zablokowane, nie można w tym polu ustawić statku if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j+1]!=1 && tab[i-1][j+1]!=7 && tab[i-1][j+1]!=8 && tab[i-1][j+1]!=9 && tab[i-1][j+1]!=6 && tab[i-1][j+1]!=2 && tab[i-1][j+1]!=3 && tab[i-1][j+1]!=4) tab[i-1][j+1]=5; } else //sprawdzanie dla prawej krawędzi if(tab[1][9]==1||tab[2][9]==1||tab[3][9]==1||tab[4][9]==1||tab[5][9]==1||tab[6][9]==1||tab[7][9]==1||tab[8][9]==1||tab[1][9]==7||tab[2][9]==7||tab[3][9]==7||tab[4][9]==7||tab[5][9]==7||tab[6][9]==7||tab[7][9]==7||tab[8][9]==7||tab[1][9]==8||tab[2][9]==8||tab[3][9]==8||tab[4][9]==8||tab[5][9]==8||tab[6][9]==8||tab[7][9]==8||tab[8][9]==8||tab[1][9]==9||tab[2][9]==9||tab[3][9]==9||tab[4][9]==9||tab[5][9]==9||tab[6][9]==9||tab[7][9]==9||tab[8][9]==9) { if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j-1]!=1 && tab[j-1]!=7 && tab[j-1]!=8 && tab[j-1]!=9 && tab[j-1]!=6 && tab[j-1]!=2 && tab[j-1]!=3) tab[j-1]=4;// 4 - można postawić dodatkowy element statku w tym miejscu if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j]!=1 && tab[i-1][j]!=7 && tab[i-1][j]!=8 && tab[i-1][j]!=9 && tab[i-1][j]!=6 && tab[i-1][j]!=2 && tab[i-1][j]!=3) tab[i-1][j]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j]!=1 && tab[i+1][j]!=7 && tab[i+1][j]!=8 && tab[i+1][j]!=9 && tab[i+1][j]!=6 && tab[i+1][j]!=2 && tab[i+1][j]!=3) tab[i+1][j]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j-1]!=1 && tab[i-1][j-1]!=7 && tab[i-1][j-1]!=8 && tab[i-1][j-1]!=9 && tab[i-1][j-1]!=6 && tab[i-1][j-1]!=2 && tab[i-1][j-1]!=3 && tab[i-1][j-1]!=4) tab[i-1][j-1]=5; // 5 - pole zablokowane, nie można w tym polu ustawić statku if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j-1]!=1 && tab[i+1][j-1]!=7 && tab[i+1][j-1]!=8 && tab[i+1][j-1]!=9 && tab[i+1][j-1]!=6 && tab[i+1][j-1]!=2 && tab[i+1][j-1]!=3 && tab[i+1][j-1]!=4) tab[i+1][j-1]=5; } else //sprawdzanie dla górnej krawędzi if(tab[0][1]==1||tab[0][2]==1||tab[0][3]==1||tab[0][4]==1||tab[0][5]==1||tab[0][6]==1||tab[0][7]==1||tab[0][8]==1||tab[0][1]==7||tab[0][2]==7||tab[0][3]==7||tab[0][4]==7||tab[0][5]==7||tab[0][6]==7||tab[0][7]==7||tab[0][8]==7||tab[0][1]==8||tab[0][2]==8||tab[0][3]==8||tab[0][4]==8||tab[0][5]==8||tab[0][6]==8||tab[0][7]==8||tab[0][8]==8||tab[0][1]==9||tab[0][2]==9||tab[0][3]==9||tab[0][4]==9||tab[0][5]==9||tab[0][6]==9||tab[0][7]==9||tab[0][8]==9) { if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j-1]!=1 && tab[j-1]!=7 && tab[j-1]!=8 && tab[j-1]!=9 && tab[j-1]!=6 && tab[j-1]!=2 && tab[j-1]!=3) tab[j-1]=4;// 4 - można postawić dodatkowy element statku w tym miejscu if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j+1]!=1 && tab[j+1]!=7 && tab[j+1]!=8 && tab[j+1]!=9 && tab[j+1]!=6 && tab[j+1]!=2 && tab[j+1]!=3) tab[j+1]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j]!=1 && tab[i+1][j]!=7 && tab[i+1][j]!=8 && tab[i+1][j]!=9 && tab[i+1][j]!=6 && tab[i+1][j]!=2 && tab[i+1][j]!=3) tab[i+1][j]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j-1]!=1 && tab[i+1][j-1]!=7 && tab[i+1][j-1]!=8 && tab[i+1][j-1]!=9 && tab[i+1][j-1]!=6 && tab[i+1][j-1]!=2 && tab[i+1][j-1]!=3 && tab[i+1][j-1]!=4) tab[i+1][j-1]=5; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j+1]!=1 && tab[i+1][j+1]!=7 && tab[i+1][j+1]!=8 && tab[i+1][j+1]!=9 && tab[i+1][j+1]!=6 && tab[i+1][j+1]!=2 && tab[i+1][j+1]!=3 && tab[i+1][j+1]!=4) tab[i+1][j+1]=5; } else //sprawdzanie dla górnego lewego rogu if(tab[0][0]==1||tab[0][0]==7||tab[0][0]==8||tab[0][0]==9) { if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j+1]!=1 && tab[j+1]!=7 && tab[j+1]!=8 && tab[j+1]!=9 && tab[j+1]!=6 && tab[j+1]!=2 && tab[j+1]!=3) tab[j+1]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j]!=1 && tab[i+1][j]!=7 && tab[i+1][j]!=8 && tab[i+1][j]!=9 && tab[i+1][j]!=6 && tab[i+1][j]!=2 && tab[i+1][j]!=3) tab[i+1][j]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j+1]!=1 && tab[i+1][j+1]!=7 && tab[i+1][j+1]!=8 && tab[i+1][j+1]!=9 && tab[i+1][j+1]!=6 && tab[i+1][j+1]!=2 && tab[i+1][j+1]!=3 && tab[i+1][j+1]!=4) tab[i+1][j+1]=5; } else //sprawdzanie dla górnego prawego rogu if(tab[0][9]==1||tab[0][9]==7||tab[0][9]==8||tab[0][9]==9) { if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j-1]!=1 && tab[j-1]!=7 && tab[j-1]!=8 && tab[j-1]!=9 && tab[j-1]!=6 && tab[j-1]!=2 && tab[j-1]!=3) tab[j-1]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j-1]!=1 && tab[i+1][j-1]!=7 && tab[i+1][j-1]!=8 && tab[i+1][j-1]!=9 && tab[i+1][j-1]!=6 && tab[i+1][j-1]!=2 && tab[i+1][j-1]!=3 && tab[i+1][j-1]!=4) tab[i+1][j-1]=5; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j]!=1 && tab[i+1][j]!=7 && tab[i+1][j]!=8 && tab[i+1][j]!=9 && tab[i+1][j]!=6 && tab[i+1][j]!=2 && tab[i+1][j]!=3) tab[i+1][j]=4; } else //sprawdzanie dla dolnego prawego rogu if(tab[9][9]==1||tab[9][9]==7||tab[9][9]==8||tab[9][9]==9) { if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j]!=1 && tab[i-1][j]!=7 && tab[i-1][j]!=8 && tab[i-1][j]!=9 && tab[i-1][j]!=6 && tab[i-1][j]!=2 && tab[i-1][j]!=3) tab[i-1][j]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j-1]!=1 && tab[i-1][j-1]!=7 && tab[i-1][j-1]!=8 && tab[i-1][j-1]!=9 && tab[i-1][j-1]!=6 && tab[i-1][j-1]!=2 && tab[i-1][j-1]!=3 && tab[i-1][j-1]!=4) tab[i-1][j-1]=5; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j-1]!=1 && tab[j-1]!=7 && tab[j-1]!=8 && tab[j-1]!=9 && tab[j-1]!=6 && tab[j-1]!=2 && tab[j-1]!=3) tab[j-1]=4; } else //sprawdzanie dla dolnego lewego rogu if(tab[9][0]==1||tab[9][0]==7||tab[9][0]==8||tab[9][0]==9) { if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j]!=1 && tab[i-1][j]!=7 && tab[i-1][j]!=8 && tab[i-1][j]!=9 && tab[i-1][j]!=6 && tab[i-1][j]!=2 && tab[i-1][j]!=3) tab[i-1][j]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j+1]!=1 && tab[i-1][j+1]!=7 && tab[i-1][j+1]!=8 && tab[i-1][j+1]!=9 && tab[i-1][j+1]!=6 && tab[i-1][j+1]!=2 && tab[i-1][j+1]!=3 && tab[i-1][j+1]!=4) tab[i-1][j+1]=5; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j+1]!=1 && tab[j+1]!=7 && tab[j+1]!=8 && tab[j+1]!=9 && tab[j+1]!=6 && tab[j+1]!=2 && tab[j+1]!=3) tab[j+1]=4; } else //sprawdzanie dla pozostałych pól (środek tablicy) { if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j-1]!=1 && tab[j-1]!=7 && tab[j-1]!=8 && tab[j-1]!=9 && tab[j-1]!=6 && tab[j-1]!=2 && tab[j-1]!=3) tab[j-1]=4;// 4 - można postawić dodatkowy element statku w tym miejscu if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[j+1]!=1 && tab[j+1]!=7 && tab[j+1]!=8 && tab[j+1]!=9 && tab[j+1]!=6 && tab[j+1]!=2 && tab[j+1]!=3) tab[j+1]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j]!=1 && tab[i-1][j]!=7 && tab[i-1][j]!=8 && tab[i-1][j]!=9 && tab[i-1][j]!=6 && tab[i-1][j]!=2 && tab[i-1][j]!=3) tab[i-1][j]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j]!=1 && tab[i+1][j]!=7 && tab[i+1][j]!=8 && tab[i+1][j]!=9 && tab[i+1][j]!=6 && tab[i+1][j]!=2 && tab[i+1][j]!=3) tab[i+1][j]=4; if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i-1][j-1]!=1 && tab[i-1][j-1]!=7 && tab[i-1][j-1]!=8 && tab[i-1][j-1]!=9 && tab[i-1][j-1]!=6 && tab[i-1][j-1]!=2 && tab[i-1][j-1]!=3 && tab[i-1][j-1]!=4) tab[i-1][j-1]=5; // 5 - pole zablokowane, nie można w tym polu ustawić statku if((tab[j]==1||tab[j]==7||tab[j]==8||tab[j]==9) && tab[i+1][j-1]!=1 && tab[i+1][j-1]!=7 && tab[i+1][j-1]!=8 && tab[i+1][j-1]!=9 && tab[i+1][j-1]!=6 && tab[i+1][j-1]!=2 && tab[i+1][j-1]!=3 && tab[i+1][j-1]!=4) tab[i+1][j-1]=5; if((tab[j]==1||tab[j]==7||tab[j]==8||tab
Leogict
(Kanaliaon)
2 Grudzień 2009 13:04
#26
@2 posty wyżej
Jezu ile ifów… To się do śmiechu warte nadaje. Poczytaj o pętlach.
A wcześniej dałeś 100 case’ów…
Zupełnie źle do tego podchodzisz…
Rzuć okiem na moje statki:
gra-statki-obiektowo-t366292.html