Programmera spel i C++ för nybörjare/Luffarchack

Från Wikibooks
Hoppa till navigering Hoppa till sök


Det här spelets främsta förtjänst är att det visar hur en tvådimensionell array kan användas för att skapa en enkel spelplan i konsollfönstret. Grunderna är färdigprogrammerade så den som vill vidareutveckla spelet borde inte ha några problem. Koden har få kommentarer men den är lätt att förstå ändå.

//Koden skänkt till wikibooks av Mattias Olsson, John Bauergymansiet i Uddevalla
//December 2011
#include "stdafx.h"
#include <iostream> 
using namespace std;


int _tmain(int argc, _TCHAR* argv[]) 
{
bool gameover = false;
bool xtur = true;
bool harvalt = false; //om man lagt ut en spelpjäs

int schack [3][3] ={0};//Skapa array för spelplan 3x3 rutor

while (gameover == false)
{//gameover

int valdsiffra =0;
if (xtur == true)
 cout << "vart vill du sätta ditt 1?" << endl; 
else
 cout << "vart vill du sätta ditt 2?" << endl; 

cout << "1=A1" << endl; 
cout << "2=A2" << endl;
cout << "3=A3" << endl;
cout << "4=B1" << endl;
cout << "5=B2" << endl;
cout << "6=B3" << endl;
cout << "7=C1" << endl;
cout << "8=C2" << endl;
cout << "9=C3" << endl;
cin >>valdsiffra; 

if (valdsiffra==1)
{ 
 if (schack [0][0]==0)
 {
  if (xtur==true)
  schack [0][0]=1; //1 tur
 else
  schack [0][0]=2; //2 tur

harvalt = true;
}
else
 cout << "A1 är upptaget" << endl;
 }


if (valdsiffra==2)
{ 
if (schack [1][0]==0)
 {
  if (xtur==true)
  schack [1][0]=1; //1 tur
 else
  schack [1][0]=2; //2 tur
 harvalt = true;
 }
else
cout << "A2 är upptaget" << endl;
}


if (valdsiffra==3)
{ 
if (schack [2][0]==0)
{
if (xtur==true)
schack [2][0]=1; //1 tur
else
schack [2][0]=2; //2 tur
harvalt = true;
}
else
cout << "A3 är upptaget" << endl;
}


if (valdsiffra==4)
{ 
if (schack [0][1]==0)
{
if (xtur==true)
schack [0][1]=1; //1 tur
else
schack [0][1]=2; //2 tur
harvalt = true;
}
else
cout << "B1 är upptaget" << endl;
}


if (valdsiffra==5)
{ 
if (schack [1][1]==0)
{
if (xtur==true)
schack [1][1]=1; //1 tur
else
schack [1][1]=2; //2 tur
harvalt = true;
}
else
cout << "B2 är upptaget" << endl;
} 

if (valdsiffra==6)
{ 
if (schack [2][1]==0)
{
if (xtur==true)
schack [2][1]=1; //1 tur
else
schack [2][1]=2; //2 tur
harvalt = true;
}
else
cout << "B3 är upptaget" << endl;
}

if (valdsiffra==7)
{ 
if (schack [0][2]==0)
{
if (xtur==true)
schack [0][2]=1; //1 tur
else
schack [0][2]=2; //2 tur
harvalt = true;
}
else
cout << "C1 är upptaget" << endl;
}

if (valdsiffra==8)
{ 
if (schack [1][2]==0)
{
if (xtur==true)
schack [1][2]=1; //1 tur
else
schack [1][2]=2; //2 tur
harvalt = true;
}
else
cout << "C2 är upptaget" << endl;
}



if (valdsiffra==9)
{ 
if (schack [2][2]==0)
{
if (xtur==true)
schack [2][2]=1; //1 tur
else
schack [2][2]=2; //2 tur
harvalt = true;
}
else
cout << "C3 är upptaget" << endl;
}


cout <<"A"<<" "<<"B"<<" "<<"C"<<endl;
cout << endl;
cout << schack [0][0] << "|" <<schack [0][1] << "|" <<schack [0][2] << endl;
cout << "______" << endl;
cout << schack [1][0] << "|" <<schack [1][1] << "|" <<schack [1][2] << endl;
cout << "______" << endl;
cout << schack [2][0] << "|" <<schack [2][1] << "|" <<schack [2][2] << endl;

cout << endl;
cout << endl;


if ((schack [0][0]==1 && schack [0][1]==1 && schack [0][2]==1) || (schack [0][0]==2 && schack [0][1]==2 && schack [0][2]==2 ))//asdfdgfhj
{ //vinst
gameover =true;

if (schack [0][0] == 1)
cout << "1 vann" << endl;
else
cout << "2 vann" << endl;
} //vinst


if ((schack [1][0]==1 && schack [1][1]==1 && schack [1][2]==1) || (schack [1][0]==2 && schack [1][1]==2 && schack [1][2]==2 ))
{ //vinst
gameover =true;

if (schack [0][0] == 1)
cout << "1 vann" << endl;
else
cout << "2 vann" << endl;
} //vinst


if ((schack [2][0]==1 && schack [2][1]==1 && schack [2][2]==1) || (schack [2][0]==2 && schack [2][1]==2 && schack [2][2]==2 ))
{ //vinst
gameover =true;

if (schack [0][0] == 1)
cout << "1 vann" << endl;
else
cout << "2 vann" << endl;
} //vinst


if ((schack [0][0]==1 && schack [1][0]==1 && schack [2][0]==1) || (schack [0][0]==2 && schack [1][0]==2 && schack [2][0]==2 ))
{ //vinst
gameover =true;

if (schack [0][0] == 1)
cout << "1 vann" << endl;
else
cout << "2 vann" << endl;
} //vinst


if ((schack [0][1]==1 && schack [1][1]==1 && schack [2][1]==1) || (schack [0][1]==2 && schack [1][1]==2 && schack [2][1]==2 ))
{ //vinst
gameover =true;

if (schack [0][0] == 1)
cout << "1 vann" << endl;
else
cout << "2 vann" << endl;
} //vinst


if ((schack [0][2]==1 && schack[1][2]==1 && schack [2][2]==1) || (schack [0][2]== 2 && schack [1][2]==2 && schack [2][2]==2 ))
{ //vinst
gameover =true;

if (schack [0][0] == 1)
cout << "1 vann" << endl;
else
cout << "2 vann" << endl;
} //vinst


if ((schack [0][0]==1 && schack [1][1]==1 && schack [2][2]==1) || (schack [0][0]==2 && schack [1][1]==2 && schack [2][2]==2 ))
{ //vinst
gameover =true;

if (schack [0][0] == 1)
cout << "1 vann" << endl;
else
cout << "2 vann" << endl;
} //vinst


if ((schack [2][0]==1 && schack [1][1]==1 && schack [0][2]==1) || (schack [2][0]==2 && schack [1][1]==2 && schack [0][2]==2 ))
{ //vinst
gameover =true;

if (schack [0][0] == 1)
cout << "1 vann" << endl;
else
cout << "2 vann" << endl;
} //vinst


if (harvalt ==true)
{
if ( xtur == true)
xtur = false;
else
xtur = true;
}
harvalt=false; //dags för den andra att välja 
} //gameover

return 0;
}//Slut på koden