Browse Source
new file: compile.cmd new file: game.cs new file: game.exe new file: gameCore.cs new file: gameModel.cs new file: share.jpgmaster
George
2 years ago
commit
e66c6a1c0e
6 changed files with 247 additions and 0 deletions
@ -0,0 +1,6 @@
|
||||
@echo off |
||||
set CSC=C:\Windows\Microsoft.NET\Framework\v3.5\csc.exe |
||||
|
||||
%CSC% game.cs gameCore.cs gameModel.cs |
||||
|
||||
pause |
@ -0,0 +1,78 @@
|
||||
using System; |
||||
using TEC.Model; |
||||
using System.Windows.Forms; |
||||
|
||||
namespace TEC |
||||
{ |
||||
public class Program |
||||
{ |
||||
public static void Main() |
||||
{ |
||||
Player[] players = new Player[2]; |
||||
|
||||
Human player1 = new Human(); |
||||
Alien player2 = new Alien(); |
||||
|
||||
player1.SetPosition(3, 3); |
||||
player2.SetPosition(55, 3); |
||||
|
||||
players[0] = player1; |
||||
players[1] = player2; |
||||
|
||||
Game g = new Game(players); |
||||
g.eventPlayersOnSamePoint += OnRaise_eventPlayersOnSamePoint; |
||||
|
||||
g.PrintField(); |
||||
|
||||
ConsoleKeyInfo key; |
||||
bool isReadingKeys = true; |
||||
while (isReadingKeys) |
||||
{ |
||||
key = Console.ReadKey(); |
||||
|
||||
if (key.Key == ConsoleKey.Q) |
||||
{ |
||||
isReadingKeys = false; |
||||
} |
||||
|
||||
if (key.Key == ConsoleKey.RightArrow) |
||||
{ |
||||
g.MoveMainPlayer(Game.Movement.Forward); |
||||
} |
||||
if (key.Key == ConsoleKey.LeftArrow) |
||||
{ |
||||
g.MoveMainPlayer(Game.Movement.Backward); |
||||
} |
||||
} |
||||
} |
||||
|
||||
static void OnRaise_eventPlayersOnSamePoint() |
||||
{ |
||||
//Console.WriteLine("BOOM"); |
||||
Console.Beep(); |
||||
|
||||
MessageBox.Show( |
||||
"BOOM", |
||||
"Что-то случилось", |
||||
System.Windows.Forms.MessageBoxButtons.YesNo, |
||||
System.Windows.Forms.MessageBoxIcon.Warning, |
||||
System.Windows.Forms.MessageBoxDefaultButton.Button2); |
||||
|
||||
System.Windows.Forms.Form frm = new System.Windows.Forms.Form(); |
||||
frm.FormBorderStyle = FormBorderStyle.FixedDialog; |
||||
frm.MaximizeBox = false; |
||||
frm.MinimizeBox = false; |
||||
frm.StartPosition = FormStartPosition.CenterScreen; |
||||
|
||||
System.Windows.Forms.Button btn1 = new System.Windows.Forms.Button(); |
||||
btn1.Width = 80; |
||||
btn1.Height = 30; |
||||
btn1.Location = new System.Drawing.Point(10, 10); |
||||
btn1.Text = "test"; |
||||
|
||||
frm.Controls.Add(btn1); |
||||
|
||||
frm.ShowDialog(); |
||||
} |
||||
} |
||||
} |
Binary file not shown.
@ -0,0 +1,105 @@
|
||||
using System; |
||||
using TEC.Model; |
||||
|
||||
namespace TEC |
||||
{ |
||||
public class Game |
||||
{ |
||||
private Player[] players; |
||||
|
||||
public Game(Player[] inputPlayers) |
||||
{ |
||||
this.players = inputPlayers; |
||||
} |
||||
|
||||
public enum Movement |
||||
{ |
||||
Up = 1, |
||||
Down = 2, |
||||
Forward = 3, |
||||
Backward = 4 |
||||
} |
||||
|
||||
public void MoveMainPlayer(Movement move) |
||||
{ |
||||
if (this.players.Length <= 0) { return; } |
||||
|
||||
int lastPosX = this.players[0].GetPositionX(); |
||||
int lastPosY = this.players[0].GetPositionY(); |
||||
|
||||
if (move == Movement.Forward) |
||||
{ |
||||
this.players[0].SetPosition(lastPosX + 1, lastPosY); |
||||
} |
||||
|
||||
if (move == Movement.Backward) |
||||
{ |
||||
this.players[0].SetPosition(lastPosX - 1, lastPosY); |
||||
} |
||||
|
||||
CheckConditions(); |
||||
PrintField(); |
||||
} |
||||
|
||||
public delegate void eventPlayersOnSamePointDelegate(); |
||||
public event eventPlayersOnSamePointDelegate eventPlayersOnSamePoint; |
||||
|
||||
public void CheckConditions() |
||||
{ |
||||
if (this.players.Length > 1) |
||||
{ |
||||
if (this.players[0].GetPositionX() == this.players[1].GetPositionX() && |
||||
this.players[0].GetPositionY() == this.players[1].GetPositionY() ) |
||||
{ |
||||
if (this.eventPlayersOnSamePoint != null) |
||||
{ |
||||
this.eventPlayersOnSamePoint(); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
public void PrintField() |
||||
{ |
||||
Console.Clear(); |
||||
|
||||
string[] lines = new string[20]; |
||||
|
||||
for (int i = 0; i < 20; i++) |
||||
{ |
||||
string line = string.Empty; |
||||
|
||||
for (int j = 0; j < 75; j++) |
||||
{ |
||||
string c = "."; |
||||
|
||||
foreach(Player player in players) |
||||
{ |
||||
if (player.GetPositionX() == j && player.GetPositionY() == i) |
||||
{ |
||||
c = "#"; |
||||
if (player is Alien) |
||||
{ |
||||
c = "@"; |
||||
} |
||||
} |
||||
} |
||||
|
||||
line = line + c; |
||||
} |
||||
|
||||
lines[i] = line; |
||||
} |
||||
|
||||
for (int i = lines.Length - 1; i >= 0; i--) |
||||
{ |
||||
Console.WriteLine(lines[i]); |
||||
} |
||||
|
||||
for(int p = 0; p < players.Length; p++) |
||||
{ |
||||
Console.WriteLine("Игрок №" + (p+1) + " - " + players[p].name); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,58 @@
|
||||
using System; |
||||
|
||||
namespace TEC.Model |
||||
{ |
||||
public class Human : Player |
||||
{ |
||||
public Human() |
||||
{ |
||||
base.name = "Человек"; |
||||
} |
||||
} |
||||
|
||||
public class Alien : Player |
||||
{ |
||||
public Alien() |
||||
{ |
||||
base.name = "Пришелец"; |
||||
} |
||||
} |
||||
|
||||
public class Player : Ability |
||||
{ |
||||
public string name; |
||||
int health; |
||||
int score; |
||||
|
||||
int positionX; |
||||
int positionY; |
||||
|
||||
public int GetPositionX() { return positionX; } |
||||
public int GetPositionY() { return positionY; } |
||||
|
||||
public void SetPosition(int x, int y) |
||||
{ |
||||
positionX = x; |
||||
positionY = y; |
||||
} |
||||
} |
||||
|
||||
public class Ability |
||||
{ |
||||
bool canMoveForward; |
||||
bool canMoveBackward; |
||||
bool canFly; |
||||
|
||||
public Ability() |
||||
{ |
||||
|
||||
} |
||||
|
||||
public Ability(bool canMoveForward, bool canMoveBackward, bool canFly) |
||||
{ |
||||
this.canMoveForward = canMoveForward; |
||||
this.canMoveBackward = canMoveBackward; |
||||
this.canFly = canFly; |
||||
} |
||||
} |
||||
} |
After Width: | Height: | Size: 16 KiB |
Loading…
Reference in new issue