Question How to convert C++ file into C# programming language

Status
Not open for further replies.

minnal_guy2002

New member
Joined
Feb 22, 2021
Messages
1
Programming Experience
Beginner
Hi Guys,

I'm new to the C# languange, as I have done an assignment in C++ but the lecturer requested to do it in C# language. Kindly help to convert the below coding into C#:

#include<iostream>
#include<conio.h>
#include<dos.h>
#include <windows.h>
#include <time.h>

#define SCREEN_WIDTH 90
#define SCREEN_HEIGHT 26
#define WIN_WIDTH 70

using namespace std;

HANDLE console = GetStdHandle(STD_OUTPUT_HANDLE);
COORD CursorPosition;

int enemyY[3];
int enemyX[3];
int enemyFlag[3];
char car[4][4] = { ' ','+','+',' ',

'+','+','+','+',

' ','+','+',' ',

'+','+','+','+' };



int carPos = WIN_WIDTH/2;
int score = 0;


void gotoxy(int x, int y){

CursorPosition.X = x;
CursorPosition.Y = y;
SetConsoleCursorPosition(console, CursorPosition);

}

void setcursor(bool visible, DWORD size){
if(size== 0)
size = 20;



CONSOLE_CURSOR_INFO lpCursor;

lpCursor.bVisible = visible;
lpCursor.dwSize = size;
SetConsoleCursorInfo(console,&lpCursor);

}

void drawBorder(){

for(int i=0; i<SCREEN_HEIGHT; i++){
for(int j=0; j<17; j++){
gotoxy(0+j,i); cout<<"±";
gotoxy(WIN_WIDTH-j,i); cout<<"±";

}

}

for(int i=0; i<SCREEN_HEIGHT; i++){
gotoxy(SCREEN_WIDTH,i); cout<<"±";

}

}

void genEnemy(int ind){
enemyX[ind] = 17 + rand()%(33);

}

void drawEnemy(int ind){

if( enemyFlag[ind] == true ){
gotoxy(enemyX[ind], enemyY[ind]); cout<<"****";
gotoxy(enemyX[ind], enemyY[ind]+1); cout<<" ** ";
gotoxy(enemyX[ind], enemyY[ind]+2); cout<<"****";
gotoxy(enemyX[ind], enemyY[ind]+3); cout<<" ** ";

}

}

void eraseEnemy(int ind){

if( enemyFlag[ind] == true ){
gotoxy(enemyX[ind], enemyY[ind]); cout<<" ";
gotoxy(enemyX[ind], enemyY[ind]+1); cout<<" ";
gotoxy(enemyX[ind], enemyY[ind]+2); cout<<" ";
gotoxy(enemyX[ind], enemyY[ind]+3); cout<<" ";

}

}

void resetEnemy(int ind){
eraseEnemy(ind);
enemyY[ind] = 1;
genEnemy(ind);

}



void drawCar(){

for(int i=0; i<4; i++){
for(int j=0; j<4; j++){
gotoxy(j+carPos, i+22); cout<<car[j];

}

}

}

void eraseCar(){

for(int i=0; i<4; i++){
for(int j=0; j<4; j++){
gotoxy(j+carPos, i+22); cout <<" ";

}

}

}

int collision(){
if( enemyY[0]+4 >= 23 ){
if( enemyX[0] + 4 - carPos >= 0 && enemyX[0] + 4 - carPos < 9 ){
return 1;

}

}

return 0;

}

void gameover(){

system("cls");

cout<<endl;
cout<<"\t\t--------------------------"<<endl;
cout<<"\t\t-------- Game Over -------"<<endl;
cout<<"\t\t--------------------------"<<endl<<endl;
cout<<"\t\tPress any key to go back to menu.";
getch();

}

void updateScore(){
gotoxy(WIN_WIDTH + 7, 5);cout<<"Score: "<<score<<endl;

}



