squadron Temat założony przez niniejszego użytkownika |
Allegro C++ Problem z funkcją wyświetlającą pionki dzieki tablicy dwuwymiarowej char. » 2012-02-04 20:06:50 Problem jest następujący Aplikacja wyświetla mi wszystkie pionki w jednym miejscu choć mam zadeklarowane wszystkie mozliwe pozycje na planszy mam gdzieś babola w kodzie proszę o pomoc w znalezieniu :) Zadeklarowana Taka tablica na której opieram swoje szachy. char bierki[ 8 ][ 8 ] = { 'w', 'h', 'l', 'k', 'b', 'l', 'h', 'w', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'B', 'W', 'H', 'L', 'K', 'B', 'L', 'H', 'W', }; Następnie jest taka funkcja(jej kawałek dla zobrazowania) określająca po ID współrzędne x i y. int zID( int ID ) { if( ID = 0 ) x = 32, y = 32; else if( ID = 1 ) x = 125, y = 32; else if( ID = 2 ) x = 217, y = 32; else if( ID = 3 ) x = 310, y = 32; else if( ID = 4 ) x = 403, y = 32; else if( ID = 5 ) x = 496, y = 32; else if( ID = 6 ) x = 589, y = 32; else if( ID = 7 ) x = 682, y = 32; } i Funkcja wynikowa dzięki której wyświetlam sobie figury na planszy. void draw()
{ clear_to_color( bufor, makecol( 255, 0, 255 ) ); masked_blit( plansza, bufor, 0, 0, 0, 0, WIDTH, HEIGHT ); for( int i = 0; i <= 7; ++i ) { for( int j = 0; j <= 7; ++j ) { ID = i * 10 + j; zID( ID ); if( bierki i[ j ] == 'w' ) masked_blit( wiezab, bufor, 0, 0, x, y, 92, 92 ); else if( bierki i[ j ] == 'h' ) masked_blit( hetman, bufor, 0, 0, x, y, 92, 92 ); else if( bierki i[ j ] == 'l' ) masked_blit( goniec, bufor, 0, 0, x, y, 92, 92 ); } } blit( bufor, screen, 0, 0, 0, 0, WIDTH, HEIGHT ); } Zasada jest taka ze na podstawie tego co jest w tablicy char bierki program ma wyświetlić w odpowiednim miejscu odpowiednią figurę. [/i] |