-
April 17th, 2013, 12:05 AM
#1
Ai
Code:
/*
// Add these includes into stdafx.h
#include <iostream>
#include <fstream>
#include <string>
#include <windows.h>
#include <process.h>
#include <time.h>
#include <conio.h>
#include <sstream>
#include <vector>
using namespace std;
*/
#include "stdafx.h"
#define DEBUG
// Answer class
class CAnswers {
public:
vector<string> answer;
CAnswers(void);
CAnswers(string ans);
~CAnswers(void);
int size(void);
} Answers;
CAnswers::CAnswers (void) {
}
CAnswers::CAnswers (string ans) {
stringstream ss(ans);
string temp_answer;
while (getline(ss, temp_answer,','))
answer.push_back(temp_answer);
}
CAnswers::~CAnswers(void){
}
int CAnswers::size(void) {
return answer.size();
}
// Question class
class CQuestion {
string _question;
public:
CAnswers* answers;
CQuestion(void);
CQuestion(string q_a);
~CQuestion(void);
string question(void);
} Question;
CQuestion::CQuestion (void) {
}
CQuestion::CQuestion (string q_a) {
string ans;
stringstream ss(q_a);
getline(ss, _question,':');
ss >> ans;
answers = new CAnswers(ans);
}
string CQuestion::question (void) {
return _question;
}
CQuestion::~CQuestion(void){
delete answers;
}
//Editor class
class CEditor {
vector<CQuestion> questions;
ofstream myFile;
int age, address;
char selection, character[1];
string name, response;
HANDLE np;
unsigned notepadID;
public:
CQuestion* q;
CEditor(void);
~CEditor(void);
int menu(void);
void question(void);
void reload(void);
int time(void);
static unsigned int __stdcall notepadThread(void* arg);
void notepad(void);
} Editor;
CEditor::~CEditor(void){
delete q;
}
CEditor::CEditor (void) {
np = 0;
}
unsigned int __stdcall CEditor::notepadThread(void* arg) {
system("notepad.exe AI.txt");
_endthreadex(0);
return 0;
}
void CEditor::notepad(void) {
_beginthreadex( NULL, 0, &CEditor::notepadThread, np, 0, ¬epadID );
}
int CEditor::menu (void) {
system ("CLS");
cout<<"Menu:\n9 = Basic Information.\n8 = DATALOG\n7 = Reload \n6 = Time\n0 = Leave\n";
cin>>selection;
switch (selection)
{
// Open text in notepad
case '8' : {
notepad();
break;
}
// Exit program
case '0' : {
cout<<"- Please close Notepad to exit - ";
return 0;
}
// Ask questions and place answers into AI.txt
case '9' : {
question();
break;
}
// Simulate reloading program,
case '7' : {
reload();
break;
}
// Clock
case '6' : {
do {
time();
cout<<"Press Enter to exit";
Sleep(750);
} while(_getch() == '\n');
break;
}
// Invalid response
default : {
cout<<"Nope"<<endl;
break;
}
}
return 1;
}
void CEditor::question (void) {
// Open file and move to end of file.
myFile.open("AI.txt",ios_base::app);
myFile<<"\n----- new entry -----\n";
// Clear console and ask questions.
system ("CLS");
cout<<"AI: What is your name?"<<endl;
cin>>name;
system ("CLS");
myFile<<"Datalog"<<"\nName: "<<name<<endl;
cout<<"AI: How are you feeling?"<<endl<<name<<": ";
cin>>response;
system ("CLS");
if (response == character) {
cout<<"Invalid answer";
}
myFile<<name<<" is feeling "<<response<<endl;
cout<<"AI: What is your age "<<name<<"?"<<endl<<name<<": ";
cin>>age;
system ("CLS");
myFile<<name<<"'s age is "<<age;
myFile.close();
if (! myFile)
{
cout<<"Error";
}
}
void CEditor::reload (void) {
system ("CLS");
cout<<"Reloading";
Sleep(1000);
cout<<".";
Sleep(1000);
cout<<".";
Sleep(1000);
cout<<".";
}
int CEditor::time (void) {
struct tm newtime;
char am_pm[] = "AM";
__time64_t long_time;
char timebuf[26];
errno_t err;
// Clear the screen
system("CLS");
// Get time as 64-bit integer.
_time64( &long_time );
// Convert to local time.
err = _localtime64_s( &newtime, &long_time );
if (err)
{
printf("Invalid argument to _localtime64_s.");
exit(1);
}
if( newtime.tm_hour > 12 ) // Set up extension.
strcpy_s( am_pm, sizeof(am_pm), "PM" );
if( newtime.tm_hour > 12 ) // Convert from 24-hour
newtime.tm_hour -= 12; // to 12-hour clock.
if( newtime.tm_hour == 0 ) // Set hour to 12 if midnight.
newtime.tm_hour = 12;
// Convert to an ASCII representation.
err = asctime_s(timebuf, 26, &newtime);
if (err)
{
printf("Invalid argument to asctime_s.");
exit(1);
}
printf( "%.19s %s\n", timebuf, am_pm );
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
CEditor editor;
editor.q = new CQuestion("How are you?:Good,Bad");
cout<<editor.q->question()<<endl;
for(int i=0;i<editor.q->answers->size();++i) {
cout<<editor.q->answers->answer[i]<<endl;
}
system("pause");
while(editor.menu());
//while(editor.menu());
return 0;
}
In the above code I am simply trying to write out a simple notepad AI. However, I need help allocating questions and responses. If you could help me out I would be very appreciative. Thanks, kiknwing.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|