void instructions(){



system("cls");

cout<<"Instructions";
cout<<"\n----------------";
cout<<"\n Avoid Cars by moving left or right. ";
cout<<"\n\n Press 'a' to move left";
cout<<"\n Press 'd' to move right";
cout<<"\n Press 'Esc' to exit";
cout<<"\n\n Press any key to go back to menu";
getch();

}



void play(){

carPos = 1 + WIN_WIDTH/2;
score = 0;
enemyFlag[0] = 1;
enemyFlag[1] = 0;
enemyY[0] = enemyY[1] = 1;



system("cls");
drawBorder();
updateScore();
genEnemy(0);
genEnemy(1);



gotoxy(WIN_WIDTH + 7, 2);cout<<"Car Game";
gotoxy(WIN_WIDTH + 6, 4);cout<<"----------";
gotoxy(WIN_WIDTH + 6, 6);cout<<"----------";
gotoxy(WIN_WIDTH + 7, 12);cout<<"Control";
gotoxy(WIN_WIDTH + 7, 13);cout<<"----------";
gotoxy(WIN_WIDTH + 2, 14);cout<<"A Key - Left";
gotoxy(WIN_WIDTH + 2, 15);cout<<"D Key - Right";
gotoxy(18, 5); cout<<"Press any Key to start";
getch();
gotoxy(18, 5); cout<<" ";

while(1){
if(kbhit()){
char ch = getch();
if( ch=='a' || ch=='A' ){
if( carPos > 18 )
carPos -= 4;

}

if( ch=='d' || ch=='D'){
if( carPos < 50 )
carPos += 4;
}
if(ch==27){
break;
}

}

drawCar();

drawEnemy(0);
drawEnemy(1);
if( collision() == 1 ){
gameover();
return;

}

Sleep(50);
eraseCar();
eraseEnemy(0);
eraseEnemy(1);

if( enemyY[0] == 10 )

if( enemyFlag[1] == 0 )

enemyFlag[1] = 1;

if( enemyFlag[0] == 1 )

enemyY[0] += 1;
if( enemyFlag[1] == 1 )

enemyY[1] += 1;
if( enemyY[0] > SCREEN_HEIGHT-4 ){
resetEnemy(0);
score++;
updateScore();
}

if( enemyY[1] > SCREEN_HEIGHT-4 ){

resetEnemy(1);
score++;
updateScore();

}

}

}

int main()

{

setcursor(0,0);
srand( (unsigned)time(NULL));

do{

system("cls");

gotoxy(10,5); cout<<"--------------------------";

gotoxy(10,6); cout<<" Car game ";

gotoxy(10,7); cout<<"--------------------------";

gotoxy(10,9); cout<<"1. Start game";

gotoxy(10,10); cout<<"2. Instructions";

gotoxy(10,11); cout<<"3. Quit";

gotoxy(10,13); cout<<"Select Option: ";

char op = getche();

if( op=='1') play();

else if( op=='2') instructions();

else if( op=='3') exit(0);

}while(1);

return 0;

}
 

jmcilhinney

C# Forum Moderator
Staff member
Joined
Apr 23, 2011
Messages
3,813
Location
Sydney, Australia
Programming Experience
10+
If the assignment was to write C# code then you should have written C# code in the first place. We are not a code-writing service so it's up to you to write your own code. If you understand what functionality the C++ code is implementing then you need to learn for yourself how to implement that same functionality in C#. That's what your assignment requires so that's what you have to do to earn the marks. If you encounter a specific issue with implementing a specific feature in C# then, by all means, post a specific question here about and we'll try to help you solve the problem. If you're just going to expect us to do your work for you though, you're going to be disappointed. I'm closing this thread and you can create a new thread if and when you have a specific question, in which case the title of the thread should reflect the topic and the post should contain a full and clear explanation of the problem.
 

Skydiver

Staff member
Joined
Apr 6, 2019
Messages
3,175
Location
Chesapeake, VA
Programming Experience
10+
I have done an assignment in C++
Besides, it doesn't look like you actually did the assignment in C++. It looks like you took someone else C++ Space Shooter game from over at this other forum, and then adapter it for your needs.
 
Solution
Status
Not open for further replies.
Top Bottom