С Новым годом! Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 1
Регистрация: 10.04.2015
Сообщений: 69

игра пакман

29.05.2015, 20:48. Показов 4017. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
как проверить,что пакман и монета или пакман и приведение на одной клетке?
пока что проект без всякой графики
присоединяю проект для наглядности
в классе Game я делаю все расстановки и проверки
Вложения
Тип файла: zip pacman.zip (10.7 Кб, 33 просмотров)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.05.2015, 20:48
Ответы с готовыми решениями:

Пакман
Добрый день. Пишу лабораторную работу, что-то типа Пакмана в консоли. Карта генерируется рандомным разбросом решеток и точек в окне...

Пакман
Всем привет. Ребята кто-нибудь знает как можно на Си написать Пакмана, чисто на Си не используя что-либо из С++?! весь интернет...

Пакман на Си. Реализация таймера
Есть проблема с реализацией таймера обратного отсчета. Нужно делать определенное действие на протяжении 20 сек, когда проходит 20 сек нужно...

2
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
29.05.2015, 20:54
15 файлов в которых куча строк, сам там разбирайся
если реально нужна помощь - локализируй кусок кода, с которым трудности и копируй его сюда с конкретным вопросом
1
0 / 0 / 1
Регистрация: 10.04.2015
Сообщений: 69
29.05.2015, 21:51  [ТС]
Лучший ответ Сообщение было отмечено EduardSakhnovic как решение

Решение

Ya proshu v odnom iz 15i!!

Добавлено через 9 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
import java.util.Arrays;
import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.Random;
public class Game extends GameObject{
    /*dimentions of game board*/
    public static final int mFieldX=10;
    public static final int mFieldY=10;
    /*components of object Game*/
    public static GameObject board[][]=new GameObject[mFieldX][mFieldY];//the field of game-2d array
    public static Wall wall =new Wall(-1,new Position());;
    static Integer score=0;//the score achievements
    static Double level;//Number between 10 and 80 that signs the percent of walls of the board dimensions to create
    static String player_name;
   static final Pacman pacman1=Pacman.getPacman();
   static final Blinky blinky=Blinky.getInstance();
   static final Pinky pinky=Pinky.getInstance();
   static final Clyde clyde=Clyde.getInstance();
   static final Inky inky=Inky.getInstance();
   private static Coin coin=new Coin(0,new Position(0,0));
   private static String gameSequence;//pacman game sequence motion
   private static  int coins_cnt=0;
   /**
    * 
    * @param id_number
    * @param position
    * Constructor to call the components from the super abstract
    * class GameObject
    */
   public Game(Integer id_number, Position position) {
        super(id_number, position);
    }
  
   /**
    * Method checks the free position
    * with the method boolean isAvailable()
    * and returns reference to it's position
    * else returns null
    * @return
    */
   static Position rndPosition()
    {
        Random rnd = new Random();
        Position pos=new Position();
       
        for(int i=0;i<board.length;i++){
            for(int j=0;j<board.length;j++){
                
                
                if(isAvailable(i,j)){
                    
                    
                    pos.X=rnd.nextInt(board.length);
                    pos.Y=rnd.nextInt(board.length);
                
                }
            
        }
        } 
        return pos;
    }
   /**
    * This method assigns positions of pacman , monsters,walls,coins and put them on the board
    * @param obj
    */
   public static void Assign(GameObject obj){
      
       if(obj instanceof Pacman){
           
           if(isAvailable(0,0)){
               
               board[0][0]=Pacman.getPacman();
           }
       }
       else  if(obj instanceof Wall)
       {
           /*loop to place the walls in their random positions
               * according to user's input of an appropriate level
               * and persentage of this input and length of the board
               */
              /*help values to check if position is a pacman position*/
             
          
              for(int k=0;k<wall.getNumberOfWalls();k++){
                  
                  board[rndPosition().getX()][rndPosition().getY()]=new Wall(-1,new Position());
                  board[0][0]=Pacman.getPacman();//to promiss that wall or Monster will not be randomly placed on pacman's position
                  wall.setPosition(new Position(rndPosition().getX(),rndPosition().getY()));
              }
            }
       
       else if (obj instanceof Blinky){
           board[rndPosition().getX()][rndPosition().getY()]=Blinky.getInstance();
       }
       else if(obj instanceof Pinky){
           board[rndPosition().getX()][rndPosition().getY()]=Pinky.getInstance();
       }
       else if(obj instanceof Clyde){
           board[rndPosition().getX()][rndPosition().getY()]=Clyde.getInstance();
       }
       else if(obj instanceof Inky){
           board[rndPosition().getX()][rndPosition().getY()]=Inky.getInstance();
       }
       else if(obj instanceof Coin){
           for(int i=0;i<board.length;i++){
               for(int j=0;j<board.length;j++){
                   if(board[i][j]==null){
                       board[i][j]=new Coin(0,new Position(i,j));
                       coins_cnt++;
                       board[0][0]=Pacman.getPacman();
                     
                       
                   }
                   
               }
           }
           
           coin.setNumberOfCoins(coins_cnt);
           
       }
       }
       
 
   /**
    * return true if position is free 
    * else
    * return false
    * @param X
    * @param Y
    * @return
    */
   static boolean isAvailable(Integer X,Integer Y){
    
       return board[X][Y]==null;
   }
 
    
   /**
    * method to init the game
    * player's name
    * board length
    * level-percent of walls to create according to the board's dimensions
    */
   public static void init_game()
   {
     
      Scanner input=new Scanner(System.in);
      System.out.println("Enter your name:");
      player_name=input.nextLine();
      do
      {
          System.out.println("Enter your level-the number between 10 and 80:");
          level=input.nextDouble();
      }while(level<10||level>80);
      
      int walls_number=(int)(mFieldX*mFieldY*level)/100;
      wall.setNumberOfWalls(walls_number);
      /*init matrix-empty places are null*/
       
         for(int i=0;i<board.length;i++){
          for(int j=0;j<board[i].length;j++){
            
               board[i][j]=null;
          }
      }
      /*Assign all characters on board*/
      Assign(pacman1);
      Assign(wall);
      Assign(blinky);
      Assign(pinky);
      Assign(inky);
     Assign(clyde);
     Assign(coin);
          System.out.println("Please enter game sequence:");
          gameSequence=input.next();
         gameSequence=gameSequence.toLowerCase();//convert all characters to lower cases
          startGame(gameSequence);
     
     
 
   }
 
    
    /**
     * start game by receiving string of game sequence that define pacman's movement 
     * @param the movements of pacman
     */
 
   private static void startGame(String gameSequence){
       
      for(int i=0;i<gameSequence.length();i++){
         
               if(gameSequence.charAt(i)=='u'||gameSequence.charAt(i)=='d'||gameSequence.charAt(i)=='l'||gameSequence.charAt(i)=='r'){
                
                   pacman1.make_a_move(gameSequence.charAt(i));
                   board[pacman1.position.getX()][pacman1.position.getY()]=Pacman.getPacman();//set the new position to pacman
                 
                  
               }
               
       }
       
}
       
   
   /**
    * method prints the game data
    */
   public static void print_game(){
       System.out.println("Name:"+player_name+"  "+" Level"+level+"  "+"Score:"+score+"Coins: "+coin.getNumberOfCoins());
       for(int i=0;i<board.length;i++){
           for(int j=0;j<board.length;j++){
               System.out.print(board[i][j]);
           }
           System.out.println();
       }
       /*to know where's Pacman now*/
       int posX=Pacman.getPacman().position.getX();
       int posY=Pacman.getPacman().position.getY();
       System.out.println("X="+posX+"   "+"Y="+posY);
    
       
   }
 
   }
в методе StartGame() я должен проверить находится ли пакман и монета(coin) на одной клетке и поднять score, или пакман и wall

Добавлено через 1 минуту
Цитата Сообщение от Паблито Посмотреть сообщение
15 файлов в которых куча строк, сам там разбирайся
если реально нужна помощь - локализируй кусок кода, с которым трудности и копируй его сюда с конкретным вопросом
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
   private static void startGame(String gameSequence){
       
      for(int i=0;i<gameSequence.length();i++){
         
               if(gameSequence.charAt(i)=='u'||gameSequence.charAt(i)=='d'||gameSequence.charAt(i)=='l'||gameSequence.charAt(i)=='r'){
                
                   pacman1.make_a_move(gameSequence.charAt(i));
                   board[pacman1.position.getX()][pacman1.position.getY()]=Pacman.getPacman();//set the new position to pacman
                 
                  
               }
               
       }
       
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.05.2015, 21:51
Помогаю со студенческими работами здесь

Разбираю исходник игры Пакман
Можете мне объяснить что к чему в этом классе?Я его в своем проекте использую package es.eduards.pacman; import java.util.HashMap; ...

Пакман (вырезить четверть круга)
Подскажите как нарисовать Пакмана, то есть вырезать из круга 10 - 15 %. Круги вообще рисовал так ...

Пакман, реализация преследования врагом игрока
Хочу реализовать логику поведения врага в его преследовании для этого создаю алгоритм поиска кратчайшего пути. Изначально проверила, что...

Искуственный интелект бота в игре Пакман
Делаю в питоне игру Пакман. Не знаю как прописать Искуственный Интелект(ИИ) призракам(ботам) что бы они могли самостоятельно выходить из...

Пакман (sfml) не хочет проходить между 2 блоков
Создал пакмана который ходит и сталкивается с текстурками (основа для лабиринта) , но проблема в том что он не может пройти между 2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru