Afişează mesaje
|
Pagini: [1] 2
|
1
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Răspuns: While loop problem X&O game
|
: Iulie 06, 2013, 10:44:31
|
Am observat ca ai zis ca nu e gata...dar iti zic niste chestii pe care le-am observat asa...succint uitandu-ma: 1.nu ai luat in calcul toate variantele de a castiga - in total sunt 8 pentru fiecare player (linie 1,2,3 coloana 1,2,3 diagonala principala diagonala secundara) 2.dupa un anumit numar de mutari player 2 (parca) devine caracterul cu codul ASCII 2 3.se poate alege o casuta mai mare ca 9 4.daca player 1 a mutat in casuta 2, dupa asta si player 2 poate muta in casuta 2. 5.la inceputul jocului cand alegi 'NEW GAME' si ce mai are nu sunt compelctate cazurile (2 si 3) 5'.La sfarsit in loc de if (p==4) pune if (p!=1 || p!=2 || p!=3) unde p e varbiabila opt (a ta)
Multumesc 1. Stiu ca nu am luat in calcul toate variantele. Ieri dupa ce am mai testat un pic mi-am dat seama. 2. Am observat ca devine acel smile din ASCII.. De ce se intampla asta? e foarte ciudat... 3. M-am gandit sa rezolv mai intai partea in care se introduc datele corect, ca apoi sa ma ocup de exceptii. 4. Inca ma mai gandesc la asta. Cred ca o sa bifez intr-un vector completat/necompletat. Daca o casuta este completata, respectiv daca nu. 5. Cazurile 2 si 3 le completez acum. 5'. Asa voi face. Multumesc. Voi reveni cu update-uri. peace
|
|
|
3
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / While loop problem X&O game
|
: Iulie 05, 2013, 14:53:38
|
Am incercat sa fac un joc de X si O in C++ si este aproape gata, subliniez aproape. Am o problema cu acel ciclu. In mod normal ar trebui sa se opreasca la k=9 dar ceva este gresit si nu se opreste.. in rest totul merge bine deocamdata, daca cineva pune 3 x sau 3 o in linie se opreste, dar cand nu castiga nimeni jocul continua mai mult decat trebuie. Care este problema? Am incercat si cu for() dar tot aia este... #include <iostream> #include <stdio.h> #include <windows.h> #include <conio.h>
using namespace std;
int opt, rez[3][3], casuta,casuta1,k=0; char player1[11], player2[11], a[8][13];
int main() { a[1][1]='-';a[1][2]='-';a[1][3]='-';a[1][4]='-';a[1][5]='-';a[1][6]='-';a[1][7]='-';a[1][8]='-';a[1][9]='-';a[1][10]='-';a[1][11]='-';a[1][12]='-';a[1][13]='-'; a[2][1]='|';a[2][2]=' ';a[2][3]='x';a[2][4]=' ';a[2][5]='|';a[2][6]=' ';a[2][7]='x';a[2][8]=' ';a[2][9]='|';a[2][10]=' ';a[2][11]='o';a[2][12]=' ';a[2][13]='|'; a[3][1]='-';a[3][2]='-';a[3][3]='-';a[3][4]='-';a[3][5]='-';a[3][6]='-';a[3][7]='-';a[3][8]='-';a[3][9]='-';a[3][10]='-';a[3][11]='-';a[3][12]='-';a[3][13]='-'; a[4][1]='|';a[4][2]=' ';a[4][3]='o';a[4][4]=' ';a[4][5]='|';a[4][6]=' ';a[4][7]='x';a[4][8]=' ';a[4][9]='|';a[4][10]=' ';a[4][11]='x';a[4][12]=' ';a[4][13]='|'; a[5][1]='-';a[5][2]='-';a[5][3]='-';a[5][4]='-';a[5][5]='-';a[5][6]='-';a[5][7]='-';a[5][8]='-';a[5][9]='-';a[5][10]='-';a[5][11]='-';a[5][12]='-';a[5][13]='-'; a[6][1]='|';a[6][2]=' ';a[6][3]='x';a[6][4]=' ';a[6][5]='|';a[6][6]=' ';a[6][7]='o';a[6][8]=' ';a[6][9]='|';a[6][10]=' ';a[6][11]='o';a[6][12]=' ';a[6][13]='|'; a[7][1]='-';a[7][2]='-';a[7][3]='-';a[7][4]='-';a[7][5]='-';a[7][6]='-';a[7][7]='-';a[7][8]='-';a[7][9]='-';a[7][10]='-';a[7][11]='-';a[7][12]='-';a[7][13]='-';
cout<<"== X & O game =="<<endl; cout<<" created by Bratie Fanut"<<endl<<endl;
for(int i=1;i<=7;i++) { for(int j=1;j<=13;j++) cout<<a[i][j]; cout<<endl; }
cout<<endl; cout<<"1. Joc Nou"<<endl; cout<<"2. Instructiuni"<<endl; cout<<"3. Scor"<<endl; cout<<"4. Iesire"<<endl;
cout<<endl;
cout<<"Introduceti optiunea dumneavoastra:"; cin>>opt;
if(opt == 1) {
a[2][3]=' '; a[2][7]=' '; a[2][11]=' '; a[4][3]=' '; a[4][7]=' '; a[4][11]=' '; a[6][3]=' '; a[6][7]=' '; a[6][11]=' ';
cout<<"Jocul va incepe dupa ce ambii jucatori si-au introdus numele"<<endl; cout<<"Introduceti numele, Player1:"<<endl; cin>>player1; cout<<"Introduceti numele, Player2:"<<endl; cin>>player2;
cout<<endl<<"LOADING..............."; system("cls"); cout<<"Jocul a inceput!"<<endl<<endl;
for(int i=1;i<=7;i++) { for(int j=1;j<=13;j++) cout<<a[i][j]; cout<<endl; }
while(k<=9) { cout<<player1<<" sunteti cu ,,X''. Introduceti numarul casutei dorite."; cin>>casuta; switch(casuta) { case 1: a[2][3]='X',rez[1][1]=1,k++; break;
case 2: a[2][7]='X',rez[1][2]=1,k++; break;
case 3: a[2][11]='X',rez[1][3]=1,k++; break;
case 4: a[4][3]='X',rez[2][1]=1,k++; break;
case 5: a[4][7]='X',rez[2][2]=1,k++; break;
case 6: a[4][11]='X',rez[2][3]=1,k++; break;
case 7: a[6][3]='X',rez[3][1]=1,k++; break;
case 8: a[6][7]='X',rez[3][2]=1,k++; break;
case 9: a[6][11]='X',rez[3][3]=1,k++; break; }
system("cls"); for(int i=1;i<=7;i++) { for(int j=1;j<=13;j++) cout<<a[i][j]; cout<<endl; }
if((rez[1][1]==1 && rez[1][2]==1 && rez[1][3]==1) || (rez[2][1]==1 && rez[2][2]==1 && rez[2][3]==1) || (rez[3][1]==1 && rez[3][2]==1 && rez[3][3]==1) || (rez[1][3]==1 && rez[2][2]==1 && rez[3][1]==1)) { cout<<player1<<" A CASTIGAT!!!"<<endl<<endl; exit(1);getch(); }
cout<<player2<<" sunteti cu ,,O''. Introduceti numarul casutei dorite."; cin>>casuta1; switch(casuta1) { case 1: a[2][3]='O',rez[1][1]=2,k++; break;
case 2: a[2][7]='O',rez[1][2]=2,k++; break;
case 3: a[2][11]='O',rez[1][3]=2,k++; break;
case 4: a[4][3]='O',rez[2][1]=2,k++; break;
case 5: a[4][7]='O',rez[2][2]=2,k++; break;
case 6: a[4][11]='O',rez[2][3]=2,k++; break;
case 7: a[6][3]='O',rez[3][1]=2,k++; break;
case 8: a[6][7]='O',rez[3][2]=2,k++; break;
case 9: a[6][11]='O',rez[3][3]=2,k++; break; } system("cls"); for(int i=1;i<=7;i++) { for(int j=1;j<=13;j++) cout<<a[i][j]; cout<<endl; } if((rez[1][1]==2 && rez[1][2]==2 && rez[1][3]==2) || (rez[2][1]==2 && rez[2][2]==2 && rez[2][3]==2) || (rez[3][1]==2 && rez[3][2]==2 && rez[3][3]==2) || (rez[1][3]==2 && rez[2][2]==2 && rez[3][1]==2)) { cout<<player2<<" A CASTIGAT!!!"<<endl<<endl; exit(1); getch(); }
}
cout<<"EGALITATE!!"<<endl;
}
if(opt==4) exit(0);
cout<<endl<<endl; return 0; }
|
|
|
4
|
infoarena - concursuri, probleme, evaluator, articole / Concursuri / Vundermind
|
: Martie 08, 2013, 16:33:24
|
vundermind este un concurs online, similar cu Olimpiada de Informatică din România, la nivel de liceu. Marele premiu pentru câștigător va fi o săptămână în Amsterdam, în vara anului 2013. Săptămâna va fi organizată de Vrije Universiteit și va include: vizitarea campusului VU, a laboratoarelor, prezentări ale industriei high-tech în Olanda, prezentarea oportunităților academice și profesionale oferite de Vrije Universiteit, întâlniri cu profesorii și alumni, precum și vizite la companiile de IT care oferă internshipuri studenților de la Vrije Universiteit. concursul are loc duminica la ora 9, inainte de .com 2012, runda 3. Elevii interesați să participe se pot înregistra pe site-ul web: Vundermind.
|
|
|
7
|
Comunitate - feedback, proiecte si distractie / Off topic / O ora de programare...
|
: Martie 06, 2013, 17:14:38
|
La ora de programare. Profesoara: "Se da problema: [inserati voi aici cerinta unei probleme in C++]. Acum cautati in calculatoare 2-3.txt. Acolo e rezolvarea. Daca nu o gasiti, incercati sa rezolvati singuri problema. Sau chemati-ma pe mine, ca am rezolvarea pe stick."
In mod normal ar fi trebuit ca scoala sa ma invete si altceva, ca am avut timp pana acum sa invat cum sa copiez. Sau poate-s eu prea pretentios... Daca vrei sa faci ceva cel mai bine ar fi sa stii ce inseamna 'autodidact'.
|
|
|
20
|
infoarena - concursuri, probleme, evaluator, articole / Informatica / Problema puncte laticeale
|
: Februarie 22, 2013, 16:05:44
|
Am sursa asta pt problema "Copaci": #include <fstream> #include <stdlib.h> using namespace std;
struct punct { long long x, y; }; punct v[100001];
long long n,i,a,b;
long long cmmdc( long long a, long long b ) { long long r; while( b ) { r = a % b; a = b; b = r; } return a; }
int main() { ifstream f("copaci.in"); ofstream g("copaci.out");
f>>n; for(i=1;i<=n;i++) f>>v[i].x>>v[i].y;
b=0; for(i=1;i<n;i++) b+=cmmdc(llabs(v[i].x-v[i+1].x),llabs(v[i].y-v[i+1].y));
long long x1,x2,y1,y2; for(i=1;i+1<n;i++) { x1=v[i].x-v[0].x; y1=v[i].y-v[0].y; x2=v[i+1].x-v[0].x; y2=v[i+1].y-v[0].y; a+=x1*y2-x2*y1; } a=llabs(a*0.5);
long long p=a-(b/2)+1; g<<p; f.close(); g.close(); return 0; }
Obtin doar 60 de puncte, pe primele 4 teste iau WA. imi poate sugera cineva ceva?
|
|
|
21
|
Comunitate - feedback, proiecte si distractie / Extinde arhiva / Răspuns: Despre ce este vorba...
|
: Februarie 17, 2013, 22:04:08
|
As dorii sa propun si eu o problema pentru arhiva problema are dificultate medie spre usoara si se poate rezolva cu ajutorul sirurilor de caractere. In afara de acordul autorului, fisierele de intrare/iesire pt teste si realizarea evaluatorului (lucru pe care deocamdata nu stiu sa il fac, dar am sa invat), trebuie sa mai fac si altceva? PS: ar trebui sa rezolv problema in mai multe moduri sau un singur algoritm este suficient?
|
|
|
24
|
infoarena - concursuri, probleme, evaluator, articole / Algoritmiada 2013 / Răspuns: Algoritmiada 2013, Runda 3
|
: Februarie 17, 2013, 17:34:40
|
Super m-am inscris si eu P.S: Pentru clasele 11-12, problemele vor cuprinde doar algoritmi studiati pana atunci la clasa, respectiv: divide et impera, backtracking, greedy si dinamica sau gama de probleme este mult mai variata?
|
|
|
|