#include <SFML/Graphics.hpp>
#include <iostream>
#include <cmath>
#include <ostream>
#include <cstdlib>
#include <ctime>
#include <windows.h>
#define RAND_MAX
#include <algorithm>
using namespace std;
using namespace sf;
int main()
{ //pomocne inty/stringi
string infoend="KONIEC KONIEC KONIEC";
//dodawanie obiektow
RenderWindow window(VideoMode(800, 600, 32), "KOLKO I KRZYZYK"); //renderowanie okna
window.setFramerateLimit(60);
//nic
Texture img_nic;
img_nic.loadFromFile("grafika/nic.png");
Sprite nic;
nic.setTexture(img_nic);
//kolo
Texture img_kolo;
img_kolo.loadFromFile("grafika/o.png");
Sprite kolko;
kolko.setTexture(img_kolo);
//krzyzyk
Texture img_krzyzyk;
img_krzyzyk.loadFromFile("grafika/x.png");
Sprite krzyzyk;
krzyzyk.setTexture(img_krzyzyk);
//budowanie mapy
int mapa[3][3]
{
{1, 1, 1},
{1, 1, 1},
{1, 1, 1}
}
while (window.isOpen())// otworzenie okba
{
Event event;//zdarzenie - wylacznie okna
while (window.pollEvent(event))
{
if (event.type == Event::Closed)
window.close();
}
//kolejka
int kolejka=2;
if( Keyboard::isKeyPressed( Keyboard::V ) )
{
kolejka=3;
}
//RUCHY // I tu zamiast klawiszy chciałbym zrobic zdarzenie z myszką
if( Keyboard::isKeyPressed( Keyboard::Q ) )
{
mapa[0][0]=kolejka;
}
if( Keyboard::isKeyPressed( Keyboard::W ) )
{
mapa[0][1]=kolejka;
}
if( Keyboard::isKeyPressed( Keyboard::E ) )
{
mapa[0][2]=kolejka;
}
if( Keyboard::isKeyPressed( Keyboard::A ) )
{
mapa[1][0]=kolejka;
}
if( Keyboard::isKeyPressed( Keyboard::S ) )
{
mapa[1][1]=kolejka;
}
if( Keyboard::isKeyPressed( Keyboard::D ) )
{
mapa[1][2]=kolejka;
}
if( Keyboard::isKeyPressed( Keyboard::Z ) )
{
mapa[2][0]=kolejka;
}
if( Keyboard::isKeyPressed( Keyboard::X ) )
{
mapa[2][1]=kolejka;
}
if( Keyboard::isKeyPressed( Keyboard::C ) )
{
mapa[2][2]=kolejka;
}
//ify wygranej
//na ukos
if(mapa[0][0]==kolejka && mapa[1][1]==kolejka && mapa[2][2]==kolejka)
{
cout<< infoend;
break;
}
if(mapa[0][2]==kolejka && mapa[1][1]==kolejka && mapa[2][0]==kolejka)
{
cout<< infoend;
break;
}
//pionowo
if(mapa[0][0]==kolejka && mapa[0][1]==kolejka && mapa[0][2]==kolejka)
{
cout<< infoend;
break;
}
if(mapa[1][0]==kolejka && mapa[1][1]==kolejka && mapa[1][2]==kolejka)
{
cout<< infoend;
break;
}
if(mapa[2][0]==kolejka && mapa[2][1]==kolejka && mapa[2][2]==kolejka)
{
cout<< infoend;
break;
}
//poziomo
if(mapa[0][0]==kolejka && mapa[1][0]==kolejka && mapa[2][0]==kolejka)
{
cout<< infoend;
break;
}
if(mapa[0][1]==kolejka && mapa[1][1]==kolejka && mapa[2][1]==kolejka)
{
cout<< infoend;
break;
}
if(mapa[0][2]==kolejka && mapa[1][2]==kolejka && mapa[2][2]==kolejka)
{
cout<< infoend;
break;
}
window.clear();
//renderowanie mapy
for(int y=0; y<3; y++){
for(int x=0; x<3; x++){
if(mapa[y][x]==1) // rederowanie 'nic'
{
nic.setPosition(x*64+10,y*64+10);
window.draw(nic);
}
if(mapa[y][x]==2) // renderowanie 'O'
{
kolko.setPosition(x*64+10,y*64+10);
window.draw(kolko);
}
if(mapa[y][x]==3) // renderoanie 'X'
{
krzyzyk.setPosition(x*64+10,y*64+10);
window.draw(krzyzyk);
}
} //koniec renderoanie mapy
} //koniec okna
window.display();
}
}
A więc tak. Zacznę od tego, że nie wiem jak zrobić aby po kolejce gracza 'O' zmieniała się na gracza 'X'. Testowo zrobiłem to w taki sposób, że przytrzymując klawisz 'V' zmienia się kolejka z gracza 'O' na 'X'.
Innym moim problem jest brak obsługi myszki. I tu pytanie jak mogę 'wykryć' kliknięcie na danym polu...
Jest ktoś kto może mi poradzić? :)
* tak wiem, że kod jest jaki jest ale się staram.