Dequeue
How do I use Dequeue
Below are practical examples compiled from projects for learning and reference purposes
Featured Snippets
Line | Code | Ex.. |
---|---|---|
201 | m_OldNetworkPositions.Dequeue(); | 1 |
178 | Position last = snakeElements.Dequeue(); | 2 |
File name: PhotonTransformViewPositionControl.cs
Copy
195 void DeserializeData( PhotonStream stream, PhotonMessageInfo info )
196 {
197 m_OldNetworkPositions.Enqueue( m_NetworkPosition );
198
199 while( m_OldNetworkPositions.Count > m_Model.ExtrapolateNumberOfStoredPositions )
200 {
201 m_OldNetworkPositions.Dequeue();
202 }
203
204 m_NetworkPosition = (Vector3)stream.ReceiveNext();
205
206 if( m_Model.ExtrapolateOption == PhotonTransformViewPositionModel.ExtrapolateOptions.SynchronizeValues ||
207 m_Model.InterpolateOption == PhotonTransformViewPositionModel.InterpolateOptions.SynchronizeValues )
208 {
209 m_SynchronizedSpeed = (Vector3)stream.ReceiveNext();
210 m_SynchronizedTurnSpeed = (float)stream.ReceiveNext();
211 }
212 }
File name: Program.cs
Copy
23 static void Main(string[] args)
24 {
25 byte right = 0;
26 byte left = 1;
27 byte down = 2;
28 byte up = 3;
29 int lastFoodTime = 0;
30 int foodDissapearTime = 8000;
31 int negativePoints = 0;
32
33 Position[] directions = new Position[]
34 {
35 new Position(0, 1), // right
36 new Position(0, -1), // left
37 new Position(1, 0), // down
38 new Position(-1, 0), // up
39 };
40 double sleepTime = 100;
41 int direction = right;
42 Random randomNumbersGenerator = new Random();
43 Console.BufferHeight = Console.WindowHeight;
44 lastFoodTime = Environment.TickCount;
45
46 List
47 {
48 new Position(12, 12),
49 new Position(14, 20),
50 new Position(7, 7),
51 new Position(19, 19),
52 new Position(6, 9),
53 };
54 foreach (Position obstacle in obstacles)
55 {
56 Console.ForegroundColor = ConsoleColor.Cyan;
57 Console.SetCursorPosition(obstacle.col, obstacle.row);
58 Console.Write("=");
59 }
60
61 Queue
62 for (int i = 0; i <= 5; i++)
63 {
64 snakeElements.Enqueue(new Position(0, i));
65 }
66
67 Position food;
68 do
69 {
70 food = new Position(randomNumbersGenerator.Next(0, Console.WindowHeight),
71 randomNumbersGenerator.Next(0, Console.WindowWidth));
72 }
73 while (snakeElements.Contains(food) || obstacles.Contains(food));
74 Console.SetCursorPosition(food.col, food.row);
75 Console.ForegroundColor = ConsoleColor.Yellow;
76 Console.Write("@");
77
78 foreach (Position position in snakeElements)
79 {
80 Console.SetCursorPosition(position.col, position.row);
81 Console.ForegroundColor = ConsoleColor.DarkGray;
82 Console.Write("*");
83 }
84
85 while (true)
86 {
87 negativePoints++;
88
89 if (Console.KeyAvailable)
90 {
91 ConsoleKeyInfo userInput = Console.ReadKey();
92 if (userInput.Key == ConsoleKey.LeftArrow)
93 {
94 if (direction != right) direction = left;
95 }
96 if (userInput.Key == ConsoleKey.RightArrow)
97 {
98 if (direction != left) direction = right;
99 }
100 if (userInput.Key == ConsoleKey.UpArrow)
101 {
102 if (direction != down) direction = up;
103 }
104 if (userInput.Key == ConsoleKey.DownArrow)
105 {
106 if (direction != up) direction = down;
107 }
108 }
109
110 Position snakeHead = snakeElements.Last();
111 Position nextDirection = directions[direction];
112
113 Position snakeNewHead = new Position(snakeHead.row + nextDirection.row,
114 snakeHead.col + nextDirection.col);
115
116 if (snakeNewHead.col < 0) snakeNewHead.col = Console.WindowWidth - 1;
117 if (snakeNewHead.row < 0) snakeNewHead.row = Console.WindowHeight - 1;
118 if (snakeNewHead.row >= Console.WindowHeight) snakeNewHead.row = 0;
119 if (snakeNewHead.col >= Console.WindowWidth) snakeNewHead.col = 0;
120
121 if (snakeElements.Contains(snakeNewHead) || obstacles.Contains(snakeNewHead))
122 {
123 Console.SetCursorPosition(0, 0);
124 Console.ForegroundColor = ConsoleColor.Red;
125 Console.WriteLine("Game over!");
126 int userPoints = (snakeElements.Count - 6) * 100 - negativePoints;
127 //if (userPoints < 0) userPoints = 0;
128 userPoints = Math.Max(userPoints, 0);
129 Console.WriteLine("Your points are: {0}", userPoints);
130 return;
131 }
132
133 Console.SetCursorPosition(snakeHead.col, snakeHead.row);
134 Console.ForegroundColor = ConsoleColor.DarkGray;
135 Console.Write("*");
136
137 snakeElements.Enqueue(snakeNewHead);
138 Console.SetCursorPosition(snakeNewHead.col, snakeNewHead.row);
139 Console.ForegroundColor = ConsoleColor.Gray;
140 if (direction == right) Console.Write(">");
141 if (direction == left) Console.Write("<");
142 if (direction == up) Console.Write("^");
143 if (direction == down) Console.Write("v");
144
145
146 if (snakeNewHead.col == food.col && snakeNewHead.row == food.row)
147 {
148 // feeding the snake
149 do
150 {
151 food = new Position(randomNumbersGenerator.Next(0, Console.WindowHeight),
152 randomNumbersGenerator.Next(0, Console.WindowWidth));
153 }
154 while (snakeElements.Contains(food) || obstacles.Contains(food));
155 lastFoodTime = Environment.TickCount;
156 Console.SetCursorPosition(food.col, food.row);
157 Console.ForegroundColor = ConsoleColor.Yellow;
158 Console.Write("@");
159 sleepTime--;
160
161 Position obstacle = new Position();
162 do
163 {
164 obstacle = new Position(randomNumbersGenerator.Next(0, Console.WindowHeight),
165 randomNumbersGenerator.Next(0, Console.WindowWidth));
166 }
167 while (snakeElements.Contains(obstacle) ||
168 obstacles.Contains(obstacle) ||
169 (food.row != obstacle.row && food.col != obstacle.row));
170 obstacles.Add(obstacle);
171 Console.SetCursorPosition(obstacle.col, obstacle.row);
172 Console.ForegroundColor = ConsoleColor.Cyan;
173 Console.Write("=");
174 }
175 else
176 {
177 // moving...
178 Position last = snakeElements.Dequeue();
179 Console.SetCursorPosition(last.col, last.row);
180 Console.Write(" ");
181 }
182
183 if (Environment.TickCount - lastFoodTime >= foodDissapearTime)
184 {
185 negativePoints = negativePoints + 50;
186 Console.SetCursorPosition(food.col, food.row);
187 Console.Write(" ");
188 do
189 {
190 food = new Position(randomNumbersGenerator.Next(0, Console.WindowHeight),
191 randomNumbersGenerator.Next(0, Console.WindowWidth));
192 }
193 while (snakeElements.Contains(food) || obstacles.Contains(food));
194 lastFoodTime = Environment.TickCount;
195 }
196
197 Console.SetCursorPosition(food.col, food.row);
198 Console.ForegroundColor = ConsoleColor.Yellow;
199 Console.Write("@");
200
201 sleepTime -= 0.01;
202
203 Thread.Sleep((int)sleepTime);
204 }
205 }
Dequeue 120 lượt xem
Gõ tìm kiếm nhanh...