matrix

Tags:    c++

Hej

Jeg vil bare spørge om en af jer kunne forklare mig hvad matrix er ?

if (matrix[2][0]=='X' && matrix[2][0]==matrix[1][1] && matrix[1][1]==matrix[0][2]) {cout<<"Player 1 vinder"<<endl;break;}

Jeg har kigget på en af mine venners programmerings opgave og i han kode har han skrevet dette her " if (matrix[2][0]=='X' && matrix[2][0]==matrix[1][1] && matrix[1][1]==matrix[0][2]) {cout<<"Player 1 vinder"<<endl;break;}" adskillige gange ?

Men nu hvor han er ude og rejse og ikke har muligheden for at kontakte ham kan jeg selvfølgelig ikke spørge ham..

Håber i har et svar på det

Tak på forhånd



7 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 33 karma
Sorter efter stemmer Sorter efter dato
Jeg vil gerne vide præcis hvad matrix er og en anden ting er at jeg gerne vil vide hvad char cout osv. er..

en forklaring for her sætning i koden


En forklaring for hver sætning - er du skør?

Det er et kryds og bolle spil, det der. Og hvis du ikke ved hvad tingene gør, ville jeg tage et skridt tilbage og starte med noget lidt mere simpelt.

matrix i dette tilfælde er bare et 2D array. Så hvis du ikke ved hvad et matrix er, kan du bare tænke på det som det. Ellers kan du jo prøve at google hvad et matrix er.



Matrix er en matematisk bergernings metode der bruges til at beregne positioner af vektorer i blandt andet 2D og 3D vektor baseret grafik. Det kode du viser giver ikke meget mening. Se blandt andet matrix paa wiki. Eller google dig frem! Du vil kunne finde en masse information omkring matrix og vektor beregninger.



Det virker ikke til du ved ret meget om C++/kode.
så var det måske ikke en ide at starte med noget C++ Get started ?
så du får en forståelse af hvad det vil sige at kode(C++), og der ved også lære hvad det forskellige betyder.



En matrix eller matrice er i programmering faktisk snarere et dobbelt array eller en tabel.

En matrice i matematik kan bruges til bl.a. transformationer af vektorer i 2D eller 3D men kan bruges til meget mere. Tjek Wikipedia.

Sådan som du bruger den i din kode, har det intet med matematik at gøre, men er bare et dobbelt array.



Du kan jo lige tage et kig på min vens program ;) Det vil være dejligt hvis du kunne hjælpe mig..

Fold kodeboks ind/udC++ kode 
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>


char matrix[3][3];//={0};
void cou(void);
int main()
{

int m,n;
char ch='y';
while(ch=='Y'||ch=='y'){
for (m=0;m<3;m++)for (n=0;n<3;n++)matrix[m][n]= '\0';
int i,j,sum=0;
while ( sum < 10){
if (sum == 0) cou();


cout<<"Player 1 'X': Vaelg Raekkerne og kolonne"<<endl;
cout<<"Raekke : ";
cin>>i;
cout<<"kolonne : ";
cin>>j;
for (;i>3 || i<1 || j>3 || j<1 ||('X'==matrix[i-1][j-1]||'O'==matrix[i-1][j-1]);) {cout<<"Undskyld min ven, men du boer vaelge en anden plads.\n";cout<<"row : ";cin>>i;cout<<"column : ";cin>>j;}
matrix[i-1][j-1]='X';
sum++;
cou();

//check if wins
if (matrix[0][0]=='X' && matrix[0][0]==matrix[1][1] && matrix[1][1]==matrix[2][2]) {cout<<"Player 1 vinder"<<endl;break;}
if (matrix[2][0]=='X' && matrix[2][0]==matrix[1][1] && matrix[1][1]==matrix[0][2]) {cout<<"Player 1 vinder"<<endl;break;}
if (matrix[0][0]=='X' && matrix[0][0]==matrix[1][0] && matrix[1][0]==matrix[2][0]) {cout<<"Player 1 vinder"<<endl;break;}
if (matrix[0][1]=='X' && matrix[0][1]==matrix[1][1] && matrix[1][1]==matrix[2][1]) {cout<<"Player 1 vinder"<<endl;break;}
if (matrix[0][2]=='X' && matrix[0][2]==matrix[1][2] && matrix[1][2]==matrix[2][2]) {cout<<"Player 1 vinder"<<endl;break;}
if (matrix[0][0]=='X' && matrix[0][0]==matrix[0][1] && matrix[0][1]==matrix[0][2]) {cout<<"Player 1 vinder"<<endl;break;}
if (matrix[1][0]=='X' && matrix[1][0]==matrix[1][1] && matrix[1][1]==matrix[1][2]) {cout<<"Player 1 vinder"<<endl;break;}
if (matrix[2][0]=='X' && matrix[2][0]==matrix[2][1] && matrix[2][1]==matrix[2][2]) {cout<<"Player 1 wins"<<endl;break;}

if (sum == 9){cout<<"Spillet er slut og ingen vinder. Hahaha, i begge nogle loser !!!!"<<endl; break;} //sum=9 fordi der kun er 9 bokse i spillet
//player 2's tur

cout<<"Player 2 er 'O': vælg raekke og kolonne"<<endl;
cout<<"Raekke : ";
cin>>i;
cout<<"kolonne : ";
cin>>j;
for (;i>3 || i<1 || j>3 || j<1 ||('X'==matrix[i-1][j-1]||'O'==matrix[i-1][j-1]);) {cout<<" Undskyld min ven, men du boer vaelge en anden plads.\n";cout<<"row : ";cin>>i;cout<<"kolonne : ";cin>>j;}
matrix[i-1][j-1]='O';
sum++;
//the play box
cou();
//check if wins
if (matrix[0][0]=='O' && matrix[0][0]==matrix[1][1] && matrix[1][1]==matrix[2][2]) {cout<<"Player 2 vinder"<<endl;break;}
if (matrix[2][0]=='O' && matrix[2][0]==matrix[1][1] && matrix[1][1]==matrix[0][2]) {cout<<"Player 2 vinder"<<endl;break;}
if (matrix[0][0]=='O' && matrix[0][0]==matrix[1][0] && matrix[1][0]==matrix[2][0]) {cout<<"Player 2 vinder"<<endl;break;}
if (matrix[0][1]=='O' && matrix[0][1]==matrix[1][1] && matrix[1][1]==matrix[2][1]) {cout<<"Player 2 vinder"<<endl;break;}
if (matrix[0][2]=='O' && matrix[0][2]==matrix[1][2] && matrix[1][2]==matrix[2][2]) {cout<<"Player 2 vinder"<<endl;break;}
if (matrix[0][0]=='O' && matrix[0][0]==matrix[0][1] && matrix[0][1]==matrix[0][2]) {cout<<"Player 2 vinder"<<endl;break;}
if (matrix[1][0]=='O' && matrix[1][0]==matrix[1][1] && matrix[1][1]==matrix[1][2]) {cout<<"Player 2 vinder"<<endl;break;}
if (matrix[2][0]=='O' && matrix[2][0]==matrix[2][1] && matrix[2][1]==matrix[2][2]) {cout<<"Player 2 vinder"<<endl;break;}

}
cout<<"\nHar du lyst til at spille igen??? (Y - N)\n";
cin>>ch;
}
system("PAUSE");
return 0;
}




void cou(void)
{
//the play box
cout<<"\n\t\t 1 2 3\n"<<endl;
cout<<"\t\t 1 "<<matrix[0][0]<<" | "<<matrix[0][1]<<" | "<<matrix[0][2]<<endl;
cout<<"\t\t ---|---|---\n";
cout<<"\t\t 2 "<<matrix[1][0]<<" | "<<matrix[1][1]<<" | "<<matrix[1][2]<<endl;
cout<<"\t\t ---|---|---\n";
cout<<"\t\t 3 "<<matrix[2][0]<<" | "<<matrix[2][1]<<" | "<<matrix[2][2]<<"\n\n\n";
}




Indlæg senest redigeret d. 04.04.2012 12:25 af Bruger #17134
Du kan starte med at skrive, hvad vi skal hjælpe dig med?

Det er vel bare et X og O spil, hvor han validerer hvad der står i et array for at se om der er tre på en række?



Jeg vil gerne vide præcis hvad matrix er og en anden ting er at jeg gerne vil vide hvad char cout osv. er..

en forklaring for her sætning i koden



t