Advertisement
Java_Volume1 OLE/ COM/ DCOM/ Active-X #101021

AI_Attempt

Attempts to simulate AI. This is my very first time trying to make an AI, so please vote.

AI

Resumen de IA: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Código fuente
original-source
#include <iostream.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#include <time.h>

enum States{ Hungry = 0,Diseased,Wandering,Dead,Searching,Found=5};
class g_StateManager
{
public:
	char Current[35];
	States sCurrent;
	States Determiner;
}SM;
static int Count = -1;
void StateChange(States* Dtrmnr = &SM.Determiner);
void StateDisplay();
void DisplayDeadMessage();
int r;
int main()
{
	SM.sCurrent = Wandering;
	SM.Determiner = Wandering;
	while(SM.sCurrent != Dead)
	{
		StateChange();
		StateDisplay();
		getch();
	}
	return 0;
}
void StateChange(States* Dtrmnr)
{
	switch(*Dtrmnr)
	{
		case Hungry:
			srand((unsigned)time(NULL));
			r = rand() % 2;
			switch(r)
			{
			case 0:
				strcpy(SM.Current,"Searching for food...");
				SM.sCurrent = Searching;
				SM.Determiner = Searching;
				Count++;
				return;
				break;
			case 1:
				strcpy(SM.Current,"Dead");
				SM.sCurrent = Dead;
				SM.Determiner = Dead;
				Count++;
				return;
				break;
			}
			return;
			break;
		case Diseased:
			srand((unsigned)time(NULL));
			r = rand() % 2;
			switch(r)
			{
			case 0:
				strcpy(SM.Current,"Looking for cure...");
				SM.sCurrent = Searching;
				SM.Determiner = Searching;
				Count++;
				return;
				break;
			case 1:
				strcpy(SM.Current,"Dead");
				SM.sCurrent = Dead;
				SM.Determiner = Dead;
				Count++;
				return;
				break;
			}
			return;
			break;
		case Wandering:
			r = rand() % 2;
			switch(r)
			{
			case 0:
				strcpy(SM.Current,"I'm hungry...");
				SM.sCurrent = Hungry;
				SM.Determiner = Hungry;
				Count++;
				return;
				break;
			case 1:
				strcpy(SM.Current,"Now I have something to search for!");
				SM.sCurrent = Searching;
				SM.Determiner = Searching;
				Count++;
				return;
				break;
			}
			return;
			break;
		case Searching:
			srand((unsigned)time(NULL));
			r = rand() % 2;
			switch(r)
			{
			case 0:
				strcpy(SM.Current,"Still searching...");
				SM.sCurrent = Searching;
				SM.Determiner = Searching;
				Count++;
				return;
				break;
			case 1:
				strcpy(SM.Current,"Found it!");
				SM.sCurrent = Found;
				SM.Determiner = Found;
				Count++;
				return;
				break;
			}
			return;
			break;
		case Found:
			srand((unsigned)time(NULL));
			r = rand() % 2;
			switch(r)
			{
			case 0:
				strcpy(SM.Current,"I'm hungry!");
				SM.sCurrent = Hungry;
				SM.Determiner = Hungry;
				Count++;
				return;
				break;
			case 1:
				strcpy(SM.Current,"I don't feel so good!");
				SM.sCurrent = Diseased;
				SM.Determiner = Diseased;
				Count++;
				return;
				break;
			}
			break;
		default:
			strcpy(SM.Current,"Dead");
			SM.sCurrent = Dead;
			return;
			break;
	}
	return;
}
void StateDisplay()
{
	system("CLS");
	cout<<"Current state:"<<SM.Current<<endl;
	cout<<"Current state:"<<SM.sCurrent<<endl;
	cout<<"State changes:"<<Count<<endl;
	return;
}

Comentarios originales (3)
Recuperado de Wayback Machine