#include <iostream>
using namespace std;
#include <string>
#include <iostream>
using namespace std;
int wariant1 = 0;
int wariant2 = 0;
int wariant3 = 0;
int wariant4 = 0;
void szukajZnaku( string & tekst, char szukanyZnak1, char szukanyZnak2, char szukanyZnak3, char szukanyZnak4, char szukanyZnak5, char szukanyZnak6, char szukanyZnak7, char szukanyZnak8)
{
size_t znalezionaPozycja1 = tekst.find( szukanyZnak1);
if( znalezionaPozycja1 == string::npos ){
size_t znalezionaPozycja2 = tekst.find( szukanyZnak1);
if( znalezionaPozycja2 == string::npos ){
size_t znalezionaPozycja3 = tekst.find( szukanyZnak1);
if( znalezionaPozycja3 == string::npos ){
size_t znalezionaPozycja4 = tekst.find( szukanyZnak1);
if( znalezionaPozycja4 == string::npos ){
size_t znalezionaPozycja5 = tekst.find( szukanyZnak1);
if( znalezionaPozycja5 == string::npos ){
size_t znalezionaPozycja6 = tekst.find( szukanyZnak1);
if( znalezionaPozycja6 == string::npos ){
size_t znalezionaPozycja7 = tekst.find( szukanyZnak1);
if( znalezionaPozycja7 == string::npos ){
size_t znalezionaPozycja8 = tekst.find( szukanyZnak1);
if( znalezionaPozycja8 == string::npos ){
}else{
wariant1=wariant1+8;
}
}else{
wariant1=wariant1+7;
}
}else{
wariant1=wariant1+6;
}
}else{
wariant1=wariant1+5;
}
}else{
wariant1=wariant1+4;
}
}else{
wariant1=wariant1+3;
}
}else{
wariant1=wariant1+2;
}
}else{
wariant1=wariant1+1;
}
}
void szukajZnaku2( string & tekst, char szukanyZnak1, char szukanyZnak2, char szukanyZnak3, char szukanyZnak4, char szukanyZnak5, char szukanyZnak6, char szukanyZnak7, char szukanyZnak8)
{
size_t znalezionaPozycja1 = tekst.find( szukanyZnak1);
if( znalezionaPozycja1 == string::npos ){
size_t znalezionaPozycja2 = tekst.find( szukanyZnak1);
if( znalezionaPozycja2 == string::npos ){
size_t znalezionaPozycja3 = tekst.find( szukanyZnak1);
if( znalezionaPozycja3 == string::npos ){
size_t znalezionaPozycja4 = tekst.find( szukanyZnak1);
if( znalezionaPozycja4 == string::npos ){
size_t znalezionaPozycja5 = tekst.find( szukanyZnak1);
if( znalezionaPozycja5 == string::npos ){
size_t znalezionaPozycja6 = tekst.find( szukanyZnak1);
if( znalezionaPozycja6 == string::npos ){
size_t znalezionaPozycja7 = tekst.find( szukanyZnak1);
if( znalezionaPozycja7 == string::npos ){
size_t znalezionaPozycja8 = tekst.find( szukanyZnak1);
if( znalezionaPozycja8 == string::npos ){
}else{
wariant2=wariant2+8;
}
}else{
wariant2=wariant2+7;
}
}else{
wariant2=wariant2+6;
}
}else{
wariant2=wariant2+5;
}
}else{
wariant2=wariant2+4;
}
}else{
wariant2=wariant2+3;
}
}else{
wariant2=wariant2+2;
}
}else{
wariant2=wariant2+1;
}
}
void szukajZnaku3( string & tekst, char szukanyZnak1, char szukanyZnak2, char szukanyZnak3, char szukanyZnak4, char szukanyZnak5, char szukanyZnak6, char szukanyZnak7, char szukanyZnak8)
{
size_t znalezionaPozycja1 = tekst.find( szukanyZnak1);
if( znalezionaPozycja1 == string::npos ){
size_t znalezionaPozycja2 = tekst.find( szukanyZnak1);
if( znalezionaPozycja2 == string::npos ){
size_t znalezionaPozycja3 = tekst.find( szukanyZnak1);
if( znalezionaPozycja3 == string::npos ){
size_t znalezionaPozycja4 = tekst.find( szukanyZnak1);
if( znalezionaPozycja4 == string::npos ){
size_t znalezionaPozycja5 = tekst.find( szukanyZnak1);
if( znalezionaPozycja5 == string::npos ){
size_t znalezionaPozycja6 = tekst.find( szukanyZnak1);
if( znalezionaPozycja6 == string::npos ){
size_t znalezionaPozycja7 = tekst.find( szukanyZnak1);
if( znalezionaPozycja7 == string::npos ){
size_t znalezionaPozycja8 = tekst.find( szukanyZnak1);
if( znalezionaPozycja8 == string::npos ){
}else{
wariant3=wariant3+8;
}
}else{
wariant3=wariant3+7;
}
}else{
wariant3=wariant3+6;
}
}else{
wariant3=wariant3+5;
}
}else{
wariant3=wariant3+4;
}
}else{
wariant3=wariant3+3;
}
}else{
wariant3=wariant3+2;
}
}else{
wariant3=wariant3+1;
}
}
void szukajZnaku4( string & tekst, char szukanyZnak1, char szukanyZnak2, char szukanyZnak3, char szukanyZnak4, char szukanyZnak5, char szukanyZnak6, char szukanyZnak7, char szukanyZnak8)
{
size_t znalezionaPozycja1 = tekst.find( szukanyZnak1);
if( znalezionaPozycja1 == string::npos ){
size_t znalezionaPozycja2 = tekst.find( szukanyZnak1);
if( znalezionaPozycja2 == string::npos ){
size_t znalezionaPozycja3 = tekst.find( szukanyZnak1);
if( znalezionaPozycja3 == string::npos ){
size_t znalezionaPozycja4 = tekst.find( szukanyZnak1);
if( znalezionaPozycja4 == string::npos ){
size_t znalezionaPozycja5 = tekst.find( szukanyZnak1);
if( znalezionaPozycja5 == string::npos ){
size_t znalezionaPozycja6 = tekst.find( szukanyZnak1);
if( znalezionaPozycja6 == string::npos ){
size_t znalezionaPozycja7 = tekst.find( szukanyZnak1);
if( znalezionaPozycja7 == string::npos ){
size_t znalezionaPozycja8 = tekst.find( szukanyZnak1);
if( znalezionaPozycja8 == string::npos ){
}else{
wariant4=wariant4+8;
}
}else{
wariant4=wariant4+7;
}
}else{
wariant4=wariant4+6;
}
}else{
wariant4=wariant4+5;
}
}else{
wariant4=wariant4+4;
}
}else{
wariant4=wariant4+3;
}
}else{
wariant4=wariant4+2;
}
}else{
wariant4=wariant4+1;
}
}
int main()
{
string naszTekst;
cin >> naszTekst;
string naszTekst2;
cin >> naszTekst2;
int wariant1 = szukajZnaku( naszTekst, 'a','b','c','d','e','f','g','h');
int wariant2 = szukajZnaku2( naszTekst, '1','2','3','4','5','6','7','8');
int wariant3 = szukajZnaku3( naszTekst2, 'a','b','c','d','e','f','g','h');
int wariant4 = szukajZnaku4( naszTekst2, '1','2','3','4','5','6','7','8');
cout<<wariant1<<endl;
cout<<wariant2<<endl;
cout<<wariant3<<endl;
cout<<wariant4<<endl;
string listaRuchow [16];
int petla = 0;
int liczbaRuchow = 0;
int pozycjaPoczatkowaCyfra;
int pozycjaPoczatkowaLitera;
int pozycjaKoncowaCyfra;
int pozycjaKoncowaLitera;
string literaPoczatkowa;
string literaKoncowa;
if(wariant1 == 'a'){
pozycjaPoczatkowaLitera = 1;
}
else if(wariant1 == 'b'){
pozycjaPoczatkowaLitera = 2;
}
else if(wariant1 == 'c'){
pozycjaPoczatkowaLitera = 3;
}
else if(wariant1 == 'd'){
pozycjaPoczatkowaLitera = 4;
}
else if(wariant1 == 'e'){
pozycjaPoczatkowaLitera = 5;
}
else if(wariant1 == 'f'){
pozycjaPoczatkowaLitera = 6;
}
else if(wariant1 == 'g'){
pozycjaPoczatkowaLitera = 7;
}
else if(wariant1 == 'h'){
pozycjaPoczatkowaLitera = 8;
}
if(wariant3 == 'a'){
pozycjaKoncowaLitera = 1;
}
else if(wariant3 == 'b'){
pozycjaKoncowaLitera = 2;
}
else if(wariant3 == 'c'){
pozycjaKoncowaLitera = 3;
}
else if(wariant3 == 'd'){
pozycjaKoncowaLitera = 4;
}
else if(wariant3 == 'e'){
pozycjaKoncowaLitera = 5;
}
else if(wariant3 == 'f'){
pozycjaKoncowaLitera = 6;
}
else if(wariant3 == 'g'){
pozycjaKoncowaLitera = 7;
}
else if(wariant3 == 'h'){
pozycjaKoncowaLitera = 8;
}
while(petla < 1){
if(pozycjaPoczatkowaCyfra < pozycjaKoncowaCyfra && pozycjaPoczatkowaLitera == pozycjaKoncowaLitera){
liczbaRuchow ++;
listaRuchow[liczbaRuchow - 1] = "N";
pozycjaPoczatkowaCyfra ++;
}
else if(pozycjaPoczatkowaCyfra < pozycjaKoncowaCyfra && pozycjaPoczatkowaLitera < pozycjaKoncowaLitera){
liczbaRuchow ++;
listaRuchow[liczbaRuchow - 1] = "NE";
pozycjaPoczatkowaCyfra ++;
pozycjaPoczatkowaLitera ++;
}
else if(pozycjaPoczatkowaCyfra < pozycjaKoncowaCyfra && pozycjaPoczatkowaLitera > pozycjaKoncowaLitera){
liczbaRuchow ++;
listaRuchow[liczbaRuchow - 1] = "NW";
pozycjaPoczatkowaCyfra ++;
pozycjaPoczatkowaLitera --;
}
else if(pozycjaPoczatkowaCyfra == pozycjaKoncowaCyfra && pozycjaPoczatkowaLitera > pozycjaKoncowaLitera){
liczbaRuchow ++;
listaRuchow[liczbaRuchow - 1] = "W";
pozycjaPoczatkowaLitera --;
}
else if(pozycjaPoczatkowaCyfra == pozycjaKoncowaCyfra && pozycjaPoczatkowaLitera < pozycjaKoncowaLitera){
liczbaRuchow ++;
listaRuchow[liczbaRuchow - 1] = "E";
pozycjaPoczatkowaLitera ++;
}
else if(pozycjaPoczatkowaCyfra > pozycjaKoncowaCyfra && pozycjaPoczatkowaLitera == pozycjaKoncowaLitera){
liczbaRuchow ++;
listaRuchow[liczbaRuchow - 1] = "S";
pozycjaPoczatkowaCyfra --;
}
else if(pozycjaPoczatkowaCyfra > pozycjaKoncowaCyfra && pozycjaPoczatkowaLitera > pozycjaKoncowaLitera){
liczbaRuchow ++;
listaRuchow[liczbaRuchow - 1] = "SW";
pozycjaPoczatkowaCyfra --;
pozycjaPoczatkowaLitera --;
}
else if(pozycjaPoczatkowaCyfra > pozycjaKoncowaCyfra && pozycjaPoczatkowaLitera < pozycjaKoncowaLitera){
liczbaRuchow ++;
listaRuchow[liczbaRuchow - 1] = "SE";
pozycjaPoczatkowaCyfra --;
pozycjaPoczatkowaLitera ++;
}
else{
petla = 1;
}
}
cout << liczbaRuchow << endl;
for(int i = 1; i<=liczbaRuchow; i++){
cout<<listaRuchow[i - 1] << " ";
}
}
0
0
Przecież dostałeś działające rozwiązanie 28 wierszowe, czemu drążysz to co wkleiłeś zamiast przeanalizować działające?
https://4programmers.net/Forum/C_i_C++/365579-obliczenie_ruchow_krola_w_szachach?p=1886390#id1886390
2
int wariant1 = szukajZnaku( naszTekst, 'a','b','c','d','e','f','g','h');
int wariant2 = szukajZnaku2( naszTekst, '1','2','3','4','5','6','7','8');
int wariant3 = szukajZnaku3( naszTekst2, 'a','b','c','d','e','f','g','h');
int wariant4 = szukajZnaku4( naszTekst2, '1','2','3','4','5','6','7','8');
Próbujesz do zmiennej int
przypisać zwracaną wartość z funkcji. Tyle, że to funkcje typu void
, które nie zwracają argumentów
Wystarczy zamienić na
szukajZnaku( naszTekst, 'a','b','c','d','e','f','g','h');
szukajZnaku2( naszTekst, '1','2','3','4','5','6','7','8');
szukajZnaku3( naszTekst2, 'a','b','c','d','e','f','g','h');
szukajZnaku4( naszTekst2, '1','2','3','4','5','6','7','8');
Zmienne wariant i tak masz podane globalnie