Spel programmering, Vecka 1

5SD022, programming

Den här veckan så startade vi vår första programmeringskurs. Jag är inte ny till programming då jag gick en programmering och webutvecklings linje i gymnasiet. Dock så har jag aldrig skrivit i c++ förut så den här veckan har jag gått igenom c++ syntax.

Det enda jag egentligen visste om c++ är att det är ett statiskt programmeringsspråk, med det så menar man att alla variabler måste sägas till vad de är för något.

Ex:

int main(int argc, char* argv[]) {
int number = 0;
}

För att jag ska kunna skapa en variabel av typen integer så måste jag först förklara att det är en integer innan jag ger den ett värde. I dynamiska programmeringsspråk som jag har skrivit i förut så behöver man inte säga vilken typ det är eftersom den förstår att den är en integer om man ger variabeln ett heltal.

Vi fick också en hel del uppgifter, jag gick igenom dom och gjorde de som inte såg för enkla ut och dom som jag kunde lära mig något nytt ifrån. Den senaste jag gjorde va den där man skulle skriva ett program där datorn skulle gissa det numret du hade skrivit. Detta var ganska likt den uppgiften där man skulle gissa ett slumpmässigt nummer. Jag började med att göra ungefär samma kod som i den uppgiften. Det jag ändrade var att istället bara för att generera ett slumpmässigt nummer i början av programmet som man ska sedan gissa så gjorde jag tvärtom, först gör jag så att användaren kan skriva ett nummer som sedan ska gissas. Sen inne i min loop så har jag kod som genererar ett nytt nummer varje gång som ska simulera en gissning.


#include iostream
#include random

int main(int argc, char* argv[]) {
int robotguess = 0;
int maxguess = 100;
int minguess = 0;
int answer = 0;

Notera att jag använder random library som jag såg fanns i c++, detta använder jag senare i koden för att bättre kunna välja mellan vilka nummer som programmet kan gissa. Här är också alla mina variabler.

std::cout << "enter a number that the bot has to guess" <> answer;

Här låter jag användaren välja det numret som programmet ska försöka gissa.

while (answer != robotguess) {

int robotguess = rand() % (maxguess – minguess + 1) + minguess;

Här startar jag min loop som inte slutar förrns programmet har gissat rätt. under det är koden som generar ett slumpmässigt nummer.

if (robotguess > answer) {
maxguess = robotguess;
std::cout << "too high " << robotguess << ' ' << minguess << ' ' << maxguess << std::endl;
}
else if (robotguess < answer) {
minguess = robotguess;
std::cout << "too low " << robotguess << ' ' << minguess << ' ' << maxguess << std::endl;
}
else {
std::cout << "woah the robot guessed right " << robotguess << std::endl;
break;
}
};
std::cin.ignore(1024);
std::cin.get();
}

Här är resten av min kod. Den här delen är den delen som kollar om programmet gissade för högt, lågt eller helt rätt. Det viktiga här är minguess och maxguess, detta är variablerna som gör så att programmet inte bara slumpmässigt gissar sig fram till svaret. Om programmet gissar för lågt så ändras variabeln minguess till det värdet som programmet just gissade på, det gör så att programmet aldrig gissar på någonting lägre än det värdet. Exempel: om jag skriver att programmet ska gissa 45 och det första programmet gissar på är 50, då ändras maxguess till 50 och programmet har har nu dubbelt så enkelt att hitta det rätta numret.

Det var allt för den här veckan // Oskar Hernberg

Leave a comment