•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the C++ section within the Software Development category of DaniWeb, a massive community of 402,523 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 2,540 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our C++ advertiser: Programming Forums
Views: 2506 | Replies: 18 | Solved
![]() |
•
•
Join Date: Aug 2005
Location: near St Louis, Missouri, USA
Posts: 10,703
Reputation:
Rep Power: 36
Solved Threads: 878
I think it's about time we voted for senators with breasts. After all, we've been voting for boobs long enough. ~Clarie Sargent, Arizona senatorial candidate
Those who are too smart to engage in politics are punished by being governed by those who are dumber. ~Plato
Those who are too smart to engage in politics are punished by being governed by those who are dumber. ~Plato
•
•
Join Date: Sep 2007
Posts: 11
Reputation:
Rep Power: 1
Solved Threads: 0
// speedgame.cpp : main project file.
#include "stdafx.h"
#include "Form1.h"
using namespace speedgame;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
}•
•
Join Date: Sep 2007
Posts: 11
Reputation:
Rep Power: 1
Solved Threads: 0
and my main form code:
#pragma once
namespace speedgame {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::ToolTip^ tipControl;
private: System::Windows::Forms::Timer^ tmrControl;
private: System::Windows::Forms::TextBox^ txtDisplay;
private: System::Windows::Forms::TextBox^ txtEntry;
private: System::Windows::Forms::Label^ lblInstructions;
private: System::Windows::Forms::Label^ lblSourceText;
private: System::Windows::Forms::Label^ lblEntryText;
private: System::Windows::Forms::StatusStrip^ stsControl;
private: System::Windows::Forms::ToolStripStatusLabel^ stsLabel;
protected:
protected:
private: System::Windows::Forms::Button^ btnGo;
private: System::Windows::Forms::Button^ btnDone;
private: System::Windows::Forms::Button^ btnExit;
private: System::ComponentModel::IContainer^ components;
private:
/// <summary>
/// Required designer variable.
/// </summary>
Int16 intWrong; //Tracks number of strikes
Int16 intCount; //Tracks number of tries
Int16 intTimer; //Tracks elapsed time
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->components = (gcnew System::ComponentModel::Container());
this->tipControl = (gcnew System::Windows::Forms::ToolTip(this->components));
this->txtDisplay = (gcnew System::Windows::Forms::TextBox());
this->txtEntry = (gcnew System::Windows::Forms::TextBox());
this->btnGo = (gcnew System::Windows::Forms::Button());
this->btnDone = (gcnew System::Windows::Forms::Button());
this->btnExit = (gcnew System::Windows::Forms::Button());
this->tmrControl = (gcnew System::Windows::Forms::Timer(this->components));
this->lblInstructions = (gcnew System::Windows::Forms::Label());
this->lblSourceText = (gcnew System::Windows::Forms::Label());
this->lblEntryText = (gcnew System::Windows::Forms::Label());
this->stsControl = (gcnew System::Windows::Forms::StatusStrip());
this->stsLabel = (gcnew System::Windows::Forms::ToolStripStatusLabel());
this->stsControl->SuspendLayout();
this->SuspendLayout();
//
// txtDisplay
//
this->txtDisplay->Location = System::Drawing::Point(40, 55);
this->txtDisplay->Name = L"txtDisplay";
this->txtDisplay->ReadOnly = true;
this->txtDisplay->Size = System::Drawing::Size(675, 20);
this->txtDisplay->TabIndex = 0;
this->tipControl->SetToolTip(this->txtDisplay, L"Displays source text string");
//
// txtEntry
//
this->txtEntry->Location = System::Drawing::Point(40, 121);
this->txtEntry->Name = L"txtEntry";
this->txtEntry->ReadOnly = true;
this->txtEntry->Size = System::Drawing::Size(675, 20);
this->txtEntry->TabIndex = 1;
this->tipControl->SetToolTip(this->txtEntry, L"Type your text here");
//
// btnGo
//
this->btnGo->Location = System::Drawing::Point(43, 216);
this->btnGo->Name = L"btnGo";
this->btnGo->Size = System::Drawing::Size(75, 23);
this->btnGo->TabIndex = 6;
this->btnGo->Text = L"GO";
this->tipControl->SetToolTip(this->btnGo, L"Display new text string");
this->btnGo->UseVisualStyleBackColor = true;
this->btnGo->Click += gcnew System::EventHandler(this, &Form1::btnGo_Click);
//
// btnDone
//
this->btnDone->Enabled = false;
this->btnDone->Location = System::Drawing::Point(639, 216);
this->btnDone->Name = L"btnDone";
this->btnDone->Size = System::Drawing::Size(75, 23);
this->btnDone->TabIndex = 7;
this->btnDone->Text = L"Done";
this->tipControl->SetToolTip(this->btnDone, L"Check typing");
this->btnDone->UseVisualStyleBackColor = true;
this->btnDone->Click += gcnew System::EventHandler(this, &Form1::btnDone_Click);
//
// btnExit
//
this->btnExit->Location = System::Drawing::Point(639, 9);
this->btnExit->Name = L"btnExit";
this->btnExit->Size = System::Drawing::Size(75, 23);
this->btnExit->TabIndex = 8;
this->btnExit->Text = L"Exit";
this->tipControl->SetToolTip(this->btnExit, L"Exit game");
this->btnExit->UseVisualStyleBackColor = true;
//
// tmrControl
//
this->tmrControl->Interval = 1000;
this->tmrControl->Tick += gcnew System::EventHandler(this, &Form1::tmrControl_Tick);
//
// lblInstructions
//
this->lblInstructions->AutoSize = true;
this->lblInstructions->Location = System::Drawing::Point(12, 9);
this->lblInstructions->Name = L"lblInstructions";
this->lblInstructions->Size = System::Drawing::Size(511, 13);
this->lblInstructions->TabIndex = 2;
this->lblInstructions->Text = L"Click Go to begin. You have 15 seconds to type the text displayed in the source t"
L"ext field exactly as shown.";
//
// lblSourceText
//
this->lblSourceText->AutoSize = true;
this->lblSourceText->Location = System::Drawing::Point(40, 39);
this->lblSourceText->Name = L"lblSourceText";
this->lblSourceText->Size = System::Drawing::Size(68, 13);
this->lblSourceText->TabIndex = 3;
this->lblSourceText->Text = L"Source Text:";
//
// lblEntryText
//
this->lblEntryText->AutoSize = true;
this->lblEntryText->Location = System::Drawing::Point(40, 105);
this->lblEntryText->Name = L"lblEntryText";
this->lblEntryText->Size = System::Drawing::Size(79, 13);
this->lblEntryText->TabIndex = 4;
this->lblEntryText->Text = L"Enter text here:";
//
// stsControl
//
this->stsControl->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(1) {this->stsLabel});
this->stsControl->Location = System::Drawing::Point(0, 270);
this->stsControl->Name = L"stsControl";
this->stsControl->Size = System::Drawing::Size(773, 22);
this->stsControl->TabIndex = 5;
this->stsControl->Text = L"statusStrip1";
//
// stsLabel
//
this->stsLabel->Name = L"stsLabel";
this->stsLabel->Size = System::Drawing::Size(118, 17);
this->stsLabel->Text = L"toolStripStatusLabel1";
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(773, 292);
this->Controls->Add(this->btnExit);
this->Controls->Add(this->btnDone);
this->Controls->Add(this->btnGo);
this->Controls->Add(this->stsControl);
this->Controls->Add(this->lblEntryText);
this->Controls->Add(this->lblSourceText);
this->Controls->Add(this->lblInstructions);
this->Controls->Add(this->txtEntry);
this->Controls->Add(this->txtDisplay);
this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
this->Name = L"Form1";
this->StartPosition = System::Windows::Forms::FormStartPosition::CenterScreen;
this->Text = L"The Speed Game";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->stsControl->ResumeLayout(false);
this->stsControl->PerformLayout();
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
//set begginning data values
intWrong = 0;
intCount = 0;
intTimer = 0;
}
private: System::Void btnGo_Click(System::Object^ sender, System::EventArgs^ e) {
//Display game sentences according to level
if( intCount == 0 )
txtDisplay->Text = "Once upon a time there where three little pigs.";
if( intCount == 1 )
txtDisplay->Text = "In days gone by times where hard but the people were strong.";
if( intCount == 2 )
txtDisplay->Text = "Once in awhile something speacial happens even to the worst of people.";
if( intCount == 3 )
txtDisplay->Text = "When injustice rears its ugly hea, it is the duty of all good.";
if( intCount == 4 )
txtDisplay->Text = "It has been said that in the end there can only be one. Let that one be mighty Molly!";
btnDone->Enabled = true; //Activate done button
btnGo->Enabled = false; //Disable Go button
//Allow text to be entered
txtEntry->ReadOnly = false;
//Activate Timer
tmrControl->Enabled = true;
intTimer = 0;
txtEntry->Focus();
}
private: System::Void btnDone_Click(System::Object^ sender, System::EventArgs^ e) {
//Clear out status bar text
stsControl->Text = "";
//Deactivate Timer so it doesn't keep going
tmrControl->Enabled = false;
//Make sure player entered something
if( String::IsNullOrEmpty( txtEntry->Text ) )
{
//Show error
MessageBox::Show( "Error: You must enter something!" );
//reset game
txtDisplay->Text = "";
btnDone->Enabled = false;
btnGo->Enabled = true;
txtEntry->ReadOnly = true;
intTimer = 0;
btnGo->Focus;
return;
}
if( String::Compare( txtEntry->Text, txtDisplay->Text ) == 0 )
{
//handle Correct answer
MessageBox::Show( "Match! You typed the string in correctly!" );
intCount += 1;
intTimer = 0;
}
else
{
//handle incorrect answer
MessageBox::Show( String::Concat( "Strike ",
intWrong.ToString(), "! You made at least",
" one typo." ) );
intTimer = 0;
}
//get set up for the next level
txtEntry->Text = "";
txtDisplay->Text = "";
btnDone->Enabled = false;
btnGo->Enabled = true;
txtEntry->ReadOnly = true;
intTimer = 0;
btnGo->Focus();
//handle 3 strikes
if( intWrong == 3 )
{
//inform play he/she is a begginer
if( intCount < 2 )
{
MessageBox::Show( "Game Over! Your "
"typing skill level is Beginner. "
"Please play again!" );
intCount = 0;
intWrong = 0;
return;
}
//inform play he/she is intermediate
if( intCount < 4 )
{
MessageBox::Show( "Game Over! Your "
"typing skill level is intermediate. "
"Please play again!" );
intCount = 0;
intWrong = 0;
return;
}
//inform play he/she is advanced
if( intCount < 5 )
{
MessageBox::Show( "Game Over! Your "
"typing skill level is advanced. "
"Please play again!" );
intCount = 0;
intWrong = 0;
return;
}
}
private: System::Void btnExit_Click(System::Object^ sender,
System::EventArgs^ e) {
this->Close();
}
}
private: System::Void tmrControl_Tick(System::Object^ sender, System::EventArgs^ e) {
//update timer value
intTimer += 1;
int16 intTimeRemain = 15 - intTimer;
stsLabel->Text = "Seconds remaining: ";
stsLabel->Text = String::Concat( stsLabel,
intTimeRemain.ToString() );
//handle running out of time
if( intTimer == 15 )
{
intWrong += 1;
tmrControl->Enabled = false;
stsLabel->Text = "";
MessageBox::Show( String::Concat( "Strike ",
intWrong.ToString(), " - Time is up! Please",
" try again." ) );
//reset game
txtEntry->Text = "";
txtDisplay->Text = "";
btnDone->Enabled = false;
btnGo->Enabled = true;
txtEntry->ReadOnly = true;
intTimer = 0;
btnGo->Focus;
//handle 3 strikes
if( intWrong == 3 )
{
//inform play he/she is a begginer
if( intCount < 2 )
{
MessageBox::Show( "Game Over! Your "
"typing skill level is Beginner. "
"Please play again!" );
intCount = 0;
intWrong = 0;
return;
}
//inform play he/she is intermediate
if( intCount < 4 )
{
MessageBox::Show( "Game Over! Your "
"typing skill level is intermediate. "
"Please play again!" );
intCount = 0;
intWrong = 0;
return;
}
//inform play he/she is advanced
if( intCount < 5 )
{
MessageBox::Show( "Game Over! Your "
"typing skill level is advanced. "
"Please play again!" );
intCount = 0;
intWrong = 0;
return;
}
}
//player is an expert!
if( intCount >= 5 )
{
intCount = 0;
intWrong = 0;
MessageBox::Show( "Game Complete! Your "
"typing skill level is Expert! "
"Please try again!" );
}
}
}
•
•
Join Date: Aug 2005
Location: near St Louis, Missouri, USA
Posts: 10,703
Reputation:
Rep Power: 36
Solved Threads: 878
without attempting to compile the code you posted there is probably at least one semicolon missing at the last brace in the header file.
I think it's about time we voted for senators with breasts. After all, we've been voting for boobs long enough. ~Clarie Sargent, Arizona senatorial candidate
Those who are too smart to engage in politics are punished by being governed by those who are dumber. ~Plato
Those who are too smart to engage in politics are punished by being governed by those who are dumber. ~Plato
•
•
Join Date: Aug 2005
Location: near St Louis, Missouri, USA
Posts: 10,703
Reputation:
Rep Power: 36
Solved Threads: 878
Ok I loaded your code in a new project with VC++ 2005 Express and found that your Form1.h is missing some braces somewhere. You need to start at the top of the file and count the number of open/close brace pairs and insert the missing one(s). Put your cursor on the closing brace at the bottom of the file then press Ctrl + [ keys and the cursor will jump to the matching open brace.
After adding two closing braces at the bottom of the file (probably in the wrong place I might add) the compiler now spits out a lot of other errors in Form1.h. My suggestion is to begain all over again, create a new CLR Windows project and gradually add the code you posted here a little bit at a time, compile to get clean compile, then add some more.
After adding two closing braces at the bottom of the file (probably in the wrong place I might add) the compiler now spits out a lot of other errors in Form1.h. My suggestion is to begain all over again, create a new CLR Windows project and gradually add the code you posted here a little bit at a time, compile to get clean compile, then add some more.
Last edited by Ancient Dragon : Sep 13th, 2007 at 5:18 am.
I think it's about time we voted for senators with breasts. After all, we've been voting for boobs long enough. ~Clarie Sargent, Arizona senatorial candidate
Those who are too smart to engage in politics are punished by being governed by those who are dumber. ~Plato
Those who are too smart to engage in politics are punished by being governed by those who are dumber. ~Plato
An approach to writing code
Writing 5(*) lines at a time, then pressing "compile" to see how you're doing is a sustainable development strategy.
Dumping 100's of lines on a message board for someone else to fix is not.
The same goes for testing, when you've finished a function, then try running the code to make sure it's doing what you want.
Never code beyond your ability to deal with the consequence of the compiler spitting it straight back at you.
(*) or however many you feel confident about writing without errors.
Writing 5(*) lines at a time, then pressing "compile" to see how you're doing is a sustainable development strategy.
Dumping 100's of lines on a message board for someone else to fix is not.
The same goes for testing, when you've finished a function, then try running the code to make sure it's doing what you want.
Never code beyond your ability to deal with the consequence of the compiler spitting it straight back at you.
(*) or however many you feel confident about writing without errors.
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
Do not PM me for help; You'll be ignored, or told to learn to read.
Do not ask me if I'm muslim - I'm not. Nor do I care about yours or anyone else's mysticism. Religion is a matrix, take the RED PILL.
Do not PM me for help; You'll be ignored, or told to learn to read.
Do not ask me if I'm muslim - I'm not. Nor do I care about yours or anyone else's mysticism. Religion is a matrix, take the RED PILL.
![]() |
•
•
•
•
•
•
•
•
DaniWeb C++ Marketplace
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
Similar Threads
- Need help with my C++ (C++)
- VC++6.0 error C2059: syntax error : 'end of file' (C++)
- shouldn't this work?? (C++)
- syntax error after API call (C++)
- How to select data frm text file based on a condition (C)
- Weird build errors that are not even in my program Please help!! (C++)
- MFC problems (C++)
- overloading problem (C++)
- Homework - error C2059: syntax error : ']' (C++)
Other Threads in the C++ Forum
- Previous Thread: from compiler to application
- Next Thread: bank system problem !!!! (C++ programming)



Linear Mode