• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kółko i krzyżyk

Object Storage Arubacloud
0 głosów
191 wizyt
pytanie zadane 8 stycznia 2017 w C i C++ przez wada Nowicjusz (140 p.)

Cześć!

Otóż tworze gre w konsoli, kołko i krzyżyk. Gdy jeden gracz wybierze "x" na współrzędnych a1, to drugi gracz również może to zrobić wpisując tam "o". Czy da się coś z tym zrobić, żeby było tak jak powinno?(czyli:Gdy jeden gracz wybierze "x" na współrzędnych a1, to drugi gracz nie może juz tam wpisać "o".). Licze przynajmniej na wskazówkę! Z góry dziękuje! :D (jestem początkujący, wybaczcie za niestaranność kodu).

#include <iostream>
#include <time.h>
#include <windows.h>
#include <cstdlib>
#include <stdio.h>
#include <conio.h>
#include <fstream>
#include <iomanip>
#include <string>
#include <algorithm>

using namespace std;
//bool wybor_ok;
int wybor1,wybor2; int kolejka;
string a1="1",a2="2",a3="3",a4="4",a5="5",a6="6",a7="7",a8="8",a9="9";
string b1="x",b2,b3,b4,b5,b6,b7,b8,b9;
int main()
{
    cout<<"GRA W KOLKO I KRZYZYK";
   // Sleep(2500);
    system("cls");
//TABLICA GRY
    cout<<"-------------"<<endl;
    cout<<"| "<<a1<<" | "<<a2<<" | "<<a3<<" |"<<endl;
    cout<<"-------------"<<endl;
    cout<<"| "<<a4<<" | "<<a5<<" | "<<a6<<" |"<<endl;
    cout<<"-------------"<<endl;
    cout<<"| "<<a7<<" | "<<a8<<" | "<<a9<<" |"<<endl;
    cout<<"-------------"<<endl;
    kolejka=2;

for(int i=0;i<=4;i++)
{


//X-ZNACZNIK

    if(kolejka==1)
    {
        wybor1=getch();
 switch(wybor1)
 {


    case '1':
        a1.replace(0,1,"x");
    break;

    case '2':
        a2.replace(0,1,"x");
    break;

    case '3':
        a3.replace(0,1,"x");
    break;

    case '4':
        a4.replace(0,1,"x");
    break;

    case '5':
        a5.replace(0,1,"x");
    break;

    case '6':
        a6.replace(0,1,"x");
    break;

    case '7':
        a7.replace(0,1,"x");
    break;

    case '8':
        a8.replace(0,1,"x");
    break;

    case '9':
        a9.replace(0,1,"x");
    break;

    default:
        cout<<"Nie ma takiej opcji w menu";
        break;
 }
 kolejka++;
 cout<<"-------------"<<endl;
    cout<<"| "<<a1<<" | "<<a2<<" | "<<a3<<" |"<<endl;
    cout<<"-------------"<<endl;
    cout<<"| "<<a4<<" | "<<a5<<" | "<<a6<<" |"<<endl;
    cout<<"-------------"<<endl;
    cout<<"| "<<a7<<" | "<<a8<<" | "<<a9<<" |"<<endl;
    cout<<"-------------"<<endl;

     if((a1=="x"&&a4=="x"&&a7=="x")||(a1=="x"&&a2=="x"&&a3=="x")||(a1=="x"&&a5=="x"&&a9=="x")||
       (a2=="x"&&a5=="x"&&a8=="x")||(a3=="x"&&a6=="x"&&a9=="x")||(a3=="x"&&a5=="x"&&a7=="x")||
       (a4=="x"&&a5=="x"&&a6=="x")||(a7=="x"&&a8=="x"&&a9=="x"))
       {
        cout<<"WYGRAŁ x";
            exit(0);
       }

    }


//O-ZNACZNIK
    if(kolejka==2)
    {
        wybor2=getch();
        switch(wybor2)
 {

    case '1':
        a1.replace(0,1,"o");
    break;

    case '2':
        a2.replace(0,1,"o");
    break;

    case '3':
        a3.replace(0,1,"o");
    break;

    case '4':
        a4.replace(0,1,"o");
    break;

    case '5':
        a5.replace(0,1,"o");
    break;

    case '6':
        a6.replace(0,1,"o");
    break;

    case '7':
        a7.replace(0,1,"o");
    break;

    case '8':
        a8.replace(0,1,"o");
    break;

    case '9':
        a9.replace(0,1,"o");
    break;

    default:
        cout<<"Nie ma takiej opcji w menu";
 }


 kolejka--;
 cout<<"-------------"<<endl;
    cout<<"| "<<a1<<" | "<<a2<<" | "<<a3<<" |"<<endl;
    cout<<"-------------"<<endl;
    cout<<"| "<<a4<<" | "<<a5<<" | "<<a6<<" |"<<endl;
    cout<<"-------------"<<endl;
    cout<<"| "<<a7<<" | "<<a8<<" | "<<a9<<" |"<<endl;
    cout<<"-------------"<<endl;

    if((a1=="o"&&a4=="o"&&a7=="o")||(a1=="o"&&a2=="o"&&a3=="o")||(a1=="o"&&a5=="o"&&a9=="o")||
       (a2=="o"&&a5=="o"&&a8=="o")||(a3=="o"&&a6=="o"&&a9=="o")||(a3=="o"&&a5=="o"&&a7=="o")||
       (a4=="o"&&a5=="o"&&a6=="o")||(a7=="o"&&a8=="o"&&a9=="o"))
       {
        cout<<"WYGRAL o";
        exit(0);
       }
 }



}
    return 0;

}

 

1 odpowiedź

+1 głos
odpowiedź 8 stycznia 2017 przez timrh Mądrala (6,030 p.)

zrób enum określający status i tablicę z indeksem dla każdego pola

enum status{ puste, krzyzyk, kolko};

status statusy[9];

przy wpisaniu zapisz na danym indeksie daną wartość zależnie od tego kto się rusza,

a potem sprawdź czy już dane pole nie jest zapisane:

if(status[2] == puste) 
{
 //pozwól na ruch
}

 

Podobne pytania

0 głosów
0 odpowiedzi 266 wizyt
pytanie zadane 26 stycznia 2022 w C i C++ przez kwkstein Nowicjusz (150 p.)
0 głosów
1 odpowiedź 598 wizyt
0 głosów
0 odpowiedzi 700 wizyt
pytanie zadane 30 listopada 2021 w C i C++ przez niezalogowany

92,542 zapytań

141,383 odpowiedzi

319,482 komentarzy

61,929 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...