Can someone show an example of how to make any type of an AI. Sorry for being so open. I'll take any answer
Can someone show an example of how to make any type of an AI. Sorry for being so open. I'll take any answer
Stan The Man. Beatles fan
When I was a child,
I spoke as a child,
I thought as a child,
I reasoned as a child.
When I became a man,
I put childish ways behind me"
(the holy bible, Paul, in his first letter to the Cor. 13:11)
Code://Let the computer guess what number you type int InputNumber; int ComputersGuess; int Difficulty; cout << "Enter difficulty: (1 - Easy, 2 - Normal, 3 - Hard) "; cin >> Difficulty; cout << "\nEnter a number: "; cin >> InputNumber; switch(Difficulty) { case 1: ComputerGuess = InputNumber + 1; break; case 2: ComputerGuess = (rand() % 1000); break; case 3: ComputerGuess = InputNumber; break; } cout << "You entered " << InputNumber; cout << ", the computer guessed the number " << ComputerGuess << endl; if(InputNumber == ComputerGuess) { cout << "Computer wins!" << endl; } else { cout << "Player wins!" << endl; }
MagosX.com
Give a man a fish and you feed him for a day.
Teach a man to fish and you feed him for a lifetime.
AI is a pre-dertimened response based on certain factors and what the situation is.
Here is an example of AI with a tic-tac-toe game...
You can download my game called dynamic-toe, which is an oo version of tic-tac-toe that lets you dynamically set the size of the grid between 3x3 and 9x9, by following the link in my sig. You can look at some of the AI I used in the game, which is fairly basic. Just click on Projects once you get to the site.Code:bool loop = true; //variable for the loop while(loop == true) //while the loop is true { if(grid[1][1] == ' ') //if the very middle square is empty grid[1][1] = 'O'; //then fill the very middle square with an O else //if the very middle square isn't empty for(short h = 0; h < size; h++) //the size of the 2d array grid { for(short i = 0; i < size; i++) //the size of the 2d array grid { if(grid[i][h] == ' ') //tries to find the first open square { grid[i][h] = 'O'; loop = false; //breaks the loop } else if(i == size - 1 && h == size - 1) //if no square is empty { loop = false; //you still need to break the loop } } }
Oh, and look up recursion - I've found recursion to be very useful in AI for games, especially when the computer needs to look so many plys deep for a move.
I just figured i'd go ahead and say this, but there are links to http://www.aihorizon.com all over this site.
.
common technique is a state machine:
you may have some enums like
WANDER, HUNT, HIDE
then some code (this is just psuedocode for it)
Code like that could produce an enemy which wanders around looking for something to kill, and with the right settings you could make it have a better range of detecting enemies, or actually predict where the player will move next.Code:switch(state) { case WANDER: ChooseRandomDir(); for each enemy: if enemy is closer than X: if enemy is big state = HIDE target = enemy if enemy is smal state = HUNT target case HUNT: if target is in kill range: kill if target is out of range: state = WANDER if target is in hunt range: MoveCloser(enemy) ....
Thx everyone! Though it never hurts to have more examples, I love what you guys have given me. (especially cozman)
Stan The Man. Beatles fan
When I was a child,
I spoke as a child,
I thought as a child,
I reasoned as a child.
When I became a man,
I put childish ways behind me"
(the holy bible, Paul, in his first letter to the Cor. 13:11